From fbdf9ba153d6f409bd27ea1c160f9814a0e05393 Mon Sep 17 00:00:00 2001 From: skidau Date: Wed, 5 Oct 2011 00:22:51 +1100 Subject: Added preliminary support for ES_LAUNCH (Wii Multi-boot games) by using HLE to hijack the OSBootDol function. Metroid Prime Trilogy is working. Wii Sports+Wii Sports Resort is not working. Any games which can be played using the dol replacement trick should work here. Suspect that the DOL's are meant to receive an argument list which has not been catered for in this code. This probably also means that the Metroid Prime Trilogy games are locked in Veteran difficulty for the time-being. --- Source/Core/Core/Src/Boot/Boot.cpp | 13 +++++++++++ Source/Core/Core/Src/HLE/HLE.cpp | 4 +++- Source/Core/Core/Src/HLE/HLE_Misc.cpp | 44 +++++++++++++++++++++++++++++++++++ Source/Core/Core/Src/HLE/HLE_Misc.h | 1 + 4 files changed, 61 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/Boot/Boot.cpp b/Source/Core/Core/Src/Boot/Boot.cpp index be82d217dc..228d10b8a8 100644 --- a/Source/Core/Core/Src/Boot/Boot.cpp +++ b/Source/Core/Core/Src/Boot/Boot.cpp @@ -257,6 +257,19 @@ bool CBoot::BootUp() EmulatedBS2(_StartupPara.bWii); } + // Scan for common HLE functions + if (!_StartupPara.bEnableDebugging) + { + PPCAnalyst::FindFunctions(0x80000000, 0x81800000, &g_symbolDB); + SignatureDB db; + if (db.Load((File::GetSysDirectory() + TOTALDB).c_str())) + { + db.Apply(&g_symbolDB); + } + HLE::PatchFunctions(); + g_symbolDB.Clear(); + } + /* Try to load the symbol map if there is one, and then scan it for and eventually replace code */ if (LoadMapFromFilename(_StartupPara.m_strFilename, gameID)) diff --git a/Source/Core/Core/Src/HLE/HLE.cpp b/Source/Core/Core/Src/HLE/HLE.cpp index 84c6b2eb86..671a9e0a3a 100644 --- a/Source/Core/Core/Src/HLE/HLE.cpp +++ b/Source/Core/Core/Src/HLE/HLE.cpp @@ -27,6 +27,7 @@ #include "HLE_OS.h" #include "HLE_Misc.h" +#include "IPC_HLE/WII_IPC_HLE_Device_es.h" namespace HLE { @@ -93,7 +94,8 @@ static const SPatch OSPatches[] = // { "GXPeekARGB", HLE_Misc::GXPeekARGB}, // Name doesn't matter, installed in CBoot::BootUp() - { "HBReload", HLE_Misc::HBReload }, + { "HBReload", HLE_Misc::HBReload }, + { "__OSBootDol", HLE_Misc::OSBootDol }, }; static const SPatch OSBreakPoints[] = diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.cpp b/Source/Core/Core/Src/HLE/HLE_Misc.cpp index d69bf09680..bc625c9d2d 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.cpp +++ b/Source/Core/Core/Src/HLE/HLE_Misc.cpp @@ -22,6 +22,12 @@ #include "../PowerPC/PowerPC.h" #include "../HW/Memmap.h" #include "../Host.h" +#include "IPC_HLE/WII_IPC_HLE_Device_DI.h" +#include "ConfigManager.h" +#include "VolumeCreator.h" +#include "Filesystem.h" +#include "../Boot/Boot_DOL.h" +#include "IPC_HLE/WII_IPC_HLE_Device_usb.h" namespace HLE_Misc { @@ -282,4 +288,42 @@ void HBReload() Host_Message(WM_USER_STOP); } + +void OSBootDol() +{ + std::string dol; + + u32 r28 = GPR(28); + Memory::GetString(dol, r28); + + DiscIO::IVolume* pVolume = DiscIO::CreateVolumeFromFilename(SConfig::GetInstance().m_LastFilename.c_str()); + DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume); + + size_t fileSize = (size_t) pFileSystem->GetFileSize(dol.substr(1).c_str()); + u8* dolFile = new u8[fileSize]; + if (dolFile) + { + pFileSystem->ReadFile(dol.substr(1).c_str(), dolFile, fileSize); + CDolLoader dolLoader(dolFile, fileSize); + dolLoader.Load(); + PowerPC::ppcState.iCache.Reset(); + + static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); + for (unsigned int i = 0; i < 4; i++) + { + if (s_Usb->m_WiiMotes[i].IsConnected()) + { + s_Usb->m_WiiMotes[i].Activate(false); + s_Usb->m_WiiMotes[i].Activate(true); + } + else + { + s_Usb->m_WiiMotes[i].Activate(false); + } + } + + NPC = dolLoader.GetEntryPoint() | 0x80000000; + } +} + } diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.h b/Source/Core/Core/Src/HLE/HLE_Misc.h index 6c932258a7..f831e5b600 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.h +++ b/Source/Core/Core/Src/HLE/HLE_Misc.h @@ -39,6 +39,7 @@ namespace HLE_Misc void FZ_sqrt_internal(); void FZ_rsqrt_internal(); void HBReload(); + void OSBootDol(); } #endif -- cgit v1.2.3 From 651cedaac4526996bd5cc186736e66a0895798a3 Mon Sep 17 00:00:00 2001 From: skidau Date: Mon, 10 Oct 2011 20:32:24 +1100 Subject: Added argument detection and passing to the loaded dol. This fixes the Wii Sports+Wii Sports Resort bundle pack. --- Source/Core/Core/Src/HLE/HLE_Misc.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'Source') diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.cpp b/Source/Core/Core/Src/HLE/HLE_Misc.cpp index bc625c9d2d..f9bab42f3c 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.cpp +++ b/Source/Core/Core/Src/HLE/HLE_Misc.cpp @@ -292,10 +292,14 @@ void HBReload() void OSBootDol() { std::string dol; + std::string args; u32 r28 = GPR(28); Memory::GetString(dol, r28); + u32 argsPtr = Memory::Read_U32(GPR(5)); + Memory::GetString(args, argsPtr); + DiscIO::IVolume* pVolume = DiscIO::CreateVolumeFromFilename(SConfig::GetInstance().m_LastFilename.c_str()); DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume); @@ -322,6 +326,22 @@ void OSBootDol() } } + if (argsPtr) + { + u32 args_base = Memory::Read_U32(0x800000f4); + u32 ptr_to_num_args = 0xc; + u32 num_args = 1; + u32 hi_ptr = args_base + ptr_to_num_args + 4; + u32 new_args_ptr = args_base + ptr_to_num_args + 8; + + Memory::Write_U32(ptr_to_num_args, args_base + 8); + Memory::Write_U32(num_args, args_base + ptr_to_num_args); + Memory::Write_U32(0x14, hi_ptr); + + for (int i = 0; i < args.length(); i++) + Memory::WriteUnchecked_U8(args[i], new_args_ptr+i); + } + NPC = dolLoader.GetEntryPoint() | 0x80000000; } } -- cgit v1.2.3 From 88e273fac13b6c3b95256fc083867c2b6553c9d6 Mon Sep 17 00:00:00 2001 From: skidau Date: Tue, 1 Nov 2011 23:00:12 +1100 Subject: Added an IOS check as games which use IOS older than IOS30 do not need to be HLE'd. Added some stubs for Reset to Menu and SSBB's load from disc partition. Fixed loading Fate of Atlantis from the Indiana Jones and the Staff of Kings game. --- Source/Core/Core/Src/Boot/Boot.cpp | 1 - Source/Core/Core/Src/HLE/HLE.cpp | 29 +++++++++-- Source/Core/Core/Src/HLE/HLE.h | 1 + Source/Core/Core/Src/HLE/HLE_Misc.cpp | 92 +++++++++++++++++++++++++++++------ 4 files changed, 103 insertions(+), 20 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/Boot/Boot.cpp b/Source/Core/Core/Src/Boot/Boot.cpp index 228d10b8a8..7711990e65 100644 --- a/Source/Core/Core/Src/Boot/Boot.cpp +++ b/Source/Core/Core/Src/Boot/Boot.cpp @@ -267,7 +267,6 @@ bool CBoot::BootUp() db.Apply(&g_symbolDB); } HLE::PatchFunctions(); - g_symbolDB.Clear(); } /* Try to load the symbol map if there is one, and then scan it for diff --git a/Source/Core/Core/Src/HLE/HLE.cpp b/Source/Core/Core/Src/HLE/HLE.cpp index 671a9e0a3a..0c42f7f4df 100644 --- a/Source/Core/Core/Src/HLE/HLE.cpp +++ b/Source/Core/Core/Src/HLE/HLE.cpp @@ -28,6 +28,7 @@ #include "HLE_OS.h" #include "HLE_Misc.h" #include "IPC_HLE/WII_IPC_HLE_Device_es.h" +#include "ConfigManager.h" namespace HLE { @@ -137,13 +138,16 @@ void PatchFunctions() } } - for (size_t i = 1; i < sizeof(OSBreakPoints) / sizeof(SPatch); i++) + if (SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableDebugging) { - Symbol *symbol = g_symbolDB.GetSymbolFromName(OSPatches[i].m_szPatchName); - if (symbol > 0) + for (size_t i = 1; i < sizeof(OSBreakPoints) / sizeof(SPatch); i++) { - PowerPC::breakpoints.Add(symbol->address, false); - INFO_LOG(OSHLE, "Adding BP to %s %08x", OSBreakPoints[i].m_szPatchName, symbol->address); + Symbol *symbol = g_symbolDB.GetSymbolFromName(OSPatches[i].m_szPatchName); + if (symbol > 0) + { + PowerPC::breakpoints.Add(symbol->address, false); + INFO_LOG(OSHLE, "Adding BP to %s %08x", OSBreakPoints[i].m_szPatchName, symbol->address); + } } } @@ -171,4 +175,19 @@ u32 GetOrigInstruction(u32 addr) return (iter != orig_instruction.end()) ? iter->second : 0; } +u32 UnPatch(std::string patchName) +{ + Symbol *symbol = g_symbolDB.GetSymbolFromName(patchName.c_str()); + if (symbol > 0) + { + for (u32 addr = symbol->address; addr < symbol->address + symbol->size; addr += 4) + { + Memory::WriteUnchecked_U32(orig_instruction[addr], addr); + PowerPC::ppcState.iCache.Invalidate(addr); + } + return symbol->address; + } + return 0; +} + } // end of namespace HLE diff --git a/Source/Core/Core/Src/HLE/HLE.h b/Source/Core/Core/Src/HLE/HLE.h index 04c3d35198..b81f347b9f 100644 --- a/Source/Core/Core/Src/HLE/HLE.h +++ b/Source/Core/Core/Src/HLE/HLE.h @@ -24,6 +24,7 @@ namespace HLE { void PatchFunctions(); void Patch(u32 pc, const char *func_name); + u32 UnPatch(std::string patchName); void Execute(u32 _CurrentPC, u32 _Instruction); u32 GetOrigInstruction(u32 em_address); diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.cpp b/Source/Core/Core/Src/HLE/HLE_Misc.cpp index f9bab42f3c..67b2e84963 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.cpp +++ b/Source/Core/Core/Src/HLE/HLE_Misc.cpp @@ -28,10 +28,17 @@ #include "Filesystem.h" #include "../Boot/Boot_DOL.h" #include "IPC_HLE/WII_IPC_HLE_Device_usb.h" +#include "HLE.h" namespace HLE_Misc { +std::string dol; +std::string args; +u32 argsPtr; +u32 bootType; +u16 IOSv; + // Helper to quickly read the floating point value at a memory location. inline float F(u32 addr) { @@ -288,26 +295,19 @@ void HBReload() Host_Message(WM_USER_STOP); } - -void OSBootDol() +void BootDOLFromDisc() { - std::string dol; - std::string args; - - u32 r28 = GPR(28); - Memory::GetString(dol, r28); - - u32 argsPtr = Memory::Read_U32(GPR(5)); - Memory::GetString(args, argsPtr); - DiscIO::IVolume* pVolume = DiscIO::CreateVolumeFromFilename(SConfig::GetInstance().m_LastFilename.c_str()); DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume); - size_t fileSize = (size_t) pFileSystem->GetFileSize(dol.substr(1).c_str()); + if (dol.substr(1, 1).compare("//")) + dol = dol.substr(1); + + u32 fileSize = (u32) pFileSystem->GetFileSize(dol.c_str()); u8* dolFile = new u8[fileSize]; - if (dolFile) + if (fileSize > 0) { - pFileSystem->ReadFile(dol.substr(1).c_str(), dolFile, fileSize); + pFileSystem->ReadFile(dol.c_str(), dolFile, fileSize); CDolLoader dolLoader(dolFile, fileSize); dolLoader.Load(); PowerPC::ppcState.iCache.Reset(); @@ -346,4 +346,68 @@ void OSBootDol() } } +u32 GetDolFileSize() +{ + DiscIO::IVolume* pVolume = DiscIO::CreateVolumeFromFilename(SConfig::GetInstance().m_LastFilename.c_str()); + DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume); + + std::string dolFile; + + if (dol.substr(1, 1).compare("//")) + dolFile = dol.substr(1); + + return (u32)pFileSystem->GetFileSize(dolFile.c_str()); +} + +void OSBootDol() +{ + IOSv = Memory::Read_U16(0x00003140); + + if (IOSv >= 30) + { + bootType = GPR(4); + + if ((GPR(4) >> 28) == 0x8) + { + // Reset from menu + PanicAlert("Reset from menu"); + } + else if ((GPR(4) >> 28) == 0xA) + { + // Boot from disc partition + PanicAlert("Boot Partition: %08x", GPR(26)); + } + else if ((GPR(4) >> 28) == 0xC) + { + // Boot DOL from disc + u32 ptr = GPR(28); + Memory::GetString(dol, ptr); + + if (GetDolFileSize() == 0) + { + ptr = GPR(30); + Memory::GetString(dol, ptr); + if (GetDolFileSize() == 0) + { + // Cannot locate the dol file, exit. + HLE::UnPatch("__OSBootDol"); + NPC = PC; + return; + } + } + + argsPtr = Memory::Read_U32(GPR(5)); + Memory::GetString(args, argsPtr); + BootDOLFromDisc(); + return; + } + else + { + PanicAlert("Unknown boot type: %08x", GPR(4)); + } + } + HLE::UnPatch("__OSBootDol"); + NPC = PC; +} + } -- cgit v1.2.3 From 0c845728ccfc5f3a93c69aa09a924a0413e8d151 Mon Sep 17 00:00:00 2001 From: skidau Date: Sat, 5 May 2012 18:38:00 +1000 Subject: Added support for Reset (from menu). Fixes Sam & Max. --- Source/Core/Core/Src/Boot/Boot.cpp | 6 +- Source/Core/Core/Src/HLE/HLE_Misc.cpp | 120 +++++++++++++++++-------- Source/Core/Core/Src/HLE/HLE_Misc.h | 1 + Source/Core/Core/Src/HW/ProcessorInterface.cpp | 1 + Source/Core/DiscIO/Src/FileSystemGCWii.cpp | 17 +++- Source/Core/DiscIO/Src/FileSystemGCWii.h | 2 + Source/Core/DiscIO/Src/Filesystem.h | 2 + 7 files changed, 107 insertions(+), 42 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/Boot/Boot.cpp b/Source/Core/Core/Src/Boot/Boot.cpp index 7711990e65..ef3ae2a4fb 100644 --- a/Source/Core/Core/Src/Boot/Boot.cpp +++ b/Source/Core/Core/Src/Boot/Boot.cpp @@ -260,13 +260,15 @@ bool CBoot::BootUp() // Scan for common HLE functions if (!_StartupPara.bEnableDebugging) { - PPCAnalyst::FindFunctions(0x80000000, 0x81800000, &g_symbolDB); + PPCAnalyst::FindFunctions(0x80004000, 0x811fffff, &g_symbolDB); SignatureDB db; if (db.Load((File::GetSysDirectory() + TOTALDB).c_str())) { db.Apply(&g_symbolDB); + HLE::PatchFunctions(); + db.Clear(); + g_symbolDB.Clear(); } - HLE::PatchFunctions(); } /* Try to load the symbol map if there is one, and then scan it for diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.cpp b/Source/Core/Core/Src/HLE/HLE_Misc.cpp index 67b2e84963..40073d401e 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.cpp +++ b/Source/Core/Core/Src/HLE/HLE_Misc.cpp @@ -29,6 +29,10 @@ #include "../Boot/Boot_DOL.h" #include "IPC_HLE/WII_IPC_HLE_Device_usb.h" #include "HLE.h" +#include "PowerPC/PPCAnalyst.h" +#include "PowerPC/SignatureDB.h" +#include "PowerPC/PPCSymbolDB.h" +#include "CommonPaths.h" namespace HLE_Misc { @@ -295,7 +299,61 @@ void HBReload() Host_Message(WM_USER_STOP); } -void BootDOLFromDisc() +void ExecuteDOL(u8* dolFile, u32 fileSize) +{ + CDolLoader dolLoader(dolFile, fileSize); + dolLoader.Load(); + + // Scan for common HLE functions + if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableDebugging) + { + PPCAnalyst::FindFunctions(0x80004000, 0x811fffff, &g_symbolDB); + SignatureDB db; + if (db.Load((File::GetSysDirectory() + TOTALDB).c_str())) + { + db.Apply(&g_symbolDB); + HLE::PatchFunctions(); + db.Clear(); + g_symbolDB.Clear(); + } + } + + PowerPC::ppcState.iCache.Reset(); + + static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); + for (unsigned int i = 0; i < 4; i++) + { + if (s_Usb->m_WiiMotes[i].IsConnected()) + { + s_Usb->m_WiiMotes[i].Activate(false); + s_Usb->m_WiiMotes[i].Activate(true); + } + else + { + s_Usb->m_WiiMotes[i].Activate(false); + } + } + + if (argsPtr) + { + u32 args_base = Memory::Read_U32(0x800000f4); + u32 ptr_to_num_args = 0xc; + u32 num_args = 1; + u32 hi_ptr = args_base + ptr_to_num_args + 4; + u32 new_args_ptr = args_base + ptr_to_num_args + 8; + + Memory::Write_U32(ptr_to_num_args, args_base + 8); + Memory::Write_U32(num_args, args_base + ptr_to_num_args); + Memory::Write_U32(0x14, hi_ptr); + + for (int i = 0; i < args.length(); i++) + Memory::WriteUnchecked_U8(args[i], new_args_ptr+i); + } + + NPC = dolLoader.GetEntryPoint() | 0x80000000; +} + +void LoadDOLFromDisc() { DiscIO::IVolume* pVolume = DiscIO::CreateVolumeFromFilename(SConfig::GetInstance().m_LastFilename.c_str()); DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume); @@ -308,42 +366,23 @@ void BootDOLFromDisc() if (fileSize > 0) { pFileSystem->ReadFile(dol.c_str(), dolFile, fileSize); - CDolLoader dolLoader(dolFile, fileSize); - dolLoader.Load(); - PowerPC::ppcState.iCache.Reset(); - - static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); - for (unsigned int i = 0; i < 4; i++) - { - if (s_Usb->m_WiiMotes[i].IsConnected()) - { - s_Usb->m_WiiMotes[i].Activate(false); - s_Usb->m_WiiMotes[i].Activate(true); - } - else - { - s_Usb->m_WiiMotes[i].Activate(false); - } - } - - if (argsPtr) - { - u32 args_base = Memory::Read_U32(0x800000f4); - u32 ptr_to_num_args = 0xc; - u32 num_args = 1; - u32 hi_ptr = args_base + ptr_to_num_args + 4; - u32 new_args_ptr = args_base + ptr_to_num_args + 8; - - Memory::Write_U32(ptr_to_num_args, args_base + 8); - Memory::Write_U32(num_args, args_base + ptr_to_num_args); - Memory::Write_U32(0x14, hi_ptr); - - for (int i = 0; i < args.length(); i++) - Memory::WriteUnchecked_U8(args[i], new_args_ptr+i); - } + ExecuteDOL(dolFile, fileSize); + } + delete[] dolFile; +} - NPC = dolLoader.GetEntryPoint() | 0x80000000; +void LoadBootDOLFromDisc() +{ + DiscIO::IVolume* pVolume = DiscIO::CreateVolumeFromFilename(SConfig::GetInstance().m_LastFilename.c_str()); + DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume); + u32 fileSize = pFileSystem->GetBootDOLSize(); + u8* dolFile = new u8[fileSize]; + if (fileSize > 0) + { + pFileSystem->GetBootDOL(dolFile, fileSize); + ExecuteDOL(dolFile, fileSize); } + delete[] dolFile; } u32 GetDolFileSize() @@ -369,8 +408,13 @@ void OSBootDol() if ((GPR(4) >> 28) == 0x8) { - // Reset from menu - PanicAlert("Reset from menu"); + u32 resetCode = GPR(30); + + // Reset game + Memory::Write_U32(resetCode << 3, 0xCC003024); + //Memory::Write_U32((resetCode << 3) | 0x80000000, 0x800030f0); // Warm reset + LoadBootDOLFromDisc(); + return; } else if ((GPR(4) >> 28) == 0xA) { @@ -398,7 +442,7 @@ void OSBootDol() argsPtr = Memory::Read_U32(GPR(5)); Memory::GetString(args, argsPtr); - BootDOLFromDisc(); + LoadDOLFromDisc(); return; } else diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.h b/Source/Core/Core/Src/HLE/HLE_Misc.h index f831e5b600..d39280831c 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.h +++ b/Source/Core/Core/Src/HLE/HLE_Misc.h @@ -40,6 +40,7 @@ namespace HLE_Misc void FZ_rsqrt_internal(); void HBReload(); void OSBootDol(); + void ExecuteDOL(u8* dolFile, u32 fileSize); } #endif diff --git a/Source/Core/Core/Src/HW/ProcessorInterface.cpp b/Source/Core/Core/Src/HW/ProcessorInterface.cpp index 4a18ce63b5..0e989d3f50 100644 --- a/Source/Core/Core/Src/HW/ProcessorInterface.cpp +++ b/Source/Core/Core/Src/HW/ProcessorInterface.cpp @@ -199,6 +199,7 @@ void Write32(const u32 _uValue, const u32 _iAddress) case PI_RESET_CODE: DEBUG_LOG(PROCESSORINTERFACE, "Write %08x to PI_RESET_CODE", _uValue); + m_ResetCode = _uValue; break; case PI_FLIPPER_UNK: diff --git a/Source/Core/DiscIO/Src/FileSystemGCWii.cpp b/Source/Core/DiscIO/Src/FileSystemGCWii.cpp index 8f40ab2f18..f1d5f20b6e 100644 --- a/Source/Core/DiscIO/Src/FileSystemGCWii.cpp +++ b/Source/Core/DiscIO/Src/FileSystemGCWii.cpp @@ -159,7 +159,7 @@ bool CFileSystemGCWii::ExportApploader(const char* _rExportFolder) const return false; } -bool CFileSystemGCWii::ExportDOL(const char* _rExportFolder) const +u32 CFileSystemGCWii::GetBootDOLSize() const { u32 DolOffset = Read32(0x420) << m_OffsetShift; u32 DolSize = 0, offset = 0, size = 0; @@ -181,9 +181,22 @@ bool CFileSystemGCWii::ExportDOL(const char* _rExportFolder) const if (offset + size > DolSize) DolSize = offset + size; } + return DolSize; +} + +bool CFileSystemGCWii::GetBootDOL(u8* &buffer, u32 DolSize) const +{ + u32 DolOffset = Read32(0x420) << m_OffsetShift; + return m_rVolume->Read(DolOffset, DolSize, buffer); +} +bool CFileSystemGCWii::ExportDOL(const char* _rExportFolder) const +{ + u32 DolOffset = Read32(0x420) << m_OffsetShift; + u32 DolSize = GetBootDOLSize(); u8* buffer = new u8[DolSize]; - if (m_rVolume->Read(DolOffset, DolSize, buffer)) + + if (GetBootDOL(buffer, DolSize)) { char exportName[512]; sprintf(exportName, "%s/boot.dol", _rExportFolder); diff --git a/Source/Core/DiscIO/Src/FileSystemGCWii.h b/Source/Core/DiscIO/Src/FileSystemGCWii.h index 38e5f181f9..0e7d836d75 100644 --- a/Source/Core/DiscIO/Src/FileSystemGCWii.h +++ b/Source/Core/DiscIO/Src/FileSystemGCWii.h @@ -38,6 +38,8 @@ public: virtual bool ExportFile(const char* _rFullPath, const char* _rExportFilename); virtual bool ExportApploader(const char* _rExportFolder) const; virtual bool ExportDOL(const char* _rExportFolder) const; + virtual bool GetBootDOL(u8* &buffer, u32 DolSize) const; + virtual u32 GetBootDOLSize() const; private: bool m_Initialized; diff --git a/Source/Core/DiscIO/Src/Filesystem.h b/Source/Core/DiscIO/Src/Filesystem.h index 71be4293e3..8bc98e6a77 100644 --- a/Source/Core/DiscIO/Src/Filesystem.h +++ b/Source/Core/DiscIO/Src/Filesystem.h @@ -57,6 +57,8 @@ public: virtual bool ExportApploader(const char* _rExportFolder) const = 0; virtual bool ExportDOL(const char* _rExportFolder) const = 0; virtual const char* GetFileName(u64 _Address) = 0; + virtual bool GetBootDOL(u8* &buffer, u32 DolSize) const = 0; + virtual u32 GetBootDOLSize() const = 0; virtual const IVolume *GetVolume() const { return m_rVolume; } protected: -- cgit v1.2.3 From 05730af7244fc3ce98f7475f4ebe906234ef1789 Mon Sep 17 00:00:00 2001 From: skidau Date: Sat, 5 May 2012 22:55:24 +1000 Subject: Added some IOS version checks and code to clear memory before loading the dol. --- Source/Core/Core/Src/Boot/Boot.cpp | 2 +- Source/Core/Core/Src/HLE/HLE_Misc.cpp | 6 ++++++ Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/Boot/Boot.cpp b/Source/Core/Core/Src/Boot/Boot.cpp index ef3ae2a4fb..0fa89a28cc 100644 --- a/Source/Core/Core/Src/Boot/Boot.cpp +++ b/Source/Core/Core/Src/Boot/Boot.cpp @@ -258,7 +258,7 @@ bool CBoot::BootUp() } // Scan for common HLE functions - if (!_StartupPara.bEnableDebugging) + if (!_StartupPara.bEnableDebugging && Memory::Read_U16(0x00003140) >= 30) { PPCAnalyst::FindFunctions(0x80004000, 0x811fffff, &g_symbolDB); SignatureDB db; diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.cpp b/Source/Core/Core/Src/HLE/HLE_Misc.cpp index 40073d401e..b04e8004fd 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.cpp +++ b/Source/Core/Core/Src/HLE/HLE_Misc.cpp @@ -301,6 +301,12 @@ void HBReload() void ExecuteDOL(u8* dolFile, u32 fileSize) { + // Clear memory before loading the dol + for (int i = 0x80004000; i < Memory::Read_U32(0x00000034); i += 4) + { + // TODO: Should not write over the "save region" + Memory::Write_U32(0x00000000, i); + } CDolLoader dolLoader(dolFile, fileSize); dolLoader.Load(); diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp index f409c88c83..f15dc81ce7 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp @@ -780,7 +780,7 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress) // someone with an affected game should test IOSv = TitleID & 0xffff; } - if (!bSuccess) + if (!bSuccess && IOSv >= 30 && IOSv != 0xffff) { PanicAlertT("IOCTL_ES_LAUNCH: Game tried to reload ios or a title that is not available in your nand dump\n" "TitleID %016llx.\n Dolphin will likely hang now", TitleID); -- cgit v1.2.3 From 2fd1c9e7c29ed686165c711c98794b4ef11d8488 Mon Sep 17 00:00:00 2001 From: rog Date: Thu, 27 Dec 2012 09:42:20 -0500 Subject: Allow setting cpu engine and whatever bHLE_BS2 is from game ini. --- Source/Core/Core/Src/BootManager.cpp | 12 +++++++++--- Source/Core/Core/Src/Core.cpp | 2 +- Source/Core/Core/Src/HW/CPU.cpp | 4 ---- 3 files changed, 10 insertions(+), 8 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/BootManager.cpp b/Source/Core/Core/Src/BootManager.cpp index e0fac1da87..59ab51f730 100644 --- a/Source/Core/Core/Src/BootManager.cpp +++ b/Source/Core/Core/Src/BootManager.cpp @@ -47,7 +47,6 @@ #include "VideoBackendBase.h" #include "Movie.h" - namespace BootManager { @@ -56,8 +55,8 @@ namespace BootManager struct ConfigCache { bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bMMUBAT, - bVBeam, bFastDiscSpeed, bMergeBlocks, bDSPHLE, bDisableWiimoteSpeaker; - int iTLBHack; + bVBeam, bFastDiscSpeed, bMergeBlocks, bDSPHLE, bDisableWiimoteSpeaker, bHLE_BS2; + int iTLBHack, iCPUCore; std::string strBackend; }; static ConfigCache config_cache; @@ -90,6 +89,7 @@ bool BootCore(const std::string& _rFilename) config_cache.valid = true; config_cache.bCPUThread = StartUp.bCPUThread; config_cache.bSkipIdle = StartUp.bSkipIdle; + config_cache.iCPUCore = StartUp.iCPUCore; config_cache.bEnableFPRF = StartUp.bEnableFPRF; config_cache.bMMU = StartUp.bMMU; config_cache.bMMUBAT = StartUp.bMMUBAT; @@ -100,6 +100,7 @@ bool BootCore(const std::string& _rFilename) config_cache.bDSPHLE = StartUp.bDSPHLE; config_cache.bDisableWiimoteSpeaker = StartUp.bDisableWiimoteSpeaker; config_cache.strBackend = StartUp.m_strVideoBackend; + config_cache.bHLE_BS2 = StartUp.bHLE_BS2; // General settings game_ini.Get("Core", "CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread); @@ -114,6 +115,8 @@ bool BootCore(const std::string& _rFilename) game_ini.Get("Core", "DSPHLE", &StartUp.bDSPHLE, StartUp.bDSPHLE); game_ini.Get("Wii", "DisableWiimoteSpeaker",&StartUp.bDisableWiimoteSpeaker, StartUp.bDisableWiimoteSpeaker); game_ini.Get("Core", "GFXBackend", &StartUp.m_strVideoBackend, StartUp.m_strVideoBackend.c_str()); + game_ini.Get("Core", "CPUCore", &StartUp.iCPUCore, StartUp.iCPUCore); + game_ini.Get("Core", "HLE_BS2", &StartUp.bHLE_BS2, StartUp.bHLE_BS2); VideoBackend::ActivateBackend(StartUp.m_strVideoBackend); if (Movie::IsPlayingInput() && Movie::IsConfigSaved()) @@ -123,6 +126,7 @@ bool BootCore(const std::string& _rFilename) StartUp.bDSPHLE = Movie::IsDSPHLE(); StartUp.bProgressive = Movie::IsProgressive(); StartUp.bFastDiscSpeed = Movie::IsFastDiscSpeed(); + StartUp.iCPUCore = Movie::GetCPUMode(); if (Movie::IsUsingMemcard() && Movie::IsStartingFromClearSave() && !StartUp.bWii) { if (File::Exists("Movie.raw")) @@ -159,6 +163,7 @@ void Stop() config_cache.valid = false; StartUp.bCPUThread = config_cache.bCPUThread; StartUp.bSkipIdle = config_cache.bSkipIdle; + StartUp.iCPUCore = config_cache.iCPUCore; StartUp.bEnableFPRF = config_cache.bEnableFPRF; StartUp.bMMU = config_cache.bMMU; StartUp.bMMUBAT = config_cache.bMMUBAT; @@ -170,6 +175,7 @@ void Stop() StartUp.bDisableWiimoteSpeaker = config_cache.bDisableWiimoteSpeaker; StartUp.m_strVideoBackend = config_cache.strBackend; VideoBackend::ActivateBackend(StartUp.m_strVideoBackend); + StartUp.bHLE_BS2 = config_cache.bHLE_BS2; } } diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index e92b9088bc..ebb43c1abd 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -431,7 +431,7 @@ void EmuThread() CBoot::BootUp(); // Setup our core, but can't use dynarec if we are compare server - if (Movie::GetCPUMode() && (!_CoreParameter.bRunCompareServer || + if (_CoreParameter.iCPUCore && (!_CoreParameter.bRunCompareServer || _CoreParameter.bRunCompareClient)) PowerPC::SetMode(PowerPC::MODE_JIT); else diff --git a/Source/Core/Core/Src/HW/CPU.cpp b/Source/Core/Core/Src/HW/CPU.cpp index a7a272e263..610042c66d 100644 --- a/Source/Core/Core/Src/HW/CPU.cpp +++ b/Source/Core/Core/Src/HW/CPU.cpp @@ -37,10 +37,6 @@ namespace void CCPU::Init(int cpu_core) { - if (Movie::IsPlayingInput() && Movie::IsConfigSaved()) - { - cpu_core = Movie::GetCPUMode(); - } PowerPC::Init(cpu_core); m_SyncEvent = 0; } -- cgit v1.2.3 From 95f66859008fe3dd16f0232e0da5623857abbe44 Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 28 Dec 2012 14:26:46 +1100 Subject: Changed the HLE system to allow it to hook the beginning, the end or replace the entire function without changing the GC memory. Fixes Kirby's Return to Dreamland. Added a way to categorise the type of HLE function. Currently, there are debug, floating point, memory and generic functions. Added a HLE function for OSGetResetCode (Warm reset). Fixes the CSI games. Added a switch to disable all of the HLE functions if the idle skipping option is disabled. --- Source/Core/Core/Src/Boot/Boot.cpp | 3 +- Source/Core/Core/Src/Boot/Boot_BS2Emu.cpp | 2 +- Source/Core/Core/Src/HLE/HLE.cpp | 115 +++++++++++++-------- Source/Core/Core/Src/HLE/HLE.h | 26 ++++- Source/Core/Core/Src/HLE/HLE_Misc.cpp | 96 ++++++++++++++--- Source/Core/Core/Src/HLE/HLE_Misc.h | 7 ++ Source/Core/Core/Src/HW/Memmap.cpp | 5 +- Source/Core/Core/Src/HW/ProcessorInterface.cpp | 3 +- .../Core/Src/PowerPC/Interpreter/Interpreter.cpp | 98 +++++++++++------- Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp | 37 ++++++- Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp | 39 ++++++- .../Core/Core/Src/PowerPC/JitCommon/JitCache.cpp | 6 +- .../Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp | 21 ++-- 13 files changed, 337 insertions(+), 121 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/Boot/Boot.cpp b/Source/Core/Core/Src/Boot/Boot.cpp index 0fa89a28cc..aaaa4dd39a 100644 --- a/Source/Core/Core/Src/Boot/Boot.cpp +++ b/Source/Core/Core/Src/Boot/Boot.cpp @@ -258,7 +258,7 @@ bool CBoot::BootUp() } // Scan for common HLE functions - if (!_StartupPara.bEnableDebugging && Memory::Read_U16(0x00003140) >= 30) + if (_StartupPara.bSkipIdle && !_StartupPara.bEnableDebugging) { PPCAnalyst::FindFunctions(0x80004000, 0x811fffff, &g_symbolDB); SignatureDB db; @@ -267,7 +267,6 @@ bool CBoot::BootUp() db.Apply(&g_symbolDB); HLE::PatchFunctions(); db.Clear(); - g_symbolDB.Clear(); } } diff --git a/Source/Core/Core/Src/Boot/Boot_BS2Emu.cpp b/Source/Core/Core/Src/Boot/Boot_BS2Emu.cpp index bd789fa82b..5011543448 100644 --- a/Source/Core/Core/Src/Boot/Boot_BS2Emu.cpp +++ b/Source/Core/Core/Src/Boot/Boot_BS2Emu.cpp @@ -375,7 +375,7 @@ bool CBoot::EmulatedBS2_Wii() u32 iLength = Memory::ReadUnchecked_U32(0x81300008); u32 iDVDOffset = Memory::ReadUnchecked_U32(0x8130000c) << 2; - INFO_LOG(BOOT, "DVDRead: offset: %08x memOffse: %08x length: %i", iDVDOffset, iRamAddress, iLength); + INFO_LOG(BOOT, "DVDRead: offset: %08x memOffset: %08x length: %i", iDVDOffset, iRamAddress, iLength); DVDInterface::DVDRead(iDVDOffset, iRamAddress, iLength); } while(PowerPC::ppcState.gpr[3] != 0x00); diff --git a/Source/Core/Core/Src/HLE/HLE.cpp b/Source/Core/Core/Src/HLE/HLE.cpp index 0c42f7f4df..457870ba1d 100644 --- a/Source/Core/Core/Src/HLE/HLE.cpp +++ b/Source/Core/Core/Src/HLE/HLE.cpp @@ -15,7 +15,6 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ -#include #include "Common.h" #include "HLE.h" @@ -29,6 +28,7 @@ #include "HLE_Misc.h" #include "IPC_HLE/WII_IPC_HLE_Device_es.h" #include "ConfigManager.h" +#include "Core.h" namespace HLE { @@ -47,56 +47,72 @@ struct SPatch { char m_szPatchName[128]; TPatchFunction PatchFunction; + int type; + int flags; }; static const SPatch OSPatches[] = { - { "FAKE_TO_SKIP_0", HLE_Misc::UnimplementedFunction }, + { "FAKE_TO_SKIP_0", HLE_Misc::UnimplementedFunction, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // speedup - //{ "OSProtectRange", HLE_Misc::UnimplementedFunctionFalse }, - //{ "THPPlayerGetState", HLE_Misc:THPPlayerGetState }, + //{ "OSProtectRange", HLE_Misc::UnimplementedFunctionFalse, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ "THPPlayerGetState", HLE_Misc:THPPlayerGetState, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ "memcpy", HLE_Misc::memcpy, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, + //{ "memcmp", HLE_Misc::memcmp, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, + //{ "memset", HLE_Misc::memset, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, + //{ "memmove", HLE_Misc::memmove, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, + //{ "__div2i", HLE_Misc::div2i, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // Slower? + //{ "__div2u", HLE_Misc::div2u, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // Slower? + + //{ "DCFlushRange", HLE_Misc::UnimplementedFunction, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ "DCInvalidateRange", HLE_Misc::UnimplementedFunction, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ "DCZeroRange", HLE_Misc::UnimplementedFunction, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // debug out is very nice ;) - { "OSReport", HLE_OS::HLE_GeneralDebugPrint }, - { "DEBUGPrint", HLE_OS::HLE_GeneralDebugPrint }, - { "WUD_DEBUGPrint", HLE_OS::HLE_GeneralDebugPrint }, - { "OSPanic", HLE_OS::HLE_OSPanic }, - { "vprintf", HLE_OS::HLE_GeneralDebugPrint }, - { "printf", HLE_OS::HLE_GeneralDebugPrint }, - { "puts", HLE_OS::HLE_GeneralDebugPrint }, // gcc-optimized printf? - { "___blank(char *,...)", HLE_OS::HLE_GeneralDebugPrint }, // used for early init things (normally) - { "___blank", HLE_OS::HLE_GeneralDebugPrint }, - { "__write_console", HLE_OS::HLE_write_console }, // used by sysmenu (+more?) + { "OSReport", HLE_OS::HLE_GeneralDebugPrint, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, + { "DEBUGPrint", HLE_OS::HLE_GeneralDebugPrint, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, + { "WUD_DEBUGPrint", HLE_OS::HLE_GeneralDebugPrint, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, + { "OSPanic", HLE_OS::HLE_OSPanic, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, + { "vprintf", HLE_OS::HLE_GeneralDebugPrint, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, + { "printf", HLE_OS::HLE_GeneralDebugPrint, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, + { "puts", HLE_OS::HLE_GeneralDebugPrint, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, // gcc-optimized printf? + { "___blank(char *,...)", HLE_OS::HLE_GeneralDebugPrint, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, // used for early init things (normally) + { "___blank", HLE_OS::HLE_GeneralDebugPrint, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, + { "__write_console", HLE_OS::HLE_write_console, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, // used by sysmenu (+more?) // wii only - //{ "__OSInitAudioSystem", HLE_Misc::UnimplementedFunction }, + //{ "__OSInitAudioSystem", HLE_Misc::UnimplementedFunction, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // Super Monkey Ball - no longer needed. - //{ ".evil_vec_cosine", HLE_Misc::SMB_EvilVecCosine }, - //{ ".evil_normalize", HLE_Misc::SMB_EvilNormalize }, - //{ ".evil_vec_setlength", HLE_Misc::SMB_evil_vec_setlength }, - //{ ".evil_vec_something", HLE_Misc::FZero_evil_vec_normalize }, - { "PanicAlert", HLE_Misc::HLEPanicAlert }, - //{ ".sqrt_internal_needs_cr1", HLE_Misc::SMB_sqrt_internal }, - //{ ".rsqrt_internal_needs_cr1", HLE_Misc::SMB_rsqrt_internal }, - //{ ".atan2", HLE_Misc::SMB_atan2}, - //{ ".sqrt_fz", HLE_Misc::FZ_sqrt}, + //{ ".evil_vec_cosine", HLE_Misc::SMB_EvilVecCosine, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ ".evil_normalize", HLE_Misc::SMB_EvilNormalize, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ ".evil_vec_setlength", HLE_Misc::SMB_evil_vec_setlength, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ ".evil_vec_something", HLE_Misc::FZero_evil_vec_normalize, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + { "PanicAlert", HLE_Misc::HLEPanicAlert, HLE_HOOK_REPLACE, HLE_TYPE_DEBUG }, + //{ ".sqrt_internal_needs_cr1", HLE_Misc::SMB_sqrt_internal, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ ".rsqrt_internal_needs_cr1", HLE_Misc::SMB_rsqrt_internal, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ ".atan2", HLE_Misc::SMB_atan2HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ ".sqrt_fz", HLE_Misc::FZ_sqrtHLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // F-zero still isn't working correctly, but these aren't really helping. - //{ ".sqrt_internal_fz", HLE_Misc::FZ_sqrt_internal }, - //{ ".rsqrt_internal_fz", HLE_Misc::FZ_rsqrt_internal }, + //{ ".sqrt_internal_fz", HLE_Misc::FZ_sqrt_internal, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + //{ ".rsqrt_internal_fz", HLE_Misc::FZ_rsqrt_internal, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, - //{ ".kill_infinites", HLE_Misc::FZero_kill_infinites }, + //{ ".kill_infinites", HLE_Misc::FZero_kill_infinites, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // special - // { "GXPeekZ", HLE_Misc::GXPeekZ}, - // { "GXPeekARGB", HLE_Misc::GXPeekARGB}, + // { "GXPeekZ", HLE_Misc::GXPeekZHLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + // { "GXPeekARGB", HLE_Misc::GXPeekARGBHLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // Name doesn't matter, installed in CBoot::BootUp() - { "HBReload", HLE_Misc::HBReload }, - { "__OSBootDol", HLE_Misc::OSBootDol }, + { "HBReload", HLE_Misc::HBReload, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + + // ES_LAUNCH + { "__OSBootDol", HLE_Misc::OSBootDol, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + { "OSGetResetCode", HLE_Misc::OSGetResetCode, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, + }; static const SPatch OSBreakPoints[] = @@ -104,17 +120,13 @@ static const SPatch OSBreakPoints[] = { "FAKE_TO_SKIP_0", HLE_Misc::UnimplementedFunction }, }; - -static std::map orig_instruction; - -void Patch(u32 address, const char *hle_func_name) +void Patch(u32 addr, const char *hle_func_name) { for (u32 i = 0; i < sizeof(OSPatches) / sizeof(SPatch); i++) { if (!strcmp(OSPatches[i].m_szPatchName, hle_func_name)) { - u32 HLEPatchValue = (1 & 0x3f) << 26; - Memory::Write_U32(HLEPatchValue | i, address); + orig_instruction[addr] = i; return; } } @@ -128,11 +140,9 @@ void PatchFunctions() Symbol *symbol = g_symbolDB.GetSymbolFromName(OSPatches[i].m_szPatchName); if (symbol > 0) { - u32 HLEPatchValue = (1 & 0x3f) << 26; for (u32 addr = symbol->address; addr < symbol->address + symbol->size; addr += 4) { - orig_instruction[addr] = Memory::ReadUnchecked_U32(addr); - Memory::Write_U32(HLEPatchValue | i, addr); + orig_instruction[addr] = i; } INFO_LOG(OSHLE, "Patching %s %08x", OSPatches[i].m_szPatchName, symbol->address); } @@ -169,12 +179,33 @@ void Execute(u32 _CurrentPC, u32 _Instruction) // _dbg_assert_msg_(HLE,NPC == LR, "Broken HLE function (doesn't set NPC)", OSPatches[pos].m_szPatchName); } -u32 GetOrigInstruction(u32 addr) +u32 GetFunctionIndex(u32 addr) { std::map::const_iterator iter = orig_instruction.find(addr); return (iter != orig_instruction.end()) ? iter->second : 0; } +int GetFunctionTypeByIndex(u32 index) +{ + return OSPatches[index].type; +} + +int GetFunctionFlagsByIndex(u32 index) +{ + return OSPatches[index].flags; +} + +bool IsEnabled(int flags) +{ + if (flags == HLE::HLE_TYPE_MEMORY && Core::g_CoreStartupParameter.bMMU) + return false; + + if (flags == HLE::HLE_TYPE_DEBUG && !Core::g_CoreStartupParameter.bEnableDebugging && PowerPC::GetMode() != MODE_INTERPRETER) + return false; + + return true; +} + u32 UnPatch(std::string patchName) { Symbol *symbol = g_symbolDB.GetSymbolFromName(patchName.c_str()); @@ -182,7 +213,7 @@ u32 UnPatch(std::string patchName) { for (u32 addr = symbol->address; addr < symbol->address + symbol->size; addr += 4) { - Memory::WriteUnchecked_U32(orig_instruction[addr], addr); + orig_instruction[addr] = 0; PowerPC::ppcState.iCache.Invalidate(addr); } return symbol->address; diff --git a/Source/Core/Core/Src/HLE/HLE.h b/Source/Core/Core/Src/HLE/HLE.h index b81f347b9f..9318d34197 100644 --- a/Source/Core/Core/Src/HLE/HLE.h +++ b/Source/Core/Core/Src/HLE/HLE.h @@ -18,16 +18,40 @@ #ifndef _HLE_H #define _HLE_H +#include #include "Common.h" namespace HLE { + enum + { + HLE_HOOK_START = 0, // Hook the beginning of the function and execute the function afterwards + HLE_HOOK_END = 1, // Hook the end of the function, executing the function first before the hook + HLE_HOOK_REPLACE = 2, // Replace the function with the HLE version + HLE_HOOK_NONE = 3, // Do not hook the function + }; + + enum + { + HLE_TYPE_GENERIC = 0, // Miscellaneous function + HLE_TYPE_MEMORY = 1, // Memory operation + HLE_TYPE_FP = 2, // Floating Point operation + HLE_TYPE_DEBUG = 3, // Debug output function + }; + void PatchFunctions(); + void Patch(u32 pc, const char *func_name); u32 UnPatch(std::string patchName); void Execute(u32 _CurrentPC, u32 _Instruction); - u32 GetOrigInstruction(u32 em_address); + u32 GetFunctionIndex(u32 em_address); + int GetFunctionTypeByIndex(u32 index); + int GetFunctionFlagsByIndex(u32 index); + + bool IsEnabled(int flags); + + static std::map orig_instruction; } #endif diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.cpp b/Source/Core/Core/Src/HLE/HLE_Misc.cpp index b04e8004fd..4a17ffd748 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.cpp +++ b/Source/Core/Core/Src/HLE/HLE_Misc.cpp @@ -37,7 +37,6 @@ namespace HLE_Misc { -std::string dol; std::string args; u32 argsPtr; u32 bootType; @@ -302,7 +301,7 @@ void HBReload() void ExecuteDOL(u8* dolFile, u32 fileSize) { // Clear memory before loading the dol - for (int i = 0x80004000; i < Memory::Read_U32(0x00000034); i += 4) + for (u32 i = 0x80004000; i < Memory::Read_U32(0x00000034); i += 4) { // TODO: Should not write over the "save region" Memory::Write_U32(0x00000000, i); @@ -320,7 +319,6 @@ void ExecuteDOL(u8* dolFile, u32 fileSize) db.Apply(&g_symbolDB); HLE::PatchFunctions(); db.Clear(); - g_symbolDB.Clear(); } } @@ -359,12 +357,12 @@ void ExecuteDOL(u8* dolFile, u32 fileSize) NPC = dolLoader.GetEntryPoint() | 0x80000000; } -void LoadDOLFromDisc() +void LoadDOLFromDisc(std::string dol) { DiscIO::IVolume* pVolume = DiscIO::CreateVolumeFromFilename(SConfig::GetInstance().m_LastFilename.c_str()); DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume); - if (dol.substr(1, 1).compare("//")) + if (dol.length() > 1 && dol.compare(0, 1, "/") == 0) dol = dol.substr(1); u32 fileSize = (u32) pFileSystem->GetFileSize(dol.c_str()); @@ -391,19 +389,92 @@ void LoadBootDOLFromDisc() delete[] dolFile; } -u32 GetDolFileSize() +u32 GetDolFileSize(std::string dol) { DiscIO::IVolume* pVolume = DiscIO::CreateVolumeFromFilename(SConfig::GetInstance().m_LastFilename.c_str()); DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume); std::string dolFile; - if (dol.substr(1, 1).compare("//")) + if (dol.length() > 1 && dol.compare(0, 1, "/") == 0) dolFile = dol.substr(1); + else + dolFile = dol; return (u32)pFileSystem->GetFileSize(dolFile.c_str()); } +void memmove() +{ + u32 dest = GPR(3); + u32 src = GPR(4); + u32 count = GPR(5); + std::memmove((u8*)(Memory::base + dest), (u8*)(Memory::base + src), count); + NPC = LR; +} + +void memcpy() +{ + u32 dest = GPR(3); + u32 src = GPR(4); + u32 count = GPR(5); + std::memcpy((u8*)(Memory::base + dest), (u8*)(Memory::base + src), count); + NPC = LR; +} + +void memset() +{ + u32 dest = GPR(3); + u32 ch = GPR(4); + u32 count = GPR(5); + std::memset((u8*)(Memory::base + dest), ch, count); + NPC = LR; +} + +void memcmp() +{ + u32 dest = GPR(3); + u32 src = GPR(4); + u32 count = GPR(5); + GPR(3) = std::memcmp((u8*)(Memory::base + dest), (u8*)(Memory::base + src), count); + NPC = LR; +} + +void div2i() +{ + s64 num = (s64)(GPR(3)) << 32 | GPR(4); + s64 den = (s64)(GPR(5)) << 32 | GPR(6); + s64 quo = num / den; + GPR(3) = quo >> 32; + GPR(4) = quo & 0xffffffff; + NPC = LR; +} + +void div2u() +{ + u64 num = (u64)(GPR(3)) << 32 | GPR(4); + u64 den = (u64)(GPR(5)) << 32 | GPR(6); + u64 quo = num / den; + GPR(3) = quo >> 32; + GPR(4) = quo & 0xffffffff; + NPC = LR; +} + +void OSGetResetCode() +{ + u32 resetCode = Memory::Read_U32(0xCC003024); + if (resetCode != 0) + { + GPR(3) = resetCode | 0x80000000; + } + else + { + GPR(3) = 0; + } + + NPC = LR; +} + void OSBootDol() { IOSv = Memory::Read_U16(0x00003140); @@ -417,8 +488,7 @@ void OSBootDol() u32 resetCode = GPR(30); // Reset game - Memory::Write_U32(resetCode << 3, 0xCC003024); - //Memory::Write_U32((resetCode << 3) | 0x80000000, 0x800030f0); // Warm reset + Memory::Write_U32(resetCode, 0xCC003024); LoadBootDOLFromDisc(); return; } @@ -429,15 +499,17 @@ void OSBootDol() } else if ((GPR(4) >> 28) == 0xC) { + std::string dol; + // Boot DOL from disc u32 ptr = GPR(28); Memory::GetString(dol, ptr); - if (GetDolFileSize() == 0) + if (GetDolFileSize(dol) == 0) { ptr = GPR(30); Memory::GetString(dol, ptr); - if (GetDolFileSize() == 0) + if (GetDolFileSize(dol) == 0) { // Cannot locate the dol file, exit. HLE::UnPatch("__OSBootDol"); @@ -448,7 +520,7 @@ void OSBootDol() argsPtr = Memory::Read_U32(GPR(5)); Memory::GetString(args, argsPtr); - LoadDOLFromDisc(); + LoadDOLFromDisc(dol); return; } else diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.h b/Source/Core/Core/Src/HLE/HLE_Misc.h index d39280831c..d0d098835f 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.h +++ b/Source/Core/Core/Src/HLE/HLE_Misc.h @@ -40,6 +40,13 @@ namespace HLE_Misc void FZ_rsqrt_internal(); void HBReload(); void OSBootDol(); + void OSGetResetCode(); + void memcpy(); + void memset(); + void memmove(); + void memcmp(); + void div2i(); + void div2u(); void ExecuteDOL(u8* dolFile, u32 fileSize); } diff --git a/Source/Core/Core/Src/HW/Memmap.cpp b/Source/Core/Core/Src/HW/Memmap.cpp index 2da999eeac..88f6b2c358 100644 --- a/Source/Core/Core/Src/HW/Memmap.cpp +++ b/Source/Core/Core/Src/HW/Memmap.cpp @@ -416,10 +416,7 @@ bool AreMemoryBreakpointsActivated() u32 Read_Instruction(const u32 em_address) { UGeckoInstruction inst = ReadUnchecked_U32(em_address); - if (inst.OPCD == 1) - return HLE::GetOrigInstruction(em_address); - else - return inst.hex; + return inst.hex; } u32 Read_Opcode_JIT_Uncached(const u32 _Address) diff --git a/Source/Core/Core/Src/HW/ProcessorInterface.cpp b/Source/Core/Core/Src/HW/ProcessorInterface.cpp index 0e989d3f50..9e72cc2169 100644 --- a/Source/Core/Core/Src/HW/ProcessorInterface.cpp +++ b/Source/Core/Core/Src/HW/ProcessorInterface.cpp @@ -96,8 +96,7 @@ void Init() m_FlipperRev = 0x246500B1; // revision C m_Unknown = 0; - // Bleh, why? - //m_ResetCode |= 0x80000000; + m_ResetCode = 0x80000000; // Cold reset m_InterruptCause = INT_CAUSE_RST_BUTTON | INT_CAUSE_VI; toggleResetButton = CoreTiming::RegisterEvent("ToggleResetButton", &ToggleResetButtonCallback); diff --git a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter.cpp b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter.cpp index a8277d868a..be68d357a3 100644 --- a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter.cpp +++ b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter.cpp @@ -26,6 +26,7 @@ #include "PowerPCDisasm.h" #include "../../IPC_HLE/WII_IPC_HLE.h" #include "Atomic.h" +#include "HLE/HLE.h" namespace { @@ -79,57 +80,63 @@ int startTrace = 0; void Trace( UGeckoInstruction &instCode ) { - char regs[500]=""; + char reg[25]=""; + std::string regs = ""; for (int i=0; i<32; i++) { - sprintf(regs, "%sr%02d: %08x ", regs, i, PowerPC::ppcState.gpr[i]); + sprintf(reg, "r%02d: %08x ", i, PowerPC::ppcState.gpr[i]); + regs.append(reg); } - char fregs[500]=""; + char freg[25]=""; + std::string fregs = ""; for (int i=0; i<32; i++) { - sprintf(fregs, "%sf%02d: %08llx %08llx ", fregs, i, - PowerPC::ppcState.ps[i][0], PowerPC::ppcState.ps[i][1]); + sprintf(freg, "f%02d: %08llx %08llx ", i, PowerPC::ppcState.ps[i][0], PowerPC::ppcState.ps[i][1]); + fregs.append(freg); } char ppcInst[256]; DisassembleGekko(instCode.hex, PC, ppcInst, 256); - DEBUG_LOG(POWERPC, "INTER PC: %08x SRR0: %08x SRR1: %08x CRfast: %02x%02x%02x%02x%02x%02x%02x%02x FPSCR: %08x MSR: %08x LR: %08x %s %s %08x %s", PC, SRR0, SRR1, PowerPC::ppcState.cr_fast[0], PowerPC::ppcState.cr_fast[1], PowerPC::ppcState.cr_fast[2], PowerPC::ppcState.cr_fast[3], PowerPC::ppcState.cr_fast[4], PowerPC::ppcState.cr_fast[5], PowerPC::ppcState.cr_fast[6], PowerPC::ppcState.cr_fast[7], PowerPC::ppcState.fpscr, PowerPC::ppcState.msr, PowerPC::ppcState.spr[8], regs, fregs, instCode.hex, ppcInst); + DEBUG_LOG(POWERPC, "INTER PC: %08x SRR0: %08x SRR1: %08x CRfast: %02x%02x%02x%02x%02x%02x%02x%02x FPSCR: %08x MSR: %08x LR: %08x %s %s %08x %s", PC, SRR0, SRR1, PowerPC::ppcState.cr_fast[0], PowerPC::ppcState.cr_fast[1], PowerPC::ppcState.cr_fast[2], PowerPC::ppcState.cr_fast[3], PowerPC::ppcState.cr_fast[4], PowerPC::ppcState.cr_fast[5], PowerPC::ppcState.cr_fast[6], PowerPC::ppcState.cr_fast[7], PowerPC::ppcState.fpscr, PowerPC::ppcState.msr, PowerPC::ppcState.spr[8], regs.c_str(), fregs.c_str(), instCode.hex, ppcInst); } int Interpreter::SingleStepInner(void) { static UGeckoInstruction instCode; - NPC = PC + sizeof(UGeckoInstruction); - instCode.hex = Memory::Read_Opcode(PC); - - // Uncomment to trace the interpreter - //if ((PC & 0xffffff)>=0x0ab54c && (PC & 0xffffff)<=0x0ab624) - // startTrace = 1; - //else - // startTrace = 0; - - if (startTrace) - { - Trace(instCode); - } - - if (instCode.hex != 0) + u32 function = m_EndBlock ? HLE::GetFunctionIndex(PC) : 0; // Check for HLE functions after branches + if (function != 0) { - UReg_MSR& msr = (UReg_MSR&)MSR; - if (msr.FP) //If FPU is enabled, just execute + int type = HLE::GetFunctionTypeByIndex(function); + if (type == HLE::HLE_HOOK_START || type == HLE::HLE_HOOK_REPLACE) { - m_opTable[instCode.OPCD](instCode); - if (PowerPC::ppcState.Exceptions & EXCEPTION_DSI) + int flags = HLE::GetFunctionFlagsByIndex(function); + if (HLE::IsEnabled(flags)) { - PowerPC::CheckExceptions(); - m_EndBlock = true; + HLEFunction(function); } } - else + } + else + { + NPC = PC + sizeof(UGeckoInstruction); + instCode.hex = Memory::Read_Opcode(PC); + + // Uncomment to trace the interpreter + //if ((PC & 0xffffff)>=0x0ab54c && (PC & 0xffffff)<=0x0ab624) + // startTrace = 1; + //else + // startTrace = 0; + + if (startTrace) { - // check if we have to generate a FPU unavailable exception - if (!PPCTables::UsesFPU(instCode)) + Trace(instCode); + } + + if (instCode.hex != 0) + { + UReg_MSR& msr = (UReg_MSR&)MSR; + if (msr.FP) //If FPU is enabled, just execute { m_opTable[instCode.OPCD](instCode); if (PowerPC::ppcState.Exceptions & EXCEPTION_DSI) @@ -140,17 +147,30 @@ int Interpreter::SingleStepInner(void) } else { - Common::AtomicOr(PowerPC::ppcState.Exceptions, EXCEPTION_FPU_UNAVAILABLE); - PowerPC::CheckExceptions(); - m_EndBlock = true; + // check if we have to generate a FPU unavailable exception + if (!PPCTables::UsesFPU(instCode)) + { + m_opTable[instCode.OPCD](instCode); + if (PowerPC::ppcState.Exceptions & EXCEPTION_DSI) + { + PowerPC::CheckExceptions(); + m_EndBlock = true; + } + } + else + { + Common::AtomicOr(PowerPC::ppcState.Exceptions, EXCEPTION_FPU_UNAVAILABLE); + PowerPC::CheckExceptions(); + m_EndBlock = true; + } } } - } - else - { - // Memory exception on instruction fetch - PowerPC::CheckExceptions(); - m_EndBlock = true; + else + { + // Memory exception on instruction fetch + PowerPC::CheckExceptions(); + m_EndBlock = true; + } } last_pc = PC; PC = NPC; diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp index 357eeb7809..31caca0a43 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp @@ -252,8 +252,6 @@ void Jit64::HLEFunction(UGeckoInstruction _inst) gpr.Flush(FLUSH_ALL); fpr.Flush(FLUSH_ALL); ABI_CallFunctionCC((void*)&HLE::Execute, js.compilerPC, _inst.hex); - MOV(32, R(EAX), M(&NPC)); - WriteExitDestInEAX(); } void Jit64::DoNothing(UGeckoInstruction _inst) @@ -566,6 +564,27 @@ const u8* Jit64::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitBloc ABI_CallFunction(thunks.ProtectFunction((void *)&GPFifo::CheckGatherPipe, 0)); } + u32 function = HLE::GetFunctionIndex(ops[i].address); + if (function != 0) + { + int type = HLE::GetFunctionTypeByIndex(function); + if (type == HLE::HLE_HOOK_START || type == HLE::HLE_HOOK_REPLACE) + { + int flags = HLE::GetFunctionFlagsByIndex(function); + if (HLE::IsEnabled(flags)) + { + HLEFunction(function); + if (type == HLE::HLE_HOOK_REPLACE) + { + MOV(32, R(EAX), M(&NPC)); + js.downcountAmount += js.st.numCycles; + WriteExitDestInEAX(); + break; + } + } + } + } + if (!ops[i].skip) { if ((opinfo->flags & FL_USE_FPU) && !js.firstFPInstructionFound) @@ -668,6 +687,20 @@ const u8* Jit64::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitBloc break; } + u32 function = HLE::GetFunctionIndex(js.blockStart); + if (function != 0) + { + int type = HLE::GetFunctionTypeByIndex(function); + if (type == HLE::HLE_HOOK_END) + { + int flags = HLE::GetFunctionFlagsByIndex(function); + if (HLE::IsEnabled(flags)) + { + HLEFunction(function); + } + } + } + if (memory_exception) { // Address of instruction could not be translated diff --git a/Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp b/Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp index c9d4e44e71..d56c9ffee8 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64IL/JitIL.cpp @@ -199,7 +199,7 @@ namespace JitILProfiler static u64 beginTime; static Block& Add(u64 codeHash) { - const u32 _blockIndex = blocks.size(); + const u32 _blockIndex = (u32)blocks.size(); blocks.push_back(Block()); Block& block = blocks.back(); block.index = _blockIndex; @@ -649,6 +649,27 @@ const u8* JitIL::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitBloc js.next_compilerPC = ops[i + 1].address; } + u32 function = HLE::GetFunctionIndex(ops[i].address); + if (function != 0) + { + int type = HLE::GetFunctionTypeByIndex(function); + if (type == HLE::HLE_HOOK_START || type == HLE::HLE_HOOK_REPLACE) + { + int flags = HLE::GetFunctionFlagsByIndex(function); + if (HLE::IsEnabled(flags)) + { + HLEFunction(function); + if (type == HLE::HLE_HOOK_REPLACE) + { + MOV(32, R(EAX), M(&NPC)); + jit->js.downcountAmount += jit->js.st.numCycles; + WriteExitDestInOpArg(R(EAX)); + break; + } + } + } + } + if (!ops[i].skip) { if (js.memcheck && (opinfo->flags & FL_USE_FPU)) @@ -665,7 +686,7 @@ const u8* JitIL::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitBloc { ibuild.EmitBreakPointCheck(ibuild.EmitIntConst(ops[i].address)); } - + JitILTables::CompileInstruction(ops[i]); if (js.memcheck && (opinfo->flags & FL_LOADSTORE)) @@ -681,6 +702,20 @@ const u8* JitIL::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitBloc } } + u32 function = HLE::GetFunctionIndex(jit->js.blockStart); + if (function != 0) + { + int type = HLE::GetFunctionTypeByIndex(function); + if (type == HLE::HLE_HOOK_END) + { + int flags = HLE::GetFunctionFlagsByIndex(function); + if (HLE::IsEnabled(flags)) + { + HLEFunction(function); + } + } + } + if (memory_exception) { ibuild.EmitISIException(ibuild.EmitIntConst(em_address)); diff --git a/Source/Core/Core/Src/PowerPC/JitCommon/JitCache.cpp b/Source/Core/Core/Src/PowerPC/JitCommon/JitCache.cpp index 496ddebf7a..57827ec662 100644 --- a/Source/Core/Core/Src/PowerPC/JitCommon/JitCache.cpp +++ b/Source/Core/Core/Src/PowerPC/JitCommon/JitCache.cpp @@ -135,7 +135,11 @@ bool JitBlock::ContainsAddress(u32 em_address) // is full and when saving and loading states. void JitBlockCache::Clear() { - Core::DisplayMessage("Clearing code cache.", 3000); + if (IsFull()) + Core::DisplayMessage("Clearing block cache.", 3000); + else + Core::DisplayMessage("Clearing code cache.", 3000); + for (int i = 0; i < num_blocks; i++) { DestroyBlock(i, false); diff --git a/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp b/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp index 333f0cdc05..7ec780b336 100644 --- a/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp +++ b/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp @@ -269,23 +269,18 @@ void EmuCodeBlock::SafeWriteRegToReg(X64Reg reg_value, X64Reg reg_addr, int acce void EmuCodeBlock::SafeWriteFloatToReg(X64Reg xmm_value, X64Reg reg_addr) { - u32 mem_mask = Memory::ADDR_MASK_HW_ACCESS; + if (false && cpu_info.bSSSE3) { + // This path should be faster but for some reason it causes errors so I've disabled it. + u32 mem_mask = Memory::ADDR_MASK_HW_ACCESS; - if (Core::g_CoreStartupParameter.bMMU || Core::g_CoreStartupParameter.iTLBHack) - { - mem_mask |= Memory::ADDR_MASK_MEM1; - } + if (Core::g_CoreStartupParameter.bMMU || Core::g_CoreStartupParameter.iTLBHack) + mem_mask |= Memory::ADDR_MASK_MEM1; #ifdef ENABLE_MEM_CHECK - if (Core::g_CoreStartupParameter.bEnableDebugging) - { - mem_mask |= Memory::EXRAM_MASK; - } + if (Core::g_CoreStartupParameter.bEnableDebugging) + mem_mask |= Memory::EXRAM_MASK; #endif - - TEST(32, R(reg_addr), Imm32(mem_mask)); - if (false && cpu_info.bSSSE3) { - // This path should be faster but for some reason it causes errors so I've disabled it. + TEST(32, R(reg_addr), Imm32(mem_mask)); FixupBranch argh = J_CC(CC_Z); MOVSS(M(&float_buffer), xmm_value); MOV(32, R(EAX), M(&float_buffer)); -- cgit v1.2.3 From 5ccbcf455e437031cb2542db0804a341cc9150cc Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 30 Dec 2012 13:41:48 +1100 Subject: Added preliminary GameCube Steering Wheel emulation via a PC Force Feedback Steering Wheel. --- Source/Core/Core/CMakeLists.txt | 1 + Source/Core/Core/Core.vcxproj | 2 + Source/Core/Core/Core.vcxproj.filters | 6 + Source/Core/Core/Src/HW/GCPad.cpp | 27 +- Source/Core/Core/Src/HW/GCPad.h | 1 + Source/Core/Core/Src/HW/GCPadEmu.cpp | 7 +- Source/Core/Core/Src/HW/GCPadEmu.h | 2 +- Source/Core/Core/Src/HW/SI_Device.cpp | 5 + .../Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp | 301 +++++++++++++++++++++ Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h | 118 ++++++++ Source/Core/Core/Src/NetPlay.cpp | 11 + Source/Core/DolphinWX/Src/ConfigMain.cpp | 13 +- .../ControllerInterface/DInput/DInputJoystick.cpp | 27 +- 13 files changed, 506 insertions(+), 15 deletions(-) create mode 100644 Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp create mode 100644 Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h (limited to 'Source') diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 124d7aa879..6ffeeaec3a 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -115,6 +115,7 @@ set(SRCS Src/ActionReplay.cpp Src/HW/SI_Device.cpp Src/HW/SI_DeviceGBA.cpp Src/HW/SI_DeviceGCController.cpp + Src/HW/SI_DeviceGCSteeringWheel.cpp Src/HW/Sram.cpp Src/HW/StreamADPCM.cpp Src/HW/SystemTimers.cpp diff --git a/Source/Core/Core/Core.vcxproj b/Source/Core/Core/Core.vcxproj index e626ccd033..bd3d97f11b 100644 --- a/Source/Core/Core/Core.vcxproj +++ b/Source/Core/Core/Core.vcxproj @@ -301,6 +301,7 @@ + @@ -503,6 +504,7 @@ + diff --git a/Source/Core/Core/Core.vcxproj.filters b/Source/Core/Core/Core.vcxproj.filters index ad6db227d5..246dafd972 100644 --- a/Source/Core/Core/Core.vcxproj.filters +++ b/Source/Core/Core/Core.vcxproj.filters @@ -290,6 +290,9 @@ HW %28Flipper/Hollywood%29\SI - Serial Interface + + HW %28Flipper/Hollywood%29\SI - Serial Interface + HW %28Flipper/Hollywood%29\VI - Video Interface @@ -814,6 +817,9 @@ HW %28Flipper/Hollywood%29\SI - Serial Interface + + HW %28Flipper/Hollywood%29\SI - Serial Interface + HW %28Flipper/Hollywood%29\SI - Serial Interface diff --git a/Source/Core/Core/Src/HW/GCPad.cpp b/Source/Core/Core/Src/HW/GCPad.cpp index 4c1b4dabdd..61b666af12 100644 --- a/Source/Core/Core/Src/HW/GCPad.cpp +++ b/Source/Core/Core/Src/HW/GCPad.cpp @@ -101,7 +101,32 @@ void Rumble(u8 _numPAD, unsigned int _uType, unsigned int _uStrength) { // TODO: this has potential to not stop rumble if user is messing with GUI at the perfect time // set rumble - ((GCPad*)g_plugin.controllers[ _numPAD ])->SetOutput( 1 == _uType && _uStrength > 2 ); + if (1 == _uType && _uStrength > 2) + { + ((GCPad*)g_plugin.controllers[ _numPAD ])->SetOutput(255); + } + } +} + +// __________________________________________________________________________________________________ +// Function: Motor +// Purpose: For devices with constant Force feedback +// input: Type - 06 = Motor On, 04 = Motor Off +// Strength - 00 = Left Strong, 127 = Left Weak, 128 = Right Weak, 255 = Right Strong +// output: none +// +void Motor(u8 _numPAD, unsigned int _uType, unsigned int _uStrength) +{ + std::unique_lock lk(g_plugin.controls_lock, std::try_to_lock); + + if (lk.owns_lock()) + { + // TODO: this has potential to not stop rumble if user is messing with GUI at the perfect time + // set rumble + if (_uType == 06) + { + ((GCPad*)g_plugin.controllers[ _numPAD ])->SetOutput(_uStrength); + } } } diff --git a/Source/Core/Core/Src/HW/GCPad.h b/Source/Core/Core/Src/HW/GCPad.h index f7f6af2f20..fb07e82ccc 100644 --- a/Source/Core/Core/Src/HW/GCPad.h +++ b/Source/Core/Core/Src/HW/GCPad.h @@ -32,6 +32,7 @@ InputPlugin *GetPlugin(); void GetStatus(u8 _numPAD, SPADStatus* _pPADStatus); void Rumble(u8 _numPAD, unsigned int _uType, unsigned int _uStrength); +void Motor(u8 _numPAD, unsigned int _uType, unsigned int _uStrength); bool GetMicButton(u8 pad); } diff --git a/Source/Core/Core/Src/HW/GCPadEmu.cpp b/Source/Core/Core/Src/HW/GCPadEmu.cpp index 837c9104cc..5233ed2877 100644 --- a/Source/Core/Core/Src/HW/GCPadEmu.cpp +++ b/Source/Core/Core/Src/HW/GCPadEmu.cpp @@ -130,10 +130,13 @@ void GCPad::GetInput(SPADStatus* const pad) } } -void GCPad::SetOutput(const bool on) +void GCPad::SetOutput(const u8 on) { // only rumble if window has focus or background input is enabled - m_rumble->controls[0]->control_ref->State(on && (Host_RendererHasFocus() || m_options[0].settings[0]->value)); + if (Host_RendererHasFocus() || m_options[0].settings[0]->value) + m_rumble->controls[0]->control_ref->State((float)on / 255); + else + m_rumble->controls[0]->control_ref->State(0); } void GCPad::LoadDefaults(const ControllerInterface& ciface) diff --git a/Source/Core/Core/Src/HW/GCPadEmu.h b/Source/Core/Core/Src/HW/GCPadEmu.h index 5185ff221c..cf0940245e 100644 --- a/Source/Core/Core/Src/HW/GCPadEmu.h +++ b/Source/Core/Core/Src/HW/GCPadEmu.h @@ -28,7 +28,7 @@ public: GCPad(const unsigned int index); void GetInput(SPADStatus* const pad); - void SetOutput(const bool on); + void SetOutput(const u8 on); bool GetMicButton() const; diff --git a/Source/Core/Core/Src/HW/SI_Device.cpp b/Source/Core/Core/Src/HW/SI_Device.cpp index 8abddbe472..062499f16f 100644 --- a/Source/Core/Core/Src/HW/SI_Device.cpp +++ b/Source/Core/Core/Src/HW/SI_Device.cpp @@ -17,6 +17,7 @@ #include "SI_Device.h" #include "SI_DeviceGCController.h" +#include "SI_DeviceGCSteeringWheel.h" #include "SI_DeviceGBA.h" #include "SI_DeviceAMBaseboard.h" @@ -76,6 +77,10 @@ ISIDevice* SIDevice_Create(const SIDevices device, const int port_number) return new CSIDevice_GCController(device, port_number); break; + case SIDEVICE_GC_STEERING: + return new CSIDevice_GCSteeringWheel(device, port_number); + break; + case SIDEVICE_GC_TARUKONGA: return new CSIDevice_TaruKonga(device, port_number); break; diff --git a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp new file mode 100644 index 0000000000..113fe186b1 --- /dev/null +++ b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp @@ -0,0 +1,301 @@ +// Copyright (C) 2003 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 +#include + +#include "SI.h" +#include "SI_Device.h" +#include "SI_DeviceGCSteeringWheel.h" + +#include "EXI_Device.h" +#include "EXI_DeviceMic.h" + +#include "GCPad.h" + +#include "../Movie.h" + +#include "../CoreTiming.h" +#include "SystemTimers.h" +#include "ProcessorInterface.h" +#include "../Core.h" + +// --- standard gamecube controller --- +CSIDevice_GCSteeringWheel::CSIDevice_GCSteeringWheel(SIDevices device, int _iDeviceNumber) + : ISIDevice(device, _iDeviceNumber) + , m_TButtonComboStart(0) + , m_TButtonCombo(0) + , m_LastButtonCombo(COMBO_NONE) +{ + memset(&m_Origin, 0, sizeof(SOrigin)); + m_Origin.uCommand = CMD_ORIGIN; + m_Origin.uOriginStickX = 0x80; // center + m_Origin.uOriginStickY = 0x80; + m_Origin.uSubStickStickX = 0x80; + m_Origin.uSubStickStickY = 0x80; + m_Origin.uTrigger_L = 0x1F; // 0-30 is the lower deadzone + m_Origin.uTrigger_R = 0x1F; + + // Dunno if we need to do this, game/lib should set it? + m_Mode = 0x03; +} + +int CSIDevice_GCSteeringWheel::RunBuffer(u8* _pBuffer, int _iLength) +{ + // For debug logging only + ISIDevice::RunBuffer(_pBuffer, _iLength); + + // Read the command + EBufferCommands command = static_cast(_pBuffer[3]); + + // Handle it + switch (command) + { + case CMD_RESET: + *(u32*)&_pBuffer[0] = SI_GC_STEERING; + break; + + case CMD_ORIGIN: + { + INFO_LOG(SERIALINTERFACE, "PAD - Get Origin"); + u8* pCalibration = reinterpret_cast(&m_Origin); + for (int i = 0; i < (int)sizeof(SOrigin); i++) + { + _pBuffer[i ^ 3] = *pCalibration++; + } + } + break; + + // Recalibrate (FiRES: i am not 100 percent sure about this) + case CMD_RECALIBRATE: + { + INFO_LOG(SERIALINTERFACE, "PAD - Recalibrate"); + u8* pCalibration = reinterpret_cast(&m_Origin); + for (int i = 0; i < (int)sizeof(SOrigin); i++) + { + _pBuffer[i ^ 3] = *pCalibration++; + } + } + break; + + // DEFAULT + default: + { + ERROR_LOG(SERIALINTERFACE, "unknown SI command (0x%x)", command); + } + break; + } + + return _iLength; +} + + +// GetData + +// Return true on new data (max 7 Bytes and 6 bits ;) +// [00?SYXBA] [1LRZUDRL] [x] [y] [cx] [cy] [l] [r] +// |\_ ERR_LATCH (error latched - check SISR) +// |_ ERR_STATUS (error on last GetData or SendCmd?) +bool CSIDevice_GCSteeringWheel::GetData(u32& _Hi, u32& _Low) +{ + SPADStatus PadStatus; + memset(&PadStatus, 0, sizeof(PadStatus)); + + Pad::GetStatus(ISIDevice::m_iDeviceNumber, &PadStatus); + Movie::CallInputManip(&PadStatus, ISIDevice::m_iDeviceNumber); + + u32 netValues[2]; + if (NetPlay_GetInput(ISIDevice::m_iDeviceNumber, PadStatus, netValues)) + { + _Hi = netValues[0]; // first 4 bytes + _Low = netValues[1]; // last 4 bytes + return true; + } + + Movie::SetPolledDevice(); + + if(Movie::IsPlayingInput()) + { + Movie::PlayController(&PadStatus, ISIDevice::m_iDeviceNumber); + if(!Movie::IsUsingWiimote(0)) + Movie::InputUpdate(); + } + else if(Movie::IsRecordingInput()) + { + Movie::RecordInput(&PadStatus, ISIDevice::m_iDeviceNumber); + if(!Movie::IsUsingWiimote(0)) + Movie::InputUpdate(); + } + else + Movie::CheckPadStatus(&PadStatus, ISIDevice::m_iDeviceNumber); + + // Thankfully changing mode does not change the high bits ;) + _Hi = (u32)((u8)PadStatus.stickY); + _Hi |= (u32)((u8)PadStatus.stickX << 8); + _Hi |= (u32)((u16)(PadStatus.button | PAD_USE_ORIGIN) << 16); + + // Low bits are packed differently per mode + if (m_Mode == 0 || m_Mode == 5 || m_Mode == 6 || m_Mode == 7) + { + _Low = (u8)(PadStatus.analogB >> 4); // Top 4 bits + _Low |= (u32)((u8)(PadStatus.analogA >> 4) << 4); // Top 4 bits + _Low |= (u32)((u8)(PadStatus.triggerRight >> 4) << 8); // Top 4 bits + _Low |= (u32)((u8)(PadStatus.triggerLeft >> 4) << 12); // Top 4 bits + _Low |= (u32)((u8)(PadStatus.substickY) << 16); // All 8 bits + _Low |= (u32)((u8)(PadStatus.substickX) << 24); // All 8 bits + } + else if (m_Mode == 1) + { + _Low = (u8)(PadStatus.analogB >> 4); // Top 4 bits + _Low |= (u32)((u8)(PadStatus.analogA >> 4) << 4); // Top 4 bits + _Low |= (u32)((u8)PadStatus.triggerRight << 8); // All 8 bits + _Low |= (u32)((u8)PadStatus.triggerLeft << 16); // All 8 bits + _Low |= (u32)((u8)PadStatus.substickY << 24); // Top 4 bits + _Low |= (u32)((u8)PadStatus.substickX << 28); // Top 4 bits + } + else if (m_Mode == 2) + { + _Low = (u8)(PadStatus.analogB); // All 8 bits + _Low |= (u32)((u8)(PadStatus.analogA) << 8); // All 8 bits + _Low |= (u32)((u8)(PadStatus.triggerRight >> 4) << 16); // Top 4 bits + _Low |= (u32)((u8)(PadStatus.triggerLeft >> 4) << 20); // Top 4 bits + _Low |= (u32)((u8)PadStatus.substickY << 24); // Top 4 bits + _Low |= (u32)((u8)PadStatus.substickX << 28); // Top 4 bits + } + else if (m_Mode == 3) + { + // Analog A/B are always 0 + _Low = (u8)PadStatus.triggerRight; // All 8 bits + _Low |= (u32)((u8)PadStatus.triggerLeft << 8); // All 8 bits + _Low |= (u32)((u8)PadStatus.substickY << 16); // All 8 bits + _Low |= (u32)((u8)PadStatus.substickX << 24); // All 8 bits + } + else if (m_Mode == 4) + { + _Low = (u8)(PadStatus.analogB); // All 8 bits + _Low |= (u32)((u8)(PadStatus.analogA) << 8); // All 8 bits + // triggerLeft/Right are always 0 + _Low |= (u32)((u8)PadStatus.substickY << 16); // All 8 bits + _Low |= (u32)((u8)PadStatus.substickX << 24); // All 8 bits + } + + // Keep track of the special button combos (embedded in controller hardware... :( ) + EButtonCombo tempCombo; + if ((PadStatus.button & 0xff00) == (PAD_BUTTON_Y|PAD_BUTTON_X|PAD_BUTTON_START)) + tempCombo = COMBO_ORIGIN; + else if ((PadStatus.button & 0xff00) == (PAD_BUTTON_B|PAD_BUTTON_X|PAD_BUTTON_START)) + tempCombo = COMBO_RESET; + else + tempCombo = COMBO_NONE; + if (tempCombo != m_LastButtonCombo) + { + m_LastButtonCombo = tempCombo; + if (m_LastButtonCombo != COMBO_NONE) + m_TButtonComboStart = CoreTiming::GetTicks(); + } + if (m_LastButtonCombo != COMBO_NONE) + { + m_TButtonCombo = CoreTiming::GetTicks(); + if ((m_TButtonCombo - m_TButtonComboStart) > SystemTimers::GetTicksPerSecond() * 3) + { + if (m_LastButtonCombo == COMBO_RESET) + ProcessorInterface::ResetButton_Tap(); + else if (m_LastButtonCombo == COMBO_ORIGIN) + { + m_Origin.uOriginStickX = PadStatus.stickX; + m_Origin.uOriginStickY = PadStatus.stickY; + m_Origin.uSubStickStickX = PadStatus.substickX; + m_Origin.uSubStickStickY = PadStatus.substickY; + m_Origin.uTrigger_L = PadStatus.triggerLeft; + m_Origin.uTrigger_R = PadStatus.triggerRight; + } + m_LastButtonCombo = COMBO_NONE; + } + } + + return true; +} + + +// SendCommand +void CSIDevice_GCSteeringWheel::SendCommand(u32 _Cmd, u8 _Poll) +{ + UCommand command(_Cmd); + + switch (command.Command) + { + // Costis sent it in some demos :) + case 0x00: + break; + + case CMD_FORCE: + { + unsigned int uStrength = command.Parameter1; // 0 = left strong, 127 = left weak, 128 = right weak, 255 = right strong + unsigned int uType = command.Parameter2; // 06 = motor on, 04 = motor off + + // get the correct pad number that should rumble locally when using netplay + const u8 numPAD = NetPlay_GetPadNum(ISIDevice::m_iDeviceNumber); + + NOTICE_LOG(COMMON, "Type: %d Strength: %d", uType, uStrength); + + if (numPAD < 4) + Pad::Motor(numPAD, uType, uStrength); + + if (!_Poll) + { + m_Mode = command.Parameter2; + INFO_LOG(SERIALINTERFACE, "PAD %i set to mode %i", ISIDevice::m_iDeviceNumber, m_Mode); + } + } + break; + + case CMD_WRITE: + { + unsigned int uType = command.Parameter1; // 0 = stop, 1 = rumble, 2 = stop hard + unsigned int uStrength = command.Parameter2; + + // get the correct pad number that should rumble locally when using netplay + const u8 numPAD = NetPlay_GetPadNum(ISIDevice::m_iDeviceNumber); + + if (numPAD < 4) + Pad::Rumble(numPAD, uType, uStrength); + + if (!_Poll) + { + m_Mode = command.Parameter2; + INFO_LOG(SERIALINTERFACE, "PAD %i set to mode %i", ISIDevice::m_iDeviceNumber, m_Mode); + } + } + break; + + default: + { + ERROR_LOG(SERIALINTERFACE, "unknown direct command (0x%x)", _Cmd); + } + break; + } +} + +// Savestate support +void CSIDevice_GCSteeringWheel::DoState(PointerWrap& p) +{ + p.Do(m_Origin); + p.Do(m_Mode); + p.Do(m_TButtonComboStart); + p.Do(m_TButtonCombo); + p.Do(m_LastButtonCombo); +} diff --git a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h new file mode 100644 index 0000000000..1814c8d6e4 --- /dev/null +++ b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h @@ -0,0 +1,118 @@ +// Copyright (C) 2003 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 _SI_DEVICEGCSTEERINGWHEEL_H +#define _SI_DEVICEGCSTEERINGWHEEL_H + +#include "SI_Device.h" +#include "GCPadStatus.h" + + +// standard gamecube controller +class CSIDevice_GCSteeringWheel : public ISIDevice +{ +private: + + // Commands + enum EBufferCommands + { + CMD_RESET = 0x00, + CMD_ORIGIN = 0x41, + CMD_RECALIBRATE = 0x42, + }; + + struct SOrigin + { + u8 uCommand;// Maybe should be button bits? + u8 unk_1; // ..and this would be the other half + u8 uOriginStickX; + u8 uOriginStickY; + u8 uSubStickStickX; + u8 uSubStickStickY; + u8 uTrigger_L; + u8 uTrigger_R; + u8 unk_4; + u8 unk_5; + u8 unk_6; + u8 unk_7; + }; + + enum EDirectCommands + { + CMD_FORCE = 0x30, + CMD_WRITE = 0x40 + }; + + union UCommand + { + u32 Hex; + struct + { + u32 Parameter1 : 8; + u32 Parameter2 : 8; + u32 Command : 8; + u32 : 8; + }; + UCommand() {Hex = 0;} + UCommand(u32 _iValue) {Hex = _iValue;} + }; + + enum EButtonCombo + { + COMBO_NONE = 0, + COMBO_ORIGIN, + COMBO_RESET + }; + + // struct to compare input against + // Set on connection and (standard pad only) on button combo + SOrigin m_Origin; + + // PADAnalogMode + u8 m_Mode; + + // Timer to track special button combos: + // y, X, start for 3 seconds updates origin with current status + // Technically, the above is only on standard pad, wavebird does not support it for example + // b, x, start for 3 seconds triggers reset (PI reset button interrupt) + u64 m_TButtonComboStart, m_TButtonCombo; + // Type of button combo from the last/current poll + EButtonCombo m_LastButtonCombo; + +public: + + // Constructor + CSIDevice_GCSteeringWheel(SIDevices device, int _iDeviceNumber); + + // Run the SI Buffer + virtual int RunBuffer(u8* _pBuffer, int _iLength); + + // Send and Receive pad input from network + static bool NetPlay_GetInput(u8 numPAD, SPADStatus status, u32 *PADStatus); + static u8 NetPlay_GetPadNum(u8 numPAD); + + // Return true on new data + virtual bool GetData(u32& _Hi, u32& _Low); + + // Send a command directly + virtual void SendCommand(u32 _Cmd, u8 _Poll); + + // Savestate support + virtual void DoState(PointerWrap& p); +}; + +#endif diff --git a/Source/Core/Core/Src/NetPlay.cpp b/Source/Core/Core/Src/NetPlay.cpp index 1c19f763ec..05331bc6cc 100644 --- a/Source/Core/Core/Src/NetPlay.cpp +++ b/Source/Core/Core/Src/NetPlay.cpp @@ -22,6 +22,7 @@ #include "IPC_HLE/WII_IPC_HLE_WiiMote.h" // for gcpad #include "HW/SI_DeviceGCController.h" +#include "HW/SI_DeviceGCSteeringWheel.h" // for gctime #include "HW/EXI_DeviceIPL.h" // for wiimote/ OSD messages @@ -296,6 +297,11 @@ bool CSIDevice_GCController::NetPlay_GetInput(u8 numPAD, SPADStatus PadStatus, u return false; } +bool CSIDevice_GCSteeringWheel::NetPlay_GetInput(u8 numPAD, SPADStatus PadStatus, u32 *PADStatus) +{ + return CSIDevice_GCController::NetPlay_GetInput(numPAD, PadStatus, PADStatus); +} + // called from ---CPU--- thread // so all players' games get the same time u32 CEXIIPL::NetPlay_GetGCTime() @@ -320,6 +326,11 @@ u8 CSIDevice_GCController::NetPlay_GetPadNum(u8 numPAD) return numPAD; } +u8 CSIDevice_GCSteeringWheel::NetPlay_GetPadNum(u8 numPAD) +{ + return CSIDevice_GCController::NetPlay_GetPadNum(numPAD); +} + // called from ---CPU--- thread // wiimote update / used for frame counting //void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int _number) diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 76508daf7c..6e9987b1f4 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -79,6 +79,7 @@ static const wxLanguage langIds[] = #define DEV_DUMMY_STR _trans("Dummy") #define SIDEV_STDCONT_STR _trans("Standard Controller") +#define SIDEV_STEERING_STR _trans("Steering Wheel") #define SIDEV_BONGO_STR _trans("TaruKonga (Bongos)") #define SIDEV_GBA_STR "GBA" #define SIDEV_AM_BB_STR _trans("AM-Baseboard") @@ -391,6 +392,7 @@ void CConfigMain::InitializeGUIValues() wxArrayString SIDevices; SIDevices.Add(_(DEV_NONE_STR)); SIDevices.Add(_(SIDEV_STDCONT_STR)); + SIDevices.Add(_(SIDEV_STEERING_STR)); SIDevices.Add(_(SIDEV_BONGO_STR)); SIDevices.Add(_(SIDEV_GBA_STR)); SIDevices.Add(_(SIDEV_AM_BB_STR)); @@ -443,15 +445,18 @@ void CConfigMain::InitializeGUIValues() case SIDEVICE_GC_CONTROLLER: GCSIDevice[i]->SetStringSelection(SIDevices[1]); break; - case SIDEVICE_GC_TARUKONGA: + case SIDEVICE_GC_STEERING: GCSIDevice[i]->SetStringSelection(SIDevices[2]); break; - case SIDEVICE_GC_GBA: + case SIDEVICE_GC_TARUKONGA: GCSIDevice[i]->SetStringSelection(SIDevices[3]); break; - case SIDEVICE_AM_BASEBOARD: + case SIDEVICE_GC_GBA: GCSIDevice[i]->SetStringSelection(SIDevices[4]); break; + case SIDEVICE_AM_BASEBOARD: + GCSIDevice[i]->SetStringSelection(SIDevices[5]); + break; default: GCSIDevice[i]->SetStringSelection(SIDevices[0]); break; @@ -1053,6 +1058,8 @@ void CConfigMain::ChooseSIDevice(wxString deviceName, int deviceNum) SIDevices tempType; if (!deviceName.compare(WXSTR_TRANS(SIDEV_STDCONT_STR))) tempType = SIDEVICE_GC_CONTROLLER; + else if (!deviceName.compare(WXSTR_TRANS(SIDEV_STEERING_STR))) + tempType = SIDEVICE_GC_STEERING; else if (!deviceName.compare(WXSTR_TRANS(SIDEV_BONGO_STR))) tempType = SIDEVICE_GC_TARUKONGA; else if (!deviceName.compare(wxT(SIDEV_GBA_STR))) diff --git a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp index 08d62bcfc1..5f80b6f32b 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp @@ -145,7 +145,7 @@ LCleanup: void InitJoystick(IDirectInput8* const idi8, std::vector& devices, HWND hwnd) { std::list joysticks; - idi8->EnumDevices( DI8DEVCLASS_GAMECTRL, DIEnumDevicesCallback, (LPVOID)&joysticks, DIEDFL_ATTACHEDONLY ); + idi8->EnumDevices( DI8DEVCLASS_GAMECTRL, DIEnumDevicesCallback, (LPVOID)&joysticks, DIEDFL_FORCEFEEDBACK | DIEDFL_ATTACHEDONLY ); // this is used to number the joysticks // multiple joysticks with the same name shall get unique ids starting at 0 @@ -254,9 +254,9 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI for (unsigned int offset = 0; offset < DIJOFS_BUTTON(0) / sizeof(LONG); ++offset) { range.diph.dwObj = offset * sizeof(LONG); - // try to set some nice power of 2 values (8192) - range.lMin = -(1 << 13); - range.lMax = (1 << 13); + // try to set some nice power of 2 values (128) to match the GameCube controls + range.lMin = -(1 << 7); + range.lMax = (1 << 7); m_device->SetProperty(DIPROP_RANGE, &range.diph); // but i guess not all devices support setting range // so i getproperty right afterward incase it didn't set :P @@ -281,17 +281,19 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI if ( objects.size() ) { // temporary - DWORD rgdwAxes[] = {DIJOFS_X, DIJOFS_Y}; - LONG rglDirection[] = {0, 0}; + DWORD rgdwAxes[2] = {DIJOFS_X, DIJOFS_Y}; + LONG rglDirection[2] = {-200, 0}; DIEFFECT eff; ZeroMemory(&eff, sizeof(eff)); eff.dwSize = sizeof(DIEFFECT); eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS; eff.dwDuration = INFINITE; // (4 * DI_SECONDS) + eff.dwSamplePeriod = 0; eff.dwGain = DI_FFNOMINALMAX; eff.dwTriggerButton = DIEB_NOTRIGGER; - eff.cAxes = std::min((DWORD)2, (DWORD)objects.size()); + eff.dwTriggerRepeatInterval = 0; + eff.cAxes = std::min((DWORD)1, (DWORD)objects.size()); eff.rgdwAxes = rgdwAxes; eff.rglDirection = rglDirection; @@ -310,7 +312,12 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI { // ugly if ladder if (0 == f) + { + DICONSTANTFORCE diCF = {-10000}; + diCF.lMagnitude = DI_FFNOMINALMAX; eff.cbTypeSpecificParams = sizeof(DICONSTANTFORCE); + eff.lpvTypeSpecificParams = &diCF; + } else if (1 == f) eff.cbTypeSpecificParams = sizeof(DIRAMPFORCE); else @@ -528,7 +535,11 @@ ControlState Joystick::Hat::GetState() const void Joystick::ForceConstant::SetState(const ControlState state) { - const LONG new_val = LONG(10000 * state); + float force = abs(state - 0.5) * 2; + if (state < 0.5) + force = -force; + + const LONG new_val = LONG(10000 * force); LONG &val = params.lMagnitude; if (val != new_val) -- cgit v1.2.3 From 51603f052220b6240ac9c316ab791c3738e260ef Mon Sep 17 00:00:00 2001 From: skidau Date: Tue, 1 Jan 2013 13:49:22 +1100 Subject: * Implemented working pedal support. * Changed the mapping of the steering wheel to: Main Stick Left/Right = Steer Left/Right Main Stick Up = Accelerate Main Stick Down = Brake * Fixed non-force feedback controllers that were not detected --- .../Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp | 23 +++++++++++++++++++--- Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h | 1 + .../ControllerInterface/DInput/DInputJoystick.cpp | 2 +- 3 files changed, 22 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp index 113fe186b1..7783261da9 100644 --- a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp +++ b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp @@ -92,6 +92,10 @@ int CSIDevice_GCSteeringWheel::RunBuffer(u8* _pBuffer, int _iLength) } break; + // Seen in F-Zero GX + case CMD_MOTOR_OFF: + break; + // DEFAULT default: { @@ -144,12 +148,12 @@ bool CSIDevice_GCSteeringWheel::GetData(u32& _Hi, u32& _Low) Movie::CheckPadStatus(&PadStatus, ISIDevice::m_iDeviceNumber); // Thankfully changing mode does not change the high bits ;) - _Hi = (u32)((u8)PadStatus.stickY); - _Hi |= (u32)((u8)PadStatus.stickX << 8); + _Hi = (u32)((u8)PadStatus.stickX); // Steering + _Hi |= 0x800; // Pedal connected flag _Hi |= (u32)((u16)(PadStatus.button | PAD_USE_ORIGIN) << 16); // Low bits are packed differently per mode - if (m_Mode == 0 || m_Mode == 5 || m_Mode == 6 || m_Mode == 7) + if (m_Mode == 0 || m_Mode == 5 || m_Mode == 7) { _Low = (u8)(PadStatus.analogB >> 4); // Top 4 bits _Low |= (u32)((u8)(PadStatus.analogA >> 4) << 4); // Top 4 bits @@ -192,6 +196,19 @@ bool CSIDevice_GCSteeringWheel::GetData(u32& _Hi, u32& _Low) _Low |= (u32)((u8)PadStatus.substickY << 16); // All 8 bits _Low |= (u32)((u8)PadStatus.substickX << 24); // All 8 bits } + else if (m_Mode == 6) + { + _Low = (u8)PadStatus.triggerRight; // All 8 bits + _Low |= (u32)((u8)PadStatus.triggerLeft << 8); // All 8 bits + + // The GC Steering Wheel appears to have combined pedals + // (both the Accelerate and Brake pedals are mapped to a single axis) + // We use the stickY axis for the pedals. + if (PadStatus.stickY < 128) + _Low |= (u32)((u8)(255 - ((PadStatus.stickY & 0x7f) * 2)) << 16); // All 8 bits (Brake) + if (PadStatus.stickY >= 128) + _Low |= (u32)((u8)((PadStatus.stickY & 0x7f) * 2) << 24); // All 8 bits (Accelerate) + } // Keep track of the special button combos (embedded in controller hardware... :( ) EButtonCombo tempCombo; diff --git a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h index 1814c8d6e4..2245765863 100644 --- a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h +++ b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.h @@ -33,6 +33,7 @@ private: CMD_RESET = 0x00, CMD_ORIGIN = 0x41, CMD_RECALIBRATE = 0x42, + CMD_MOTOR_OFF = 0xff, }; struct SOrigin diff --git a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp index 5f80b6f32b..b7ac3bf82e 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp @@ -145,7 +145,7 @@ LCleanup: void InitJoystick(IDirectInput8* const idi8, std::vector& devices, HWND hwnd) { std::list joysticks; - idi8->EnumDevices( DI8DEVCLASS_GAMECTRL, DIEnumDevicesCallback, (LPVOID)&joysticks, DIEDFL_FORCEFEEDBACK | DIEDFL_ATTACHEDONLY ); + idi8->EnumDevices( DI8DEVCLASS_GAMECTRL, DIEnumDevicesCallback, (LPVOID)&joysticks, DIEDFL_ATTACHEDONLY ); // this is used to number the joysticks // multiple joysticks with the same name shall get unique ids starting at 0 -- cgit v1.2.3 From 9af711b12c8248f3f806725644e93fdf9024bd37 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Mon, 31 Dec 2012 21:57:39 -0500 Subject: Always count GC wheel inputs too. --- Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp index 7783261da9..f69ccd2fc1 100644 --- a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp +++ b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp @@ -135,14 +135,12 @@ bool CSIDevice_GCSteeringWheel::GetData(u32& _Hi, u32& _Low) if(Movie::IsPlayingInput()) { Movie::PlayController(&PadStatus, ISIDevice::m_iDeviceNumber); - if(!Movie::IsUsingWiimote(0)) - Movie::InputUpdate(); + Movie::InputUpdate(); } else if(Movie::IsRecordingInput()) { Movie::RecordInput(&PadStatus, ISIDevice::m_iDeviceNumber); - if(!Movie::IsUsingWiimote(0)) - Movie::InputUpdate(); + Movie::InputUpdate(); } else Movie::CheckPadStatus(&PadStatus, ISIDevice::m_iDeviceNumber); -- cgit v1.2.3 From 3fd1b4ee83e02de1d9ed8d145ec21b88c16b523c Mon Sep 17 00:00:00 2001 From: skidau Date: Tue, 1 Jan 2013 15:13:18 +1100 Subject: Removed some debug testing code. --- Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp index f69ccd2fc1..ade19b758e 100644 --- a/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp +++ b/Source/Core/Core/Src/HW/SI_DeviceGCSteeringWheel.cpp @@ -265,8 +265,6 @@ void CSIDevice_GCSteeringWheel::SendCommand(u32 _Cmd, u8 _Poll) // get the correct pad number that should rumble locally when using netplay const u8 numPAD = NetPlay_GetPadNum(ISIDevice::m_iDeviceNumber); - NOTICE_LOG(COMMON, "Type: %d Strength: %d", uType, uStrength); - if (numPAD < 4) Pad::Motor(numPAD, uType, uStrength); -- cgit v1.2.3 From 3da05af30ab82639b5898f6ef46326bdd2f1dc7e Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Thu, 3 Jan 2013 10:35:07 -0600 Subject: Fix truncated names and descriptions in the game list on linux. --- Source/Core/Common/Src/ChunkFile.h | 9 ++++++++- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 17 +++++++++-------- Source/Core/DolphinWX/Src/ISOFile.cpp | 6 +++--- 3 files changed, 20 insertions(+), 12 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/ChunkFile.h b/Source/Core/Common/Src/ChunkFile.h index be8b49a3a3..e26536735d 100644 --- a/Source/Core/Common/Src/ChunkFile.h +++ b/Source/Core/Common/Src/ChunkFile.h @@ -155,7 +155,14 @@ public: Do(stringLen); switch (mode) { - case MODE_READ: x = (wchar_t*)*ptr; break; + case MODE_READ: + { + wchar_t* tmp = new wchar_t[stringLen / sizeof(wchar_t)]; + memcpy(tmp, *ptr, stringLen); + x = tmp; + delete[] tmp; + } + break; case MODE_WRITE: memcpy(*ptr, x.c_str(), stringLen); break; case MODE_MEASURE: break; case MODE_VERIFY: _dbg_assert_msg_(COMMON, x == (wchar_t*)*ptr, "Savestate verification failure: \"%ls\" != \"%ls\" (at %p).\n", x.c_str(), (wchar_t*)*ptr, ptr); break; diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index fbefb1c769..c67ee83ed3 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -464,14 +464,15 @@ void CGameListCtrl::InsertItemInReportView(long _Index) SelectedLanguage = 0; default: { - wxCSConv WindowsCP1252(wxFontMapper::GetEncodingName(wxFONTENCODING_CP1252)); - rISOFile.GetName(wstring_name, SelectedLanguage); - - name = wxString(rISOFile.GetName(SelectedLanguage).c_str(), WindowsCP1252); - m_gameList.append(StringFromFormat("%s (%c)\n", - rISOFile.GetName(SelectedLanguage).c_str(), (rISOFile.GetCountry() == DiscIO::IVolume::COUNTRY_USA)?'U':'E')); - description = wxString(company.size() ? company.c_str() : - rISOFile.GetDescription(SelectedLanguage).c_str(), WindowsCP1252); + wxCSConv WindowsCP1252(wxFontMapper::GetEncodingName(wxFONTENCODING_CP1252)); + rISOFile.GetName(wstring_name, SelectedLanguage); + + name = wxString(rISOFile.GetName(SelectedLanguage).c_str(), WindowsCP1252); + m_gameList.append(StringFromFormat("%s (%c)\n", + rISOFile.GetName(SelectedLanguage).c_str(), + (rISOFile.GetCountry() == DiscIO::IVolume::COUNTRY_USA) ? 'U' : 'E')); + description = wxString(company.size() ? company.c_str() : + rISOFile.GetDescription(SelectedLanguage).c_str(), WindowsCP1252); } break; } diff --git a/Source/Core/DolphinWX/Src/ISOFile.cpp b/Source/Core/DolphinWX/Src/ISOFile.cpp index a3d3761e62..a00ce2c496 100644 --- a/Source/Core/DolphinWX/Src/ISOFile.cpp +++ b/Source/Core/DolphinWX/Src/ISOFile.cpp @@ -140,8 +140,8 @@ GameListItem::GameListItem(const std::string& _rFileName) SplitPath(m_FileName, NULL, &FileName, NULL); int length = FileName.length(); wFileName.reserve(length+1); - for (int i = 0; i < length; ++i) - wFileName.push_back(FileName[i]); + for (int j = 0; j < length; ++j) + wFileName.push_back(FileName[j]); wFileName.push_back(0); } *i = wFileName; @@ -283,7 +283,7 @@ bool GameListItem::GetName(std::wstring& wName, int index) const // This function will only succeed for wii discs with banners or WADs // utilize the same array as for gc discs (-1= Japanese, 0 = English etc index++; - if ((index >=0) && (index < 10)) + if ((index >= 0) && (index < 10)) { if (m_wNames.size() > (size_t)index) { -- cgit v1.2.3 From 4f531fe1229b2f18b17feb82f12f0a75b0a781eb Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Thu, 3 Jan 2013 16:40:18 -0500 Subject: Remove unused progressive scan option from iso properties, and disable audio settings while a game is running. --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 6 ++++++ Source/Core/DolphinWX/Src/ISOProperties.cpp | 20 -------------------- Source/Core/DolphinWX/Src/ISOProperties.h | 2 +- 3 files changed, 7 insertions(+), 21 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 76508daf7c..8fad769b29 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -618,6 +618,12 @@ void CConfigMain::CreateGUIControls() FrequencySelection->Append(wxString::Format(_("%d Hz"), 48000)); FrequencySelection->Append(wxString::Format(_("%d Hz"), 32000)); + if (Core::GetState() != Core::CORE_UNINITIALIZED) + { + FrequencySelection->Disable(); + BackendSelection->Disable(); + } + // Create sizer and add items to dialog wxStaticBoxSizer *sbAudioSettings = new wxStaticBoxSizer(wxVERTICAL, AudioPage, _("Sound Settings")); sbAudioSettings->Add(DSPEngine, 0, wxALL | wxEXPAND, 5); diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp index 61139d985f..0b75b03d59 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.cpp +++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp @@ -328,7 +328,6 @@ void CISOProperties::CreateGUIControls(bool IsWad) DSPHLE = new wxCheckBox(m_GameConfig, ID_AUDIO_DSP_HLE, _("DSP HLE emulation (fast)"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); // Wii Console - EnableProgressiveScan = new wxCheckBox(m_GameConfig, ID_ENABLEPROGRESSIVESCAN, _("Enable Progressive Scan"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); EnableWideScreen = new wxCheckBox(m_GameConfig, ID_ENABLEWIDESCREEN, _("Enable WideScreen"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); DisableWiimoteSpeaker = new wxCheckBox(m_GameConfig, ID_DISABLEWIIMOTESPEAKER, _("Alternate Wiimote Timing"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); DisableWiimoteSpeaker->SetToolTip(_("Mutes the Wiimote speaker. Fixes random disconnections on real wiimotes. No effect on emulated wiimotes.")); @@ -378,18 +377,9 @@ void CISOProperties::CreateGUIControls(bool IsWad) if (!DiscIO::IsVolumeWiiDisc(OpenISO) && !DiscIO::IsVolumeWadFile(OpenISO)) { sbWiiOverrides->ShowItems(false); - EnableProgressiveScan->Hide(); EnableWideScreen->Hide(); DisableWiimoteSpeaker->Hide(); } - else - { - // Progressive Scan is not used by Dolphin itself, and changing it on a per-game - // basis would have the side-effect of changing the SysConf, making this setting - // rather useless. - EnableProgressiveScan->Disable(); - } - sbWiiOverrides->Add(EnableProgressiveScan, 0, wxLEFT, 5); sbWiiOverrides->Add(EnableWideScreen, 0, wxLEFT, 5); sbWiiOverrides->Add(DisableWiimoteSpeaker, 0, wxLEFT, 5); @@ -971,11 +961,6 @@ void CISOProperties::LoadGameConfig() else DSPHLE->Set3StateValue(wxCHK_UNDETERMINED); - if (GameIni.Get("Display", "ProgressiveScan", &bTemp)) - EnableProgressiveScan->Set3StateValue((wxCheckBoxState)bTemp); - else - EnableProgressiveScan->Set3StateValue(wxCHK_UNDETERMINED); - // ?? if (GameIni.Get("Wii", "Widescreen", &bTemp)) EnableWideScreen->Set3StateValue((wxCheckBoxState)bTemp); @@ -1071,11 +1056,6 @@ bool CISOProperties::SaveGameConfig() else GameIni.Set("Core", "DSPHLE", DSPHLE->Get3StateValue()); - if (EnableProgressiveScan->Get3StateValue() == wxCHK_UNDETERMINED) - GameIni.DeleteKey("Display", "ProgressiveScan"); - else - GameIni.Set("Display", "ProgressiveScan", EnableProgressiveScan->Get3StateValue()); - if (EnableWideScreen->Get3StateValue() == wxCHK_UNDETERMINED) GameIni.DeleteKey("Wii", "Widescreen"); else diff --git a/Source/Core/DolphinWX/Src/ISOProperties.h b/Source/Core/DolphinWX/Src/ISOProperties.h index da275136fe..9d71e675e2 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.h +++ b/Source/Core/DolphinWX/Src/ISOProperties.h @@ -72,7 +72,7 @@ private: wxCheckBox *CPUThread, *SkipIdle, *MMU, *MMUBAT, *TLBHack; wxCheckBox *VBeam, *FastDiscSpeed, *BlockMerging, *DSPHLE; // Wii - wxCheckBox *EnableProgressiveScan, *EnableWideScreen, *DisableWiimoteSpeaker; + wxCheckBox *EnableWideScreen, *DisableWiimoteSpeaker; // Video wxCheckBox *UseZTPSpeedupHack, *PHackEnable, *UseBBox; wxButton *PHSettings; -- cgit v1.2.3 From 12a606501c108de1c513f4aacf4e345fe077bd8d Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Thu, 3 Jan 2013 19:21:20 -0600 Subject: Fix the name and description truncation issue in a cleaner way. --- Source/Core/Common/Src/ChunkFile.h | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/ChunkFile.h b/Source/Core/Common/Src/ChunkFile.h index e26536735d..5a6f26e7c3 100644 --- a/Source/Core/Common/Src/ChunkFile.h +++ b/Source/Core/Common/Src/ChunkFile.h @@ -155,14 +155,7 @@ public: Do(stringLen); switch (mode) { - case MODE_READ: - { - wchar_t* tmp = new wchar_t[stringLen / sizeof(wchar_t)]; - memcpy(tmp, *ptr, stringLen); - x = tmp; - delete[] tmp; - } - break; + case MODE_READ: x.assign((wchar_t*)*ptr, stringLen / sizeof(wchar_t)); break; case MODE_WRITE: memcpy(*ptr, x.c_str(), stringLen); break; case MODE_MEASURE: break; case MODE_VERIFY: _dbg_assert_msg_(COMMON, x == (wchar_t*)*ptr, "Savestate verification failure: \"%ls\" != \"%ls\" (at %p).\n", x.c_str(), (wchar_t*)*ptr, ptr); break; -- cgit v1.2.3 From 9b51c99c6ba5f1b5f256032f6750540d7d8b2b0e Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Thu, 3 Jan 2013 19:49:19 -0600 Subject: Make sure the null character is not included in the string. --- Source/Core/Common/Src/ChunkFile.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/ChunkFile.h b/Source/Core/Common/Src/ChunkFile.h index 5a6f26e7c3..38e1b2176c 100644 --- a/Source/Core/Common/Src/ChunkFile.h +++ b/Source/Core/Common/Src/ChunkFile.h @@ -155,7 +155,7 @@ public: Do(stringLen); switch (mode) { - case MODE_READ: x.assign((wchar_t*)*ptr, stringLen / sizeof(wchar_t)); break; + case MODE_READ: x.assign((wchar_t*)*ptr, (stringLen / sizeof(wchar_t)) - 1); break; case MODE_WRITE: memcpy(*ptr, x.c_str(), stringLen); break; case MODE_MEASURE: break; case MODE_VERIFY: _dbg_assert_msg_(COMMON, x == (wchar_t*)*ptr, "Savestate verification failure: \"%ls\" != \"%ls\" (at %p).\n", x.c_str(), (wchar_t*)*ptr, ptr); break; -- cgit v1.2.3 From 1c9c6052d5fb3264a3a687b1d6fb87b89f229e7e Mon Sep 17 00:00:00 2001 From: skidau Date: Sat, 5 Jan 2013 12:32:47 +1100 Subject: Corrected a state bug where newly loaded dols did not have their patches applied. --- Source/Core/Core/Src/HLE/HLE_Misc.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.cpp b/Source/Core/Core/Src/HLE/HLE_Misc.cpp index 4a17ffd748..da39a71372 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.cpp +++ b/Source/Core/Core/Src/HLE/HLE_Misc.cpp @@ -40,7 +40,6 @@ namespace HLE_Misc std::string args; u32 argsPtr; u32 bootType; -u16 IOSv; // Helper to quickly read the floating point value at a memory location. inline float F(u32 addr) @@ -312,6 +311,7 @@ void ExecuteDOL(u8* dolFile, u32 fileSize) // Scan for common HLE functions if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableDebugging) { + g_symbolDB.Clear(); PPCAnalyst::FindFunctions(0x80004000, 0x811fffff, &g_symbolDB); SignatureDB db; if (db.Load((File::GetSysDirectory() + TOTALDB).c_str())) @@ -325,9 +325,15 @@ void ExecuteDOL(u8* dolFile, u32 fileSize) PowerPC::ppcState.iCache.Reset(); static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); - for (unsigned int i = 0; i < 4; i++) + bool* wiiMoteConnected = new bool[s_Usb->m_WiiMotes.size()]; + for(unsigned int i = 0; i < s_Usb->m_WiiMotes.size(); i++) + wiiMoteConnected[i] = s_Usb->m_WiiMotes[i].IsConnected(); + + WII_IPC_HLE_Interface::Reset(true); + WII_IPC_HLE_Interface::Init(); + for (unsigned int i = 0; i < s_Usb->m_WiiMotes.size(); i++) { - if (s_Usb->m_WiiMotes[i].IsConnected()) + if (wiiMoteConnected[i]) { s_Usb->m_WiiMotes[i].Activate(false); s_Usb->m_WiiMotes[i].Activate(true); @@ -338,6 +344,8 @@ void ExecuteDOL(u8* dolFile, u32 fileSize) } } + delete[] wiiMoteConnected; + if (argsPtr) { u32 args_base = Memory::Read_U32(0x800000f4); @@ -475,11 +483,14 @@ void OSGetResetCode() NPC = LR; } -void OSBootDol() +u16 GetIOSVersion() { - IOSv = Memory::Read_U16(0x00003140); + return Memory::Read_U16(0x00003140); +} - if (IOSv >= 30) +void OSBootDol() +{ + if (GetIOSVersion() >= 30) { bootType = GPR(4); -- cgit v1.2.3 From c61b0c7fbaf2cb1f0ce80e825022f16d26a736c3 Mon Sep 17 00:00:00 2001 From: skidau Date: Sat, 5 Jan 2013 12:56:35 +1100 Subject: Build fix --- Source/Core/Core/Src/HLE/HLE.cpp | 8 ++++---- Source/Core/Core/Src/HLE/HLE_Misc.cpp | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HLE/HLE.cpp b/Source/Core/Core/Src/HLE/HLE.cpp index 457870ba1d..ae25060c64 100644 --- a/Source/Core/Core/Src/HLE/HLE.cpp +++ b/Source/Core/Core/Src/HLE/HLE.cpp @@ -58,10 +58,10 @@ static const SPatch OSPatches[] = // speedup //{ "OSProtectRange", HLE_Misc::UnimplementedFunctionFalse, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, //{ "THPPlayerGetState", HLE_Misc:THPPlayerGetState, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, - //{ "memcpy", HLE_Misc::memcpy, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, - //{ "memcmp", HLE_Misc::memcmp, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, - //{ "memset", HLE_Misc::memset, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, - //{ "memmove", HLE_Misc::memmove, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, + //{ "memcpy", HLE_Misc::gc_memcpy, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, + //{ "memcmp", HLE_Misc::gc_memcmp, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, + //{ "memset", HLE_Misc::gc_memset, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, + //{ "memmove", HLE_Misc::gc_memmove, HLE_HOOK_REPLACE, HLE_TYPE_MEMORY }, //{ "__div2i", HLE_Misc::div2i, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // Slower? //{ "__div2u", HLE_Misc::div2u, HLE_HOOK_REPLACE, HLE_TYPE_GENERIC }, // Slower? diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.cpp b/Source/Core/Core/Src/HLE/HLE_Misc.cpp index da39a71372..e6d1fc5611 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.cpp +++ b/Source/Core/Core/Src/HLE/HLE_Misc.cpp @@ -358,7 +358,7 @@ void ExecuteDOL(u8* dolFile, u32 fileSize) Memory::Write_U32(num_args, args_base + ptr_to_num_args); Memory::Write_U32(0x14, hi_ptr); - for (int i = 0; i < args.length(); i++) + for (unsigned int i = 0; i < args.length(); i++) Memory::WriteUnchecked_U8(args[i], new_args_ptr+i); } @@ -412,39 +412,39 @@ u32 GetDolFileSize(std::string dol) return (u32)pFileSystem->GetFileSize(dolFile.c_str()); } -void memmove() +void gc_memmove() { u32 dest = GPR(3); u32 src = GPR(4); u32 count = GPR(5); - std::memmove((u8*)(Memory::base + dest), (u8*)(Memory::base + src), count); + memmove((u8*)(Memory::base + dest), (u8*)(Memory::base + src), count); NPC = LR; } -void memcpy() +void gc_memcpy() { u32 dest = GPR(3); u32 src = GPR(4); u32 count = GPR(5); - std::memcpy((u8*)(Memory::base + dest), (u8*)(Memory::base + src), count); + memcpy((u8*)(Memory::base + dest), (u8*)(Memory::base + src), count); NPC = LR; } -void memset() +void gc_memset() { u32 dest = GPR(3); u32 ch = GPR(4); u32 count = GPR(5); - std::memset((u8*)(Memory::base + dest), ch, count); + memset((u8*)(Memory::base + dest), ch, count); NPC = LR; } -void memcmp() +void gc_memcmp() { u32 dest = GPR(3); u32 src = GPR(4); u32 count = GPR(5); - GPR(3) = std::memcmp((u8*)(Memory::base + dest), (u8*)(Memory::base + src), count); + GPR(3) = memcmp((u8*)(Memory::base + dest), (u8*)(Memory::base + src), count); NPC = LR; } -- cgit v1.2.3 From 1d691d7de4d640c998daa060201740c63d11d22a Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 6 Jan 2013 14:36:38 +1100 Subject: Fixed SSBB from starting at the mini-games screen. --- Source/Core/Core/Src/HLE/HLE_Misc.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HLE/HLE_Misc.cpp b/Source/Core/Core/Src/HLE/HLE_Misc.cpp index e6d1fc5611..162cc4698d 100644 --- a/Source/Core/Core/Src/HLE/HLE_Misc.cpp +++ b/Source/Core/Core/Src/HLE/HLE_Misc.cpp @@ -471,7 +471,8 @@ void div2u() void OSGetResetCode() { u32 resetCode = Memory::Read_U32(0xCC003024); - if (resetCode != 0) + + if ((resetCode & 0x1fffffff) != 0) { GPR(3) = resetCode | 0x80000000; } -- cgit v1.2.3 From 7a957134968963a1c53f635afbb91c53b15d9e2b Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 5 Jan 2013 22:45:32 -0600 Subject: Fix some warnings. Changes suggested by nerzhultheking. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index 47737326f4..c5ea6fcb06 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -253,15 +253,15 @@ void DoState(PointerWrap &p) u32 i; for (i=0; i Date: Mon, 7 Jan 2013 12:16:04 +1100 Subject: OpenAL for Windows initial commit --- Source/Core/AudioCommon/AudioCommon.vcxproj | 48 ++++++++++++++++------------- Source/Core/Common/Src/Common.h | 3 +- 2 files changed, 28 insertions(+), 23 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj b/Source/Core/AudioCommon/AudioCommon.vcxproj index 0c5f256c19..4bcee7559b 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj @@ -114,7 +114,10 @@ true - + + OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win32;%(AdditionalLibraryDirectories) + @@ -123,7 +126,10 @@ true - + + OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win64;%(AdditionalLibraryDirectories) + @@ -134,7 +140,10 @@ true true - + + OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win32;%(AdditionalLibraryDirectories) + @@ -145,7 +154,10 @@ true true - + + OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win32;%(AdditionalLibraryDirectories) + @@ -156,7 +168,10 @@ true true - + + OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win64;%(AdditionalLibraryDirectories) + @@ -167,17 +182,13 @@ true true - + + OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win64;%(AdditionalLibraryDirectories) + - - true - true - true - true - true - true - + @@ -189,14 +200,7 @@ - - true - true - true - true - true - true - + diff --git a/Source/Core/Common/Src/Common.h b/Source/Core/Common/Src/Common.h index 884a1e6c16..c3cab37dd8 100644 --- a/Source/Core/Common/Src/Common.h +++ b/Source/Core/Common/Src/Common.h @@ -81,8 +81,9 @@ private: #define GC_ALIGNED16_DECL(x) __declspec(align(16)) x #define GC_ALIGNED64_DECL(x) __declspec(align(64)) x -// Since it is always around on windows +// Since they are always around on windows #define HAVE_WX 1 + #define HAVE_OPENAL 1 #define HAVE_PORTAUDIO 1 -- cgit v1.2.3 From 5240e75be20791d5226e7ac589a09a102755edf2 Mon Sep 17 00:00:00 2001 From: skidau Date: Mon, 7 Jan 2013 12:25:18 +1100 Subject: Fixed the infinite rumble problem caused by r4d6056f14625. --- Source/Core/Core/Src/HW/GCPad.cpp | 8 ++++++-- Source/Core/Core/Src/HW/GCPadEmu.cpp | 15 +++++++++++++-- Source/Core/Core/Src/HW/GCPadEmu.h | 1 + .../Src/ControllerInterface/DInput/DInputJoystick.cpp | 6 +----- 4 files changed, 21 insertions(+), 9 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/GCPad.cpp b/Source/Core/Core/Src/HW/GCPad.cpp index 61b666af12..68ba3ab88a 100644 --- a/Source/Core/Core/Src/HW/GCPad.cpp +++ b/Source/Core/Core/Src/HW/GCPad.cpp @@ -105,6 +105,10 @@ void Rumble(u8 _numPAD, unsigned int _uType, unsigned int _uStrength) { ((GCPad*)g_plugin.controllers[ _numPAD ])->SetOutput(255); } + else + { + ((GCPad*)g_plugin.controllers[ _numPAD ])->SetOutput(0); + } } } @@ -123,9 +127,9 @@ void Motor(u8 _numPAD, unsigned int _uType, unsigned int _uStrength) { // TODO: this has potential to not stop rumble if user is messing with GUI at the perfect time // set rumble - if (_uType == 06) + if (_uType == 6) { - ((GCPad*)g_plugin.controllers[ _numPAD ])->SetOutput(_uStrength); + ((GCPad*)g_plugin.controllers[ _numPAD ])->SetMotor(_uStrength); } } } diff --git a/Source/Core/Core/Src/HW/GCPadEmu.cpp b/Source/Core/Core/Src/HW/GCPadEmu.cpp index 5233ed2877..a2c0c2afa9 100644 --- a/Source/Core/Core/Src/HW/GCPadEmu.cpp +++ b/Source/Core/Core/Src/HW/GCPadEmu.cpp @@ -130,15 +130,26 @@ void GCPad::GetInput(SPADStatus* const pad) } } -void GCPad::SetOutput(const u8 on) +void GCPad::SetMotor(const u8 on) { + float state = (float)on / 255; + float force = abs(state - 0.5) * 2; + if (state < 0.5) + force = -force; + // only rumble if window has focus or background input is enabled if (Host_RendererHasFocus() || m_options[0].settings[0]->value) - m_rumble->controls[0]->control_ref->State((float)on / 255); + m_rumble->controls[0]->control_ref->State(force); else m_rumble->controls[0]->control_ref->State(0); } +void GCPad::SetOutput(const u8 on) +{ + // only rumble if window has focus or background input is enabled + m_rumble->controls[0]->control_ref->State(on && (Host_RendererHasFocus() || m_options[0].settings[0]->value)); +} + void GCPad::LoadDefaults(const ControllerInterface& ciface) { #define set_control(group, num, str) (group)->controls[num]->control_ref->expression = (str) diff --git a/Source/Core/Core/Src/HW/GCPadEmu.h b/Source/Core/Core/Src/HW/GCPadEmu.h index cf0940245e..e57e6b0b68 100644 --- a/Source/Core/Core/Src/HW/GCPadEmu.h +++ b/Source/Core/Core/Src/HW/GCPadEmu.h @@ -29,6 +29,7 @@ public: GCPad(const unsigned int index); void GetInput(SPADStatus* const pad); void SetOutput(const u8 on); + void SetMotor(const u8 on); bool GetMicButton() const; diff --git a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp index b7ac3bf82e..af6ee7e77c 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp @@ -535,11 +535,7 @@ ControlState Joystick::Hat::GetState() const void Joystick::ForceConstant::SetState(const ControlState state) { - float force = abs(state - 0.5) * 2; - if (state < 0.5) - force = -force; - - const LONG new_val = LONG(10000 * force); + const LONG new_val = LONG(10000 * state); LONG &val = params.lMagnitude; if (val != new_val) -- cgit v1.2.3 From c8c78e0aa9c7ec1ef738ca064daad5903a9e7b48 Mon Sep 17 00:00:00 2001 From: skidau Date: Mon, 7 Jan 2013 15:37:08 +1100 Subject: Implemented correct audio timing. Fixes issue 5493. --- Source/Core/AudioCommon/Src/OpenALStream.cpp | 21 +++++++++++++-------- Source/Core/AudioCommon/Src/OpenALStream.h | 1 - 2 files changed, 13 insertions(+), 9 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 2abd357782..4cc64a17de 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -19,6 +19,8 @@ #include "aldlist.h" #include "OpenALStream.h" +#include "../../Core/Src/HW/SystemTimers.h" +#include "../../Core/Src/HW/AudioInterface.h" #if defined HAVE_OPENAL && HAVE_OPENAL @@ -158,9 +160,16 @@ void OpenALStream::SoundLoop() iBuffersFilled = 0; } - unsigned int numSamples = m_mixer->GetNumSamples(); + // num_samples_to_render in this update - depends on SystemTimers::AUDIO_DMA_PERIOD. + const u32 stereo_16_bit_size = 4; + const u32 dma_length = 32; + const u64 audio_dma_period = SystemTimers::GetTicksPerSecond() / (AudioInterface::GetAIDSampleRate() * stereo_16_bit_size / dma_length); + const u64 ais_samples_per_second = 48000 * stereo_16_bit_size; + const u64 num_samples_to_render = (audio_dma_period * ais_samples_per_second) / SystemTimers::GetTicksPerSecond(); - if (iBuffersProcessed && (numSamples >= OAL_THRESHOLD)) + unsigned int numSamples = (unsigned int)num_samples_to_render; + + if (iBuffersProcessed) { numSamples = (numSamples > OAL_MAX_SAMPLES) ? OAL_MAX_SAMPLES : numSamples; // Remove the Buffer from the Queue. (uiBuffer contains the Buffer ID for the unqueued Buffer) @@ -175,14 +184,10 @@ void OpenALStream::SoundLoop() if (iBuffersFilled == OAL_NUM_BUFFERS) alSourcePlay(uiSource); } - else if (numSamples >= OAL_THRESHOLD) + else { - ALint state = 0; - alGetSourcei(uiSource, AL_SOURCE_STATE, &state); - if (state == AL_STOPPED) - alSourcePlay(uiSource); + soundSyncEvent.Wait(); } - soundSyncEvent.Wait(); } } diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h index 2c0d75b510..a9c1f51399 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.h +++ b/Source/Core/AudioCommon/Src/OpenALStream.h @@ -38,7 +38,6 @@ #define SFX_MAX_SOURCE 1 #define OAL_NUM_BUFFERS 16 #define OAL_MAX_SAMPLES 512 // AyuanX: Don't make it too large, as larger buffer means longer delay -#define OAL_THRESHOLD 128 // Some games are quite sensitive to delay #endif class OpenALStream: public SoundStream -- cgit v1.2.3 From d0301ca89d318d8d6e3e7fde9c4b60e470e184e4 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Mon, 7 Jan 2013 13:47:34 -0600 Subject: Revert 30dd9c2 e9d00bf db5f4c8 and bff0fae --- Source/Core/Common/Src/MathUtil.h | 2 - Source/Core/VideoCommon/Src/BPFunctions.cpp | 2 +- .../Plugin_VideoOGL/Src/FramebufferManager.cpp | 85 ++----- .../Plugin_VideoOGL/Src/NativeVertexFormat.cpp | 37 +-- Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp | 232 +++++++---------- Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h | 22 +- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 274 ++++++--------------- .../Plugins/Plugin_VideoOGL/Src/TextureCache.cpp | 93 +------ Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h | 3 - .../Plugin_VideoOGL/Src/TextureConverter.cpp | 112 ++------- .../Plugins/Plugin_VideoOGL/Src/VertexManager.cpp | 3 + .../Plugin_VideoSoftware/Src/SWRenderer.cpp | 5 +- 12 files changed, 243 insertions(+), 627 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/MathUtil.h b/Source/Core/Common/Src/MathUtil.h index c5f613ada1..a6290ff602 100644 --- a/Source/Core/Common/Src/MathUtil.h +++ b/Source/Core/Common/Src/MathUtil.h @@ -117,8 +117,6 @@ struct Rectangle Rectangle(T theLeft, T theTop, T theRight, T theBottom) : left(theLeft), top(theTop), right(theRight), bottom(theBottom) { } - - bool operator==(const Rectangle& r) { return left==r.left && top==r.top && right==r.right && bottom==r.bottom; } T GetWidth() const { return abs(right - left); } T GetHeight() const { return abs(bottom - top); } diff --git a/Source/Core/VideoCommon/Src/BPFunctions.cpp b/Source/Core/VideoCommon/Src/BPFunctions.cpp index b9a76ba7b6..cddeae3000 100644 --- a/Source/Core/VideoCommon/Src/BPFunctions.cpp +++ b/Source/Core/VideoCommon/Src/BPFunctions.cpp @@ -236,7 +236,7 @@ bool GetConfig(const int &type) case CONFIG_DISABLEFOG: return g_ActiveConfig.bDisableFog; case CONFIG_SHOWEFBREGIONS: - return g_ActiveConfig.bShowEFBCopyRegions; + return false; default: PanicAlert("GetConfig Error: Unknown Config Type!"); return false; diff --git a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp index e7fb7ad7b7..0e37c3adb6 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp @@ -17,7 +17,6 @@ #include "Globals.h" #include "FramebufferManager.h" -#include "VertexShaderGen.h" #include "TextureConverter.h" #include "Render.h" @@ -28,11 +27,6 @@ namespace OGL extern bool s_bHaveFramebufferBlit; // comes from Render.cpp. ugly. -static GLuint s_VBO = 0; -static GLuint s_VAO = 0; -static MathUtil::Rectangle s_cached_sourcerc; -static MathUtil::Rectangle s_cached_drawrc; - int FramebufferManager::m_targetWidth; int FramebufferManager::m_targetHeight; int FramebufferManager::m_msaaSamples; @@ -59,15 +53,6 @@ FramebufferManager::FramebufferManager(int targetWidth, int targetHeight, int ms m_resolvedDepthTexture = 0; m_xfbFramebuffer = 0; - s_cached_sourcerc.bottom = -1; - s_cached_sourcerc.left = -1; - s_cached_sourcerc.right = -1; - s_cached_sourcerc.top = -1; - s_cached_drawrc.bottom = -1; - s_cached_drawrc.left = -1; - s_cached_drawrc.right = -1; - s_cached_drawrc.top = -1; - m_targetWidth = targetWidth; m_targetHeight = targetHeight; @@ -184,28 +169,7 @@ FramebufferManager::FramebufferManager(int targetWidth, int targetHeight, int ms // Create XFB framebuffer; targets will be created elsewhere. glGenFramebuffersEXT(1, &m_xfbFramebuffer); - - // Generate VBO & VAO - and initialize the VAO for "Draw" - glGenBuffers(1, &s_VBO); - glGenVertexArrays(1, &s_VAO); - glBindBuffer(GL_ARRAY_BUFFER, s_VBO); - glBindVertexArray(s_VAO); - - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(2, GL_FLOAT, 6*sizeof(GLfloat), NULL); - - glClientActiveTexture(GL_TEXTURE0); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, 6*sizeof(GLfloat), (GLfloat*)NULL+2); - - glClientActiveTexture(GL_TEXTURE1); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, 6*sizeof(GLfloat), (GLfloat*)NULL+4); - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); - + // EFB framebuffer is currently bound, make sure to clear its alpha value to 1.f glViewport(0, 0, m_targetWidth, m_targetHeight); glScissor(0, 0, m_targetWidth, m_targetHeight); @@ -217,8 +181,6 @@ FramebufferManager::FramebufferManager(int targetWidth, int targetHeight, int ms FramebufferManager::~FramebufferManager() { glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); - glDeleteBuffers(1, &s_VBO); - glDeleteVertexArrays(1, &s_VAO); GLuint glObj[3]; @@ -343,35 +305,24 @@ void XFBSource::Draw(const MathUtil::Rectangle &sourcerc, glBindTexture(GL_TEXTURE_RECTANGLE_ARB, texture); - if(!(s_cached_sourcerc == sourcerc) || !(s_cached_drawrc == drawrc)) { - GLfloat vertices[] = { - drawrc.left, drawrc.bottom, - sourcerc.left, sourcerc.bottom, - 0.0f, 0.0f, - drawrc.left, drawrc.top, - sourcerc.left, sourcerc.top, - 0.0f, 1.0f, - drawrc.right, drawrc.top, - sourcerc.right, sourcerc.top, - 1.0f, 1.0f, - drawrc.right, drawrc.bottom, - sourcerc.right, sourcerc.bottom, - 1.0f, 0.0f - }; - glBindBuffer(GL_ARRAY_BUFFER, s_VBO); - glBufferData(GL_ARRAY_BUFFER, 2*4*3*sizeof(GLfloat), vertices, GL_STREAM_DRAW); - - s_cached_sourcerc = sourcerc; - s_cached_drawrc = drawrc; - } + glBegin(GL_QUADS); + glTexCoord2f(sourcerc.left, sourcerc.bottom); + glMultiTexCoord2fARB(GL_TEXTURE1, 0, 0); + glVertex2f(drawrc.left, drawrc.bottom); + + glTexCoord2f(sourcerc.left, sourcerc.top); + glMultiTexCoord2fARB(GL_TEXTURE1, 0, 1); + glVertex2f(drawrc.left, drawrc.top); + + glTexCoord2f(sourcerc.right, sourcerc.top); + glMultiTexCoord2fARB(GL_TEXTURE1, 1, 1); + glVertex2f(drawrc.right, drawrc.top); + + glTexCoord2f(sourcerc.right, sourcerc.bottom); + glMultiTexCoord2fARB(GL_TEXTURE1, 1, 0); + glVertex2f(drawrc.right, drawrc.bottom); + glEnd(); - glBindVertexArray(s_VAO); - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); - GL_REPORT_ERRORD(); } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/NativeVertexFormat.cpp b/Source/Plugins/Plugin_VideoOGL/Src/NativeVertexFormat.cpp index a435be0dca..ae20649433 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/NativeVertexFormat.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/NativeVertexFormat.cpp @@ -27,9 +27,8 @@ #define COMPILED_CODE_SIZE 4096 -// TODO: Use this again for performance, but without VAO we never know exactly the last configuration -static u32 s_prevcomponents; // previous state set - +// TODO: this guy is never initialized +u32 s_prevcomponents; // previous state set /* #ifdef _WIN32 #ifdef _M_IX86 @@ -65,6 +64,7 @@ public: virtual void Initialize(const PortableVertexDeclaration &_vtx_decl); virtual void SetupVertexPointers(); + virtual void EnableComponents(u32 components); }; namespace OGL @@ -187,7 +187,6 @@ void GLVertexFormat::SetupVertexPointers() { #ifdef USE_JIT ((void (*)())(void*)m_compiledCode)(); #else - glVertexPointer(3, GL_FLOAT, vtx_decl.stride, VertexManager::s_pBaseBufferPointer); if (vtx_decl.num_normals >= 1) { glNormalPointer(VarToGL(vtx_decl.normal_gl_type), vtx_decl.stride, (void *)(VertexManager::s_pBaseBufferPointer + vtx_decl.normal_offset[0])); @@ -220,32 +219,34 @@ void GLVertexFormat::SetupVertexPointers() { glVertexAttribPointer(SHADER_POSMTX_ATTRIB, 4, GL_UNSIGNED_BYTE, GL_FALSE, vtx_decl.stride, (void *)(VertexManager::s_pBaseBufferPointer + vtx_decl.posmtx_offset)); } #endif +} - if (s_prevcomponents != m_components) +void GLVertexFormat::EnableComponents(u32 components) +{ + if (s_prevcomponents != components) { - // vertices - glEnableClientState(GL_VERTEX_ARRAY); + VertexManager::Flush(); // matrices - if ((m_components & VB_HAS_POSMTXIDX) != (s_prevcomponents & VB_HAS_POSMTXIDX)) + if ((components & VB_HAS_POSMTXIDX) != (s_prevcomponents & VB_HAS_POSMTXIDX)) { - if (m_components & VB_HAS_POSMTXIDX) + if (components & VB_HAS_POSMTXIDX) glEnableVertexAttribArray(SHADER_POSMTX_ATTRIB); else glDisableVertexAttribArray(SHADER_POSMTX_ATTRIB); } // normals - if ((m_components & VB_HAS_NRM0) != (s_prevcomponents & VB_HAS_NRM0)) + if ((components & VB_HAS_NRM0) != (s_prevcomponents & VB_HAS_NRM0)) { - if (m_components & VB_HAS_NRM0) + if (components & VB_HAS_NRM0) glEnableClientState(GL_NORMAL_ARRAY); else glDisableClientState(GL_NORMAL_ARRAY); } - if ((m_components & VB_HAS_NRM1) != (s_prevcomponents & VB_HAS_NRM1)) + if ((components & VB_HAS_NRM1) != (s_prevcomponents & VB_HAS_NRM1)) { - if (m_components & VB_HAS_NRM1) { + if (components & VB_HAS_NRM1) { glEnableVertexAttribArray(SHADER_NORM1_ATTRIB); glEnableVertexAttribArray(SHADER_NORM2_ATTRIB); } @@ -258,9 +259,9 @@ void GLVertexFormat::SetupVertexPointers() { // color for (int i = 0; i < 2; ++i) { - if ((m_components & (VB_HAS_COL0 << i)) != (s_prevcomponents & (VB_HAS_COL0 << i))) + if ((components & (VB_HAS_COL0 << i)) != (s_prevcomponents & (VB_HAS_COL0 << i))) { - if (m_components & (VB_HAS_COL0 << i)) + if (components & (VB_HAS_COL0 << i)) glEnableClientState(i ? GL_SECONDARY_COLOR_ARRAY : GL_COLOR_ARRAY); else glDisableClientState(i ? GL_SECONDARY_COLOR_ARRAY : GL_COLOR_ARRAY); @@ -270,16 +271,16 @@ void GLVertexFormat::SetupVertexPointers() { // tex for (int i = 0; i < 8; ++i) { - if ((m_components & (VB_HAS_UV0 << i)) != (s_prevcomponents & (VB_HAS_UV0 << i))) + if ((components & (VB_HAS_UV0 << i)) != (s_prevcomponents & (VB_HAS_UV0 << i))) { glClientActiveTexture(GL_TEXTURE0 + i); - if (m_components & (VB_HAS_UV0 << i)) + if (components & (VB_HAS_UV0 << i)) glEnableClientState(GL_TEXTURE_COORD_ARRAY); else glDisableClientState(GL_TEXTURE_COORD_ARRAY); } } - s_prevcomponents = m_components; + s_prevcomponents = components; } } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp b/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp index 95c99ac78c..da53fae6d5 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp @@ -17,16 +17,12 @@ #include "GLUtil.h" +#include + #include "RasterFont.h" // globals - -static const u32 char_width = 8; -static const u32 char_height = 13; -static const u32 char_offset = 32; -static const u32 char_count = 95; - -const u8 rasters[char_count][char_height] = { +const GLubyte rasters[][13] = { {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36}, @@ -124,160 +120,104 @@ const u8 rasters[char_count][char_height] = { {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x8f, 0xf1, 0x60, 0x00, 0x00, 0x00} }; -static const char *s_vertex_shader = - "attribute vec2 vertexPosition;\n" - "attribute vec2 texturePosition;\n" - "varying vec2 tpos;\n" - "void main(void) {\n" - " gl_Position = vec4(vertexPosition,0,1);\n" - " tpos = texturePosition;\n" - "}\n"; - -static const char *s_fragment_shader = - "#extension GL_ARB_texture_rectangle : enable\n" - "uniform sampler2DRect textureSampler;\n" - "uniform vec4 color;\n" - "varying vec2 tpos;\n" - "void main(void) {\n" - " gl_FragColor = texture2DRect(textureSampler,tpos) * color;\n" - "}\n"; - RasterFont::RasterFont() { - // generate the texture - glGenTextures(1, &texture); - glBindTexture(GL_TEXTURE_RECTANGLE, texture); - u32* texture_data = new u32[char_width*char_count*char_height]; - for(u32 y=0; y= TEMP_BUFFER_SIZE) + length = TEMP_BUFFER_SIZE - 1; + + // Sanitize string to avoid GL errors. + char *s2 = temp_buffer; + memcpy(s2, s, length); + s2[length] = 0; + for (int i = 0; i < length; i++) { + if (s2[i] < 32 || s2[i] > 126) + s2[i] = '!'; + } + + // go to the right spot + glRasterPos3d(x, y, z); + GL_REPORT_ERRORD(); + + glPushAttrib (GL_LIST_BIT); + glListBase(fontOffset); + glCallLists((GLsizei)strlen(s2), GL_UNSIGNED_BYTE, (GLubyte *) s2); + GL_REPORT_ERRORD(); + glPopAttrib(); + GL_REPORT_ERRORD(); +} + +void RasterFont::printCenteredString(const char *s, double y, int screen_width, double z) +{ + int length = (int)strlen(s); + int x = (int)(screen_width/2.0 - (length/2.0)*char_width); + printString(s, x, y, z); +} + +void RasterFont::printMultilineText(const char *text, double start_x, double start_y, double z, int bbWidth, int bbHeight) +{ + double x = start_x; + double y = start_y; + char temp[1024]; + char *t = temp; + while (*text) + { + if (*text == '\n') + { + *t = 0; + printString(temp, x, y, z); + y -= char_height * 2.0f / bbHeight; x = start_x; - y -= delta_y + border_y; - continue; + t = temp; } - - // do not print spaces, they can be skipped easyly - if(c == ' ') { - x += delta_x + border_x; - continue; + else if (*text == '\r') + { + t = temp; } - - if(c < char_offset || c >= char_count+char_offset) continue; - - vertices[usage++] = x; - vertices[usage++] = y; - vertices[usage++] = (c-char_offset)*char_width; - vertices[usage++] = 0; - - vertices[usage++] = x+delta_x; - vertices[usage++] = y; - vertices[usage++] = (c-char_offset+1)*char_width; - vertices[usage++] = 0; - - vertices[usage++] = x+delta_x; - vertices[usage++] = y+delta_y; - vertices[usage++] = (c-char_offset+1)*char_width; - vertices[usage++] = char_height; - - vertices[usage++] = x; - vertices[usage++] = y; - vertices[usage++] = (c-char_offset)*char_width; - vertices[usage++] = 0; - - vertices[usage++] = x+delta_x; - vertices[usage++] = y+delta_y; - vertices[usage++] = (c-char_offset+1)*char_width; - vertices[usage++] = char_height; - - vertices[usage++] = x; - vertices[usage++] = y+delta_y; - vertices[usage++] = (c-char_offset)*char_width; - vertices[usage++] = char_height; - - x += delta_x + border_x; + else if (*text == '\t') + { + //todo: add tabs every something like 4*char_width + *t = 0; + int cpos = (int)strlen(temp); + int newpos = (cpos + 4) & (~3); + printString(temp, x, y, z); + x = start_x + (char_width*newpos) * 2.0f / bbWidth; + t = temp; + *t++ = ' '; + } + else + *t++ = *text; + + text++; } - glUnmapBuffer(GL_ARRAY_BUFFER); - glUseProgram(shader_program); - - if(color != cached_color) { - glUniform4f(uniform_color_id, ((color>>16)&0xff)/255.f,((color>>8)&0xff)/255.f,((color>>0)&0xff)/255.f,((color>>24)&0xff)/255.f); - cached_color = color; + // ???? + if (t != text) + { + *t = 0; + printString(temp, x, y, z); } - - glActiveTexture(GL_TEXTURE0); - glBindTexture(GL_TEXTURE_RECTANGLE, texture); - glDrawArrays(GL_TRIANGLES, 0, usage/4); - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); - - glUseProgram(0); } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h b/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h index fcbfdfff61..3ebc684dd0 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h @@ -23,16 +23,20 @@ public: RasterFont(); ~RasterFont(void); static int debug; - - void printMultilineText(const char *text, double x, double y, double z, int bbWidth, int bbHeight, u32 color); + + // some useful constants + enum {char_width = 10}; + enum {char_height = 15}; + + // and the happy helper functions + void printString(const char *s, double x, double y, double z=0.0); + void printCenteredString(const char *s, double y, int screen_width, double z=0.0); + + void printMultilineText(const char *text, double x, double y, double z, int bbWidth, int bbHeight); private: - - u32 VBO; - u32 VAO; - u32 texture; - u32 shader_program; - u32 uniform_color_id; - u32 cached_color; + int fontOffset; + char *temp_buffer; + enum {TEMP_BUFFER_SIZE = 64 * 1024}; }; #endif // _RASTERFONT_H_ diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index a2d0a94ee3..e2fff07b10 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -107,14 +107,10 @@ namespace OGL // Declarations and definitions // ---------------------------- -static int s_fps = 0; -static GLuint s_ShowEFBCopyRegions_VBO = 0; -static GLuint s_ShowEFBCopyRegions_VAO = 0; -static GLuint s_Swap_VBO = 0; -static GLuint s_Swap_VAO[2]; -static TargetRectangle s_cached_targetRc; +int s_fps=0; -static RasterFont* s_pfont = NULL; + +RasterFont* s_pfont = NULL; // 1 for no MSAA. Use s_MSAASamples > 1 to check for MSAA. static int s_MSAASamples = 1; @@ -130,9 +126,9 @@ static std::thread scrshotThread; #endif // EFB cache related -static const u32 EFB_CACHE_RECT_SIZE = 64; // Cache 64x64 blocks. -static const u32 EFB_CACHE_WIDTH = (EFB_WIDTH + EFB_CACHE_RECT_SIZE - 1) / EFB_CACHE_RECT_SIZE; // round up -static const u32 EFB_CACHE_HEIGHT = (EFB_HEIGHT + EFB_CACHE_RECT_SIZE - 1) / EFB_CACHE_RECT_SIZE; +const u32 EFB_CACHE_RECT_SIZE = 64; // Cache 64x64 blocks. +const u32 EFB_CACHE_WIDTH = (EFB_WIDTH + EFB_CACHE_RECT_SIZE - 1) / EFB_CACHE_RECT_SIZE; // round up +const u32 EFB_CACHE_HEIGHT = (EFB_HEIGHT + EFB_CACHE_RECT_SIZE - 1) / EFB_CACHE_RECT_SIZE; static bool s_efbCacheValid[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT]; static std::vector s_efbCache[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT]; // 2 for PEEK_Z and PEEK_COLOR @@ -255,16 +251,7 @@ Renderer::Renderer() OSDInternalH = 0; s_fps=0; - s_ShowEFBCopyRegions_VBO = 0; - s_Swap_VBO = 0; s_blendMode = 0; - - // should be invalid, so there will be an upload on the first call - s_cached_targetRc.bottom = -1; - s_cached_targetRc.top = -1; - s_cached_targetRc.left = -1; - s_cached_targetRc.right = -1; - InitFPSCounter(); @@ -325,13 +312,6 @@ Renderer::Renderer() bSuccess = false; } - if (!GLEW_ARB_vertex_array_object) - { - ERROR_LOG(VIDEO, "GPU: OGL ERROR: Need GL_ARB_vertex_array_object.\n" - "GPU: Does your video card support OpenGL 3.0?"); - bSuccess = false; - } - s_bHaveFramebufferBlit = strstr(ptoken, "GL_EXT_framebuffer_blit") != NULL; s_bHaveCoverageMSAA = strstr(ptoken, "GL_NV_framebuffer_multisample_coverage") != NULL; @@ -471,46 +451,17 @@ Renderer::Renderer() cgGLSetDebugMode(GL_FALSE); #endif #endif - - // creating buffers - glGenBuffers(1, &s_ShowEFBCopyRegions_VBO); - glGenVertexArrays(1, &s_ShowEFBCopyRegions_VAO); - glBindBuffer(GL_ARRAY_BUFFER, s_ShowEFBCopyRegions_VBO); - glBindVertexArray( s_ShowEFBCopyRegions_VAO ); - glEnableClientState(GL_COLOR_ARRAY); - glColorPointer (3, GL_FLOAT, sizeof(GLfloat)*5, (GLfloat*)NULL+2); - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(2, GL_FLOAT, sizeof(GLfloat)*5, NULL); - - glGenBuffers(1, &s_Swap_VBO); - glGenVertexArrays(2, s_Swap_VAO); - glBindBuffer(GL_ARRAY_BUFFER, s_Swap_VBO); - glBindVertexArray(s_Swap_VAO[0]); - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(3, GL_FLOAT, 7*sizeof(GLfloat), NULL); - glClientActiveTexture(GL_TEXTURE0); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, 7*sizeof(GLfloat), (GLfloat*)NULL+3); - - glBindVertexArray(s_Swap_VAO[1]); - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(3, GL_FLOAT, 7*sizeof(GLfloat), NULL); - glClientActiveTexture(GL_TEXTURE0); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, 7*sizeof(GLfloat), (GLfloat*)NULL+3); - glClientActiveTexture(GL_TEXTURE1); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, 7*sizeof(GLfloat), (GLfloat*)NULL+5); - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); - + glStencilFunc(GL_ALWAYS, 0, 0); glBlendFunc(GL_ONE, GL_ONE); glViewport(0, 0, GetTargetWidth(), GetTargetHeight()); // Reset The Current Viewport + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glShadeModel(GL_SMOOTH); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClearDepth(1.0f); @@ -527,6 +478,11 @@ Renderer::Renderer() glBlendColorEXT(0, 0, 0, 0.5f); glClearDepth(1.0f); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + // legacy multitexturing: select texture channel only. glActiveTexture(GL_TEXTURE0); glClientActiveTexture(GL_TEXTURE0); @@ -542,13 +498,6 @@ Renderer::~Renderer() { g_Config.bRunning = false; UpdateActiveConfig(); - - glDeleteBuffers(1, &s_ShowEFBCopyRegions_VBO); - glDeleteVertexArrays(1, &s_ShowEFBCopyRegions_VAO); - glDeleteBuffers(1, &s_Swap_VBO); - glDeleteVertexArrays(2, s_Swap_VAO); - s_ShowEFBCopyRegions_VBO = 0; - delete s_pfont; s_pfont = 0; @@ -596,15 +545,9 @@ void Renderer::DrawDebugInfo() // Set Line Size glLineWidth(3.0f); - // 2*Coords + 3*Color - glBindBuffer(GL_ARRAY_BUFFER, s_ShowEFBCopyRegions_VBO); - glBufferData(GL_ARRAY_BUFFER, stats.efb_regions.size() * sizeof(GLfloat) * (2+3)*2*6, NULL, GL_STREAM_DRAW); - GLfloat *Vertices = (GLfloat*)glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); + glBegin(GL_LINES); // Draw EFB copy regions rectangles - int a = 0; - GLfloat color[3] = {0.0f, 1.0f, 1.0f}; - for (std::vector::const_iterator it = stats.efb_regions.begin(); it != stats.efb_regions.end(); ++it) { @@ -615,97 +558,22 @@ void Renderer::DrawDebugInfo() GLfloat x2 = (GLfloat) -1.0f + ((GLfloat)it->right / halfWidth); GLfloat y2 = (GLfloat) 1.0f - ((GLfloat)it->bottom / halfHeight); - Vertices[a++] = x; - Vertices[a++] = y; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - Vertices[a++] = x2; - Vertices[a++] = y; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - - Vertices[a++] = x2; - Vertices[a++] = y; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - Vertices[a++] = x2; - Vertices[a++] = y2; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - - Vertices[a++] = x2; - Vertices[a++] = y2; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - Vertices[a++] = x; - Vertices[a++] = y2; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - - Vertices[a++] = x; - Vertices[a++] = y2; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - Vertices[a++] = x; - Vertices[a++] = y; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - - Vertices[a++] = x; - Vertices[a++] = y; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - Vertices[a++] = x2; - Vertices[a++] = y2; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - - Vertices[a++] = x2; - Vertices[a++] = y; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - Vertices[a++] = x; - Vertices[a++] = y2; - Vertices[a++] = color[0]; - Vertices[a++] = color[1]; - Vertices[a++] = color[2]; - - // TO DO: build something nicer here - GLfloat temp = color[0]; - color[0] = color[1]; - color[1] = color[2]; - color[2] = temp; + // Draw shadow of rect + glColor3f(0.0f, 0.0f, 0.0f); + glVertex2f(x, y - 0.01); glVertex2f(x2, y - 0.01); + glVertex2f(x, y2 - 0.01); glVertex2f(x2, y2 - 0.01); + glVertex2f(x + 0.005, y); glVertex2f(x + 0.005, y2); + glVertex2f(x2 + 0.005, y); glVertex2f(x2 + 0.005, y2); + + // Draw rect + glColor3f(0.0f, 1.0f, 1.0f); + glVertex2f(x, y); glVertex2f(x2, y); + glVertex2f(x, y2); glVertex2f(x2, y2); + glVertex2f(x, y); glVertex2f(x, y2); + glVertex2f(x2, y); glVertex2f(x2, y2); } - glUnmapBuffer(GL_ARRAY_BUFFER); - - glBindVertexArray( s_ShowEFBCopyRegions_VAO ); - glDrawArrays(GL_LINES, 0, stats.efb_regions.size() * 2*6); - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); + + glEnd(); // Restore Line Size glLineWidth(lSize); @@ -733,13 +601,16 @@ void Renderer::RenderText(const char *text, int left, int top, u32 color) const int nBackbufferWidth = (int)GLInterface->GetBackBufferWidth(); const int nBackbufferHeight = (int)GLInterface->GetBackBufferHeight(); + glColor4f(((color>>16) & 0xff)/255.0f, ((color>> 8) & 0xff)/255.0f, + ((color>> 0) & 0xff)/255.0f, ((color>>24) & 0xFF)/255.0f); + glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); s_pfont->printMultilineText(text, left * 2.0f / (float)nBackbufferWidth - 1, 1 - top * 2.0f / (float)nBackbufferHeight, - 0, nBackbufferWidth, nBackbufferHeight, color); + 0, nBackbufferWidth, nBackbufferHeight); GL_REPORT_ERRORD(); @@ -1264,42 +1135,43 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons // Render to the real buffer now. glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); // switch to the window backbuffer glBindTexture(GL_TEXTURE_RECTANGLE_ARB, read_texture); - - if(!( s_cached_targetRc == targetRc)) { - GLfloat vertices[] = { - -1.0f, -1.0f, 1.0f, - (GLfloat)targetRc.left, (GLfloat)targetRc.bottom, - 0.0f, 0.0f, - - -1.0f, 1.0f, 1.0f, - (GLfloat)targetRc.left, (GLfloat)targetRc.top, - 0.0f, 1.0f, - - 1.0f, 1.0f, 1.0f, - (GLfloat)targetRc.right, (GLfloat)targetRc.top, - 1.0f, 1.0f, - - 1.0f, -1.0f, 1.0f, - (GLfloat)targetRc.right, (GLfloat)targetRc.bottom, - 1.0f, 0.0f - }; - - glBindBuffer(GL_ARRAY_BUFFER, s_Swap_VBO); - glBufferData(GL_ARRAY_BUFFER, 4*7*sizeof(GLfloat), vertices, GL_STREAM_DRAW); - - s_cached_targetRc = targetRc; - } - - glBindVertexArray(s_Swap_VAO[applyShader]); - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); - - if(applyShader) + if (applyShader) + { + glBegin(GL_QUADS); + glTexCoord2f(targetRc.left, targetRc.bottom); + glMultiTexCoord2fARB(GL_TEXTURE1, 0, 0); + glVertex2f(-1, -1); + + glTexCoord2f(targetRc.left, targetRc.top); + glMultiTexCoord2fARB(GL_TEXTURE1, 0, 1); + glVertex2f(-1, 1); + + glTexCoord2f(targetRc.right, targetRc.top); + glMultiTexCoord2fARB(GL_TEXTURE1, 1, 1); + glVertex2f( 1, 1); + + glTexCoord2f(targetRc.right, targetRc.bottom); + glMultiTexCoord2fARB(GL_TEXTURE1, 1, 0); + glVertex2f( 1, -1); + glEnd(); PixelShaderCache::DisableShader(); + } + else + { + glBegin(GL_QUADS); + glTexCoord2f(targetRc.left, targetRc.bottom); + glVertex2f(-1, -1); + + glTexCoord2f(targetRc.left, targetRc.top); + glVertex2f(-1, 1); + + glTexCoord2f(targetRc.right, targetRc.top); + glVertex2f( 1, 1); + + glTexCoord2f(targetRc.right, targetRc.bottom); + glVertex2f( 1, -1); + glEnd(); + } } glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp index d90f651a82..7a62131f90 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp @@ -56,13 +56,6 @@ namespace OGL { -struct VBOCache { - GLuint vbo; - GLuint vao; - TargetRectangle targetSource; -}; -static std::map s_VBO; - static u32 s_TempFramebuffer = 0; static const GLint c_MinLinearFilter[8] = { @@ -113,8 +106,6 @@ TextureCache::TCacheEntry::~TCacheEntry() TextureCache::TCacheEntry::TCacheEntry() { glGenTextures(1, &texture); - currmode.hex = 0; - currmode1.hex = 0; GL_REPORT_ERRORD(); } @@ -127,9 +118,7 @@ void TextureCache::TCacheEntry::Bind(unsigned int stage) // TODO: is this already done somewhere else? TexMode0 &tm0 = bpmem.tex[stage >> 2].texMode0[stage & 3]; TexMode1 &tm1 = bpmem.tex[stage >> 2].texMode1[stage & 3]; - - if(currmode.hex != tm0.hex || currmode1.hex != tm1.hex) - SetTextureParameters(tm0, tm1); + SetTextureParameters(tm0, tm1); } bool TextureCache::TCacheEntry::Save(const char filename[], unsigned int level) @@ -315,57 +304,13 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo GL_REPORT_ERRORD(); TargetRectangle targetSource = g_renderer->ConvertEFBRectangle(srcRect); - GL_REPORT_ERRORD(); - - // should be unique enough, if not, vbo will "only" be uploaded to much - u64 targetSourceHash = u64(targetSource.left)<<48 | u64(targetSource.top)<<32 | u64(targetSource.right)<<16 | u64(targetSource.bottom); - std::map::iterator vbo_it = s_VBO.find(targetSourceHash); - - if(vbo_it == s_VBO.end()) { - VBOCache item; - item.targetSource.bottom = -1; - item.targetSource.top = -1; - item.targetSource.left = -1; - item.targetSource.right = -1; - glGenBuffers(1, &item.vbo); - glGenVertexArrays(1, &item.vao); - - glBindBuffer(GL_ARRAY_BUFFER, item.vbo); - glBindVertexArray(item.vao); - - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(2, GL_FLOAT, sizeof(GLfloat)*4, 0); - - glClientActiveTexture(GL_TEXTURE0); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, sizeof(GLfloat)*4, (GLfloat*)NULL + 2); - - vbo_it = s_VBO.insert(std::pair(targetSourceHash, item)).first; - } - if(!(vbo_it->second.targetSource == targetSource)) { - GLfloat vertices[] = { - -1.f, 1.f, - (GLfloat)targetSource.left, (GLfloat)targetSource.bottom, - -1.f, -1.f, - (GLfloat)targetSource.left, (GLfloat)targetSource.top, - 1.f, -1.f, - (GLfloat)targetSource.right, (GLfloat)targetSource.top, - 1.f, 1.f, - (GLfloat)targetSource.right, (GLfloat)targetSource.bottom - }; - - glBindBuffer(GL_ARRAY_BUFFER, vbo_it->second.vbo); - glBufferData(GL_ARRAY_BUFFER, 4*4*sizeof(GLfloat), vertices, GL_STREAM_DRAW); - - vbo_it->second.targetSource = targetSource; - } - - glBindVertexArray(vbo_it->second.vao); - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); + + glBegin(GL_QUADS); + glTexCoord2f((GLfloat)targetSource.left, (GLfloat)targetSource.bottom); glVertex2f(-1, 1); + glTexCoord2f((GLfloat)targetSource.left, (GLfloat)targetSource.top ); glVertex2f(-1, -1); + glTexCoord2f((GLfloat)targetSource.right, (GLfloat)targetSource.top ); glVertex2f( 1, -1); + glTexCoord2f((GLfloat)targetSource.right, (GLfloat)targetSource.bottom); glVertex2f( 1, 1); + glEnd(); GL_REPORT_ERRORD(); @@ -412,9 +357,6 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo void TextureCache::TCacheEntry::SetTextureParameters(const TexMode0 &newmode, const TexMode1 &newmode1) { - currmode = newmode; - currmode1 = newmode1; - // TODO: not used anywhere TexMode0 mode = newmode; //mode1 = newmode1; @@ -446,24 +388,13 @@ void TextureCache::TCacheEntry::SetTextureParameters(const TexMode0 &newmode, co (float)(1 << g_ActiveConfig.iMaxAnisotropy)); } -TextureCache::TextureCache() -{ -} - - TextureCache::~TextureCache() { - for(std::map::iterator it = s_VBO.begin(); it != s_VBO.end(); it++) { - glDeleteBuffers(1, &it->second.vbo); - glDeleteVertexArrays(1, &it->second.vao); - } - s_VBO.clear(); - - if (s_TempFramebuffer) + if (s_TempFramebuffer) { - glDeleteFramebuffersEXT(1, (GLuint*)&s_TempFramebuffer); - s_TempFramebuffer = 0; - } + glDeleteFramebuffersEXT(1, (GLuint*)&s_TempFramebuffer); + s_TempFramebuffer = 0; + } } void TextureCache::DisableStage(unsigned int stage) diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h index dc560e098b..30f44b797d 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h @@ -32,7 +32,6 @@ namespace OGL class TextureCache : public ::TextureCache { public: - TextureCache(); static void DisableStage(unsigned int stage); private: @@ -67,8 +66,6 @@ private: private: void SetTextureParameters(const TexMode0 &newmode, const TexMode1 &newmode1); - TexMode0 currmode; - TexMode1 currmode1; }; ~TextureCache(); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp b/Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp index 54a2e2464c..c73d3abdbf 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp @@ -57,14 +57,6 @@ static FRAGMENTSHADER s_yuyvToRgbProgram; const u32 NUM_ENCODING_PROGRAMS = 64; static FRAGMENTSHADER s_encodingPrograms[NUM_ENCODING_PROGRAMS]; -static GLuint s_encode_VBO = 0; -static GLuint s_encode_VAO = 0; -static GLuint s_decode_VBO = 0; -static GLuint s_decode_VAO = 0; -static TargetRectangle s_cached_sourceRc; -static int s_cached_srcWidth = 0; -static int s_cached_srcHeight = 0; - void CreateRgbToYuyvProgram() { // Output is BGRA because that is slightly faster than RGBA. @@ -148,40 +140,9 @@ FRAGMENTSHADER &GetOrCreateEncodingShader(u32 format) void Init() { glGenFramebuffersEXT(1, &s_texConvFrameBuffer); - - glGenBuffers(1, &s_encode_VBO ); - glGenVertexArrays(1, &s_encode_VAO ); - glBindBuffer(GL_ARRAY_BUFFER, s_encode_VBO ); - glBindVertexArray( s_encode_VAO ); - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(2, GL_FLOAT, 4*sizeof(GLfloat), NULL); - glClientActiveTexture(GL_TEXTURE0); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, 4*sizeof(GLfloat), (GLfloat*)NULL + 2); - s_cached_sourceRc.top = -1; - s_cached_sourceRc.bottom = -1; - s_cached_sourceRc.left = -1; - s_cached_sourceRc.right = -1; - - glGenBuffers(1, &s_decode_VBO ); - glGenVertexArrays(1, &s_decode_VAO ); - glBindBuffer(GL_ARRAY_BUFFER, s_decode_VBO ); - glBindVertexArray( s_decode_VAO ); - s_cached_srcWidth = -1; - s_cached_srcHeight = -1; - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(2, GL_FLOAT, sizeof(GLfloat)*4, NULL); - glClientActiveTexture(GL_TEXTURE0); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, sizeof(GLfloat)*4, (GLfloat*)NULL+2); - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); glGenRenderbuffersEXT(1, &s_dstRenderBuffer); glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, s_dstRenderBuffer); - glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGBA, renderBufferWidth, renderBufferHeight); s_srcTextureWidth = 0; @@ -201,10 +162,6 @@ void Shutdown() glDeleteTextures(1, &s_srcTexture); glDeleteRenderbuffersEXT(1, &s_dstRenderBuffer); glDeleteFramebuffersEXT(1, &s_texConvFrameBuffer); - glDeleteBuffers(1, &s_encode_VBO ); - glDeleteVertexArrays(1, &s_encode_VAO ); - glDeleteBuffers(1, &s_decode_VBO ); - glDeleteVertexArrays(1, &s_decode_VAO ); s_rgbToYuyvProgram.Destroy(); s_yuyvToRgbProgram.Destroy(); @@ -256,31 +213,13 @@ void EncodeToRamUsingShader(FRAGMENTSHADER& shader, GLuint srcTexture, const Tar PixelShaderCache::SetCurrentShader(shader.glprogid); - GL_REPORT_ERRORD(); - if(!(s_cached_sourceRc == sourceRc)) { - GLfloat vertices[] = { - -1.f, -1.f, - (float)sourceRc.left, (float)sourceRc.top, - -1.f, 1.f, - (float)sourceRc.left, (float)sourceRc.bottom, - 1.f, 1.f, - (float)sourceRc.right, (float)sourceRc.bottom, - 1.f, -1.f, - (float)sourceRc.right, (float)sourceRc.top - }; - glBindBuffer(GL_ARRAY_BUFFER, s_encode_VBO ); - glBufferData(GL_ARRAY_BUFFER, 4*4*sizeof(GLfloat), vertices, GL_STREAM_DRAW); - - s_cached_sourceRc = sourceRc; - } - - glBindVertexArray( s_encode_VAO ); - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); - + // Draw... + glBegin(GL_QUADS); + glTexCoord2f((float)sourceRc.left, (float)sourceRc.top); glVertex2f(-1,-1); + glTexCoord2f((float)sourceRc.left, (float)sourceRc.bottom); glVertex2f(-1,1); + glTexCoord2f((float)sourceRc.right, (float)sourceRc.bottom); glVertex2f(1,1); + glTexCoord2f((float)sourceRc.right, (float)sourceRc.top); glVertex2f(1,-1); + glEnd(); GL_REPORT_ERRORD(); // .. and then read back the results. @@ -436,39 +375,18 @@ void DecodeToTexture(u32 xfbAddr, int srcWidth, int srcHeight, GLuint destTextur PixelShaderCache::SetCurrentShader(s_yuyvToRgbProgram.glprogid); GL_REPORT_ERRORD(); - - if(s_cached_srcHeight != srcHeight || s_cached_srcWidth != srcWidth) { - GLfloat vertices[] = { - 1.f, -1.f, - (float)srcFmtWidth, (float)srcHeight, - 1.f, 1.f, - (float)srcFmtWidth, 0.f, - -1.f, 1.f, - 0.f, 0.f, - -1.f, -1.f, - 0.f, (float)srcHeight - }; - - glBindBuffer(GL_ARRAY_BUFFER, s_decode_VBO ); - glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*4*4, vertices, GL_STREAM_DRAW); - - s_cached_srcHeight = srcHeight; - s_cached_srcWidth = srcWidth; - } - - glBindVertexArray( s_decode_VAO ); - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - - // TODO: this after merging with graphic_update - glBindVertexArray(0); - glBindBuffer(GL_ARRAY_BUFFER, 0); - - GL_REPORT_ERRORD(); + + glBegin(GL_QUADS); + glTexCoord2f((float)srcFmtWidth, (float)srcHeight); glVertex2f(1,-1); + glTexCoord2f((float)srcFmtWidth, 0); glVertex2f(1,1); + glTexCoord2f(0, 0); glVertex2f(-1,1); + glTexCoord2f(0, (float)srcHeight); glVertex2f(-1,-1); + glEnd(); // reset state glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0); glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_RECTANGLE_ARB, 0, 0); - TextureCache::DisableStage(0); + TextureCache::DisableStage(0); VertexShaderManager::SetViewportChanged(); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp index 3725d87add..501c4969e5 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp @@ -64,6 +64,9 @@ VertexManager::VertexManager() // max_Index_size = MAXIBUFFERSIZE; // //GL_REPORT_ERRORD(); + + glEnableClientState(GL_VERTEX_ARRAY); + GL_REPORT_ERRORD(); } void VertexManager::CreateDeviceObjects() diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp index d2f77cd256..49739b7f6e 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp @@ -96,11 +96,12 @@ void SWRenderer::RenderText(const char* pstr, int left, int top, u32 color) #ifndef USE_GLES int nBackbufferWidth = (int)GLInterface->GetBackBufferWidth(); int nBackbufferHeight = (int)GLInterface->GetBackBufferHeight(); - + glColor4f(((color>>16) & 0xff)/255.0f, ((color>> 8) & 0xff)/255.0f, + ((color>> 0) & 0xff)/255.0f, ((color>>24) & 0xFF)/255.0f); s_pfont->printMultilineText(pstr, left * 2.0f / (float)nBackbufferWidth - 1, 1 - top * 2.0f / (float)nBackbufferHeight, - 0, nBackbufferWidth, nBackbufferHeight, color); + 0, nBackbufferWidth, nBackbufferHeight); #endif } -- cgit v1.2.3 From bb7c262539a5b2b663bbec065e9120fa9fb21e46 Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Mon, 7 Jan 2013 16:50:48 -0600 Subject: Add a linux .desktop file to add dolphin-emu to the menu, and install it when running 'make install'. --- Source/Core/DolphinWX/resources/dolphin-emu.desktop | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Source/Core/DolphinWX/resources/dolphin-emu.desktop (limited to 'Source') diff --git a/Source/Core/DolphinWX/resources/dolphin-emu.desktop b/Source/Core/DolphinWX/resources/dolphin-emu.desktop new file mode 100644 index 0000000000..0ce4678f00 --- /dev/null +++ b/Source/Core/DolphinWX/resources/dolphin-emu.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=Dolphin-emu +Comment=A Wii/GameCube Emulator +Icon=dolphin-emu +Exec=dolphin-emu +Categories=Game; + -- cgit v1.2.3 From 8cfceb1186c80a4ad94618cfa8d8aa942134247e Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Tue, 8 Jan 2013 00:00:30 +0100 Subject: Disable swapping cmp with instructions potentially raising interrupts Workaround for issue 5864 disabling parts of an optimization in the JIT. This is not the best solution to fix this issue, but at least it does not crash. --- Source/Core/Core/Src/PowerPC/PPCAnalyst.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/PowerPC/PPCAnalyst.cpp b/Source/Core/Core/Src/PowerPC/PPCAnalyst.cpp index ddfec1c328..fa9f278c29 100644 --- a/Source/Core/Core/Src/PowerPC/PPCAnalyst.cpp +++ b/Source/Core/Core/Src/PowerPC/PPCAnalyst.cpp @@ -246,17 +246,13 @@ bool CanSwapAdjacentOps(const CodeOp &a, const CodeOp &b) return false; } - // For now, only integer ops acceptable. - switch (b_info->type) { - case OPTYPE_INTEGER: - case OPTYPE_LOAD: - case OPTYPE_STORE: - //case OPTYPE_LOADFP: - //case OPTYPE_STOREFP: - break; - default: + // For now, only integer ops acceptable. Any instruction which can raise an + // interrupt is *not* a possible swap candidate: see [1] for an example of + // a crash caused by this error. + // + // [1] https://code.google.com/p/dolphin-emu/issues/detail?id=5864#c7 + if (b_info->type != OPTYPE_INTEGER) return false; - } // Check that we have no register collisions. // That is, check that none of b's outputs matches any of a's inputs, -- cgit v1.2.3 From 6bd8474d054db7eafa546063e88f23e7ffe0d9d0 Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Mon, 7 Jan 2013 17:05:51 -0600 Subject: Change the application name to "Dolphin Emulator" (from "Dolphin-emu"). --- Source/Core/DolphinWX/resources/dolphin-emu.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/resources/dolphin-emu.desktop b/Source/Core/DolphinWX/resources/dolphin-emu.desktop index 0ce4678f00..f201f07f22 100644 --- a/Source/Core/DolphinWX/resources/dolphin-emu.desktop +++ b/Source/Core/DolphinWX/resources/dolphin-emu.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Version=1.0 Type=Application -Name=Dolphin-emu +Name=Dolphin Emulator Comment=A Wii/GameCube Emulator Icon=dolphin-emu Exec=dolphin-emu -- cgit v1.2.3 From 446d9279b10a3eb688d2b16036a9f3f832a1c6e4 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Tue, 8 Jan 2013 11:14:53 -0600 Subject: Fix clearing of render targets. We were skipping every other one. --- Source/Core/VideoCommon/Src/TextureCacheBase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp index 9fc18ef1bd..e3152455df 100644 --- a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp @@ -208,7 +208,7 @@ void TextureCache::ClearRenderTargets() if (iter->second->type == TCET_EC_VRAM) { delete iter->second; - textures.erase(iter++); + textures.erase(iter); } } -- cgit v1.2.3 From 09197e0ffcd78a54cae9a80889bef6e6e9440511 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Mon, 31 Dec 2012 16:21:23 +0100 Subject: X11: Disable OSD hotkeys when the corresponding option is disabled. --- Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp | 69 ++++---- Source/Core/VideoCommon/Src/RenderBase.cpp | 184 +++++++++++---------- Source/Core/VideoCommon/Src/RenderBase.h | 2 +- 3 files changed, 133 insertions(+), 122 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp b/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp index 9372c4d644..6a30bb90a6 100644 --- a/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp +++ b/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp @@ -71,38 +71,45 @@ void cX11Window::XEventThread() switch(event.type) { case KeyPress: key = XLookupKeysym((XKeyEvent*)&event, 0); - switch (key) + if (g_Config.bOSDHotKey) { - case XK_3: - OSDChoice = 1; - // Toggle native resolution - g_Config.iEFBScale = g_Config.iEFBScale + 1; - if (g_Config.iEFBScale > 7) g_Config.iEFBScale = 0; - break; - case XK_4: - OSDChoice = 2; - // Toggle aspect ratio - g_Config.iAspectRatio = (g_Config.iAspectRatio + 1) & 3; - break; - case XK_5: - OSDChoice = 3; - // Toggle EFB copy - if (!g_Config.bEFBCopyEnable || g_Config.bCopyEFBToTexture) - { - g_Config.bEFBCopyEnable ^= true; - g_Config.bCopyEFBToTexture = false; - } - else - { - g_Config.bCopyEFBToTexture = !g_Config.bCopyEFBToTexture; - } - break; - case XK_6: - OSDChoice = 4; - g_Config.bDisableFog = !g_Config.bDisableFog; - break; - default: - break; + switch (key) + { + case XK_3: + OSDChoice = 1; + // Toggle native resolution + g_Config.iEFBScale = g_Config.iEFBScale + 1; + if (g_Config.iEFBScale > 7) g_Config.iEFBScale = 0; + break; + + case XK_4: + OSDChoice = 2; + // Toggle aspect ratio + g_Config.iAspectRatio = (g_Config.iAspectRatio + 1) & 3; + break; + + case XK_5: + OSDChoice = 3; + // Toggle EFB copy + if (!g_Config.bEFBCopyEnable || g_Config.bCopyEFBToTexture) + { + g_Config.bEFBCopyEnable ^= true; + g_Config.bCopyEFBToTexture = false; + } + else + { + g_Config.bCopyEFBToTexture = !g_Config.bCopyEFBToTexture; + } + break; + + case XK_6: + OSDChoice = 4; + g_Config.bDisableFog = !g_Config.bDisableFog; + break; + + default: + break; + } } if (g_Config.bFreeLook) { diff --git a/Source/Core/VideoCommon/Src/RenderBase.cpp b/Source/Core/VideoCommon/Src/RenderBase.cpp index 577570c568..8e1d012fa2 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.cpp +++ b/Source/Core/VideoCommon/Src/RenderBase.cpp @@ -91,6 +91,9 @@ Renderer::Renderer() : frame_data(NULL), bLastFrameDumped(false) #if defined _WIN32 || defined HAVE_LIBAV bAVIDumping = false; #endif + + OSDChoice = 0; + OSDTime = 0; } Renderer::~Renderer() @@ -263,108 +266,109 @@ void Renderer::SetScreenshot(const char *filename) // Create On-Screen-Messages void Renderer::DrawDebugText() { + if (!g_Config.bOSDHotKey) + return; + // OSD Menu messages - if (g_ActiveConfig.bOSDHotKey) + if (OSDChoice > 0) { - if (OSDChoice > 0) - { - OSDTime = Common::Timer::GetTimeMs() + 3000; - OSDChoice = -OSDChoice; - } - if ((u32)OSDTime > Common::Timer::GetTimeMs()) - { - const char* res_text = ""; - switch (g_ActiveConfig.iEFBScale) - { - case 0: - res_text = "Auto (fractional)"; - break; - case 1: - res_text = "Auto (integral)"; - break; - case 2: - res_text = "Native"; - break; - case 3: - res_text = "1.5x"; - break; - case 4: - res_text = "2x"; - break; - case 5: - res_text = "2.5x"; - break; - case 6: - res_text = "3x"; - break; - case 7: - res_text = "4x"; - break; - } + OSDTime = Common::Timer::GetTimeMs() + 3000; + OSDChoice = -OSDChoice; + } - const char* ar_text = ""; - switch(g_ActiveConfig.iAspectRatio) - { - case ASPECT_AUTO: - ar_text = "Auto"; - break; - case ASPECT_FORCE_16_9: - ar_text = "16:9"; - break; - case ASPECT_FORCE_4_3: - ar_text = "4:3"; - break; - case ASPECT_STRETCH: - ar_text = "Stretch"; - break; - } + if ((u32)OSDTime <= Common::Timer::GetTimeMs()) + return; - const char* const efbcopy_text = g_ActiveConfig.bEFBCopyEnable ? - (g_ActiveConfig.bCopyEFBToTexture ? "to Texture" : "to RAM") : "Disabled"; + const char* res_text = ""; + switch (g_ActiveConfig.iEFBScale) + { + case 0: + res_text = "Auto (fractional)"; + break; + case 1: + res_text = "Auto (integral)"; + break; + case 2: + res_text = "Native"; + break; + case 3: + res_text = "1.5x"; + break; + case 4: + res_text = "2x"; + break; + case 5: + res_text = "2.5x"; + break; + case 6: + res_text = "3x"; + break; + case 7: + res_text = "4x"; + break; + } - // The rows - const std::string lines[] = - { - std::string("3: Internal Resolution: ") + res_text, - std::string("4: Aspect Ratio: ") + ar_text + (g_ActiveConfig.bCrop ? " (crop)" : ""), - std::string("5: Copy EFB: ") + efbcopy_text, - std::string("6: Fog: ") + (g_ActiveConfig.bDisableFog ? "Disabled" : "Enabled"), - }; + const char* ar_text = ""; + switch(g_ActiveConfig.iAspectRatio) + { + case ASPECT_AUTO: + ar_text = "Auto"; + break; + case ASPECT_FORCE_16_9: + ar_text = "16:9"; + break; + case ASPECT_FORCE_4_3: + ar_text = "4:3"; + break; + case ASPECT_STRETCH: + ar_text = "Stretch"; + break; + } - enum { lines_count = sizeof(lines)/sizeof(*lines) }; + const char* const efbcopy_text = g_ActiveConfig.bEFBCopyEnable ? + (g_ActiveConfig.bCopyEFBToTexture ? "to Texture" : "to RAM") : "Disabled"; - std::string final_yellow, final_cyan; + // The rows + const std::string lines[] = + { + std::string("3: Internal Resolution: ") + res_text, + std::string("4: Aspect Ratio: ") + ar_text + (g_ActiveConfig.bCrop ? " (crop)" : ""), + std::string("5: Copy EFB: ") + efbcopy_text, + std::string("6: Fog: ") + (g_ActiveConfig.bDisableFog ? "Disabled" : "Enabled"), + }; - // If there is more text than this we will have a collision - if (g_ActiveConfig.bShowFPS) - { - final_yellow = final_cyan = "\n\n"; - } + enum { lines_count = sizeof(lines)/sizeof(*lines) }; - // The latest changed setting in yellow - for (int i = 0; i != lines_count; ++i) - { - if (OSDChoice == -i - 1) - final_yellow += lines[i]; - final_yellow += '\n'; - } + std::string final_yellow, final_cyan; - // The other settings in cyan - for (int i = 0; i != lines_count; ++i) - { - if (OSDChoice != -i - 1) - final_cyan += lines[i]; - final_cyan += '\n'; - } + // If there is more text than this we will have a collision + if (g_ActiveConfig.bShowFPS) + { + final_yellow = final_cyan = "\n\n"; + } - // Render a shadow - g_renderer->RenderText(final_cyan.c_str(), 21, 21, 0xDD000000); - g_renderer->RenderText(final_yellow.c_str(), 21, 21, 0xDD000000); - //and then the text - g_renderer->RenderText(final_cyan.c_str(), 20, 20, 0xFF00FFFF); - g_renderer->RenderText(final_yellow.c_str(), 20, 20, 0xFFFFFF00); - } + // The latest changed setting in yellow + for (int i = 0; i != lines_count; ++i) + { + if (OSDChoice == -i - 1) + final_yellow += lines[i]; + final_yellow += '\n'; } + + // The other settings in cyan + for (int i = 0; i != lines_count; ++i) + { + if (OSDChoice != -i - 1) + final_cyan += lines[i]; + final_cyan += '\n'; + } + + // Render a shadow + g_renderer->RenderText(final_cyan.c_str(), 21, 21, 0xDD000000); + g_renderer->RenderText(final_yellow.c_str(), 21, 21, 0xDD000000); + //and then the text + g_renderer->RenderText(final_cyan.c_str(), 20, 20, 0xFF00FFFF); + g_renderer->RenderText(final_yellow.c_str(), 20, 20, 0xFFFFFF00); } // TODO: remove diff --git a/Source/Core/VideoCommon/Src/RenderBase.h b/Source/Core/VideoCommon/Src/RenderBase.h index 4da80c9752..5376577cbd 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.h +++ b/Source/Core/VideoCommon/Src/RenderBase.h @@ -39,7 +39,7 @@ // TODO: Move these out of here. extern int frameCount; -extern int OSDChoice, OSDTime; +extern int OSDChoice; extern bool bLastFrameDumped; -- cgit v1.2.3 From e979b2d4a2d6eeef38f5a124402fe365ce3b6422 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Mon, 31 Dec 2012 16:27:22 +0100 Subject: DX11: Fix a small mistake. Remove some incorrect and/or confusing comments. Fixes issue 5251. Thanks to limburgerite :) --- Source/Plugins/Plugin_VideoDX11/Src/Render.cpp | 4 +--- Source/Plugins/Plugin_VideoDX9/Src/Render.cpp | 3 --- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 3 --- 3 files changed, 1 insertion(+), 9 deletions(-) (limited to 'Source') diff --git a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp index 830f16a9f6..2955bf6a6d 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp @@ -907,10 +907,8 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons Core::Callback_VideoCopiedToXFB(false); return; } - // this function is called after the XFB field is changed, not after - // EFB is copied to XFB. In this way, flickering is reduced in games - // and seems to also give more FPS in ZTP + if (field == FIELD_LOWER) xfbAddr -= fbWidth * 2; u32 xfbCount = 0; const XFBSourceBase* const* xfbSourceList = FramebufferManager::GetXFBSource(xfbAddr, fbWidth, fbHeight, xfbCount); if ((!xfbSourceList || xfbCount == 0) && g_ActiveConfig.bUseXFB && !g_ActiveConfig.bUseRealXFB) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp index a26b041ba0..1e37ff5456 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp @@ -844,9 +844,6 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons Core::Callback_VideoCopiedToXFB(false); return; } - // this function is called after the XFB field is changed, not after - // EFB is copied to XFB. In this way, flickering is reduced in games - // and seems to also give more FPS in ZTP if (field == FIELD_LOWER) xfbAddr -= fbWidth * 2; u32 xfbCount = 0; diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index e2fff07b10..9053b0f164 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -1013,9 +1013,6 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons Core::Callback_VideoCopiedToXFB(false); return; } - // this function is called after the XFB field is changed, not after - // EFB is copied to XFB. In this way, flickering is reduced in games - // and seems to also give more FPS in ZTP if (field == FIELD_LOWER) xfbAddr -= fbWidth * 2; u32 xfbCount = 0; -- cgit v1.2.3 From 876eee5e601915dd361a16899754d35b43cae80c Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Tue, 8 Jan 2013 16:01:15 +0100 Subject: PixelShaderGen: Don't disable depth texture emulation if z writing is disabled (this is what VideoSoftware is doing). --- Source/Core/Common/Src/LinearDiskCache.h | 2 +- Source/Core/VideoCommon/Src/BPMemory.h | 2 +- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 17 ++++++++--------- Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp | 2 +- Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp | 2 +- 5 files changed, 12 insertions(+), 13 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/LinearDiskCache.h b/Source/Core/Common/Src/LinearDiskCache.h index 4c746e9b75..0f4e3f7832 100644 --- a/Source/Core/Common/Src/LinearDiskCache.h +++ b/Source/Core/Common/Src/LinearDiskCache.h @@ -24,7 +24,7 @@ // Increment this every time you change shader generation code. enum { - LINEAR_DISKCACHE_VER = 6975 + LINEAR_DISKCACHE_VER = 6977 }; // On disk format: diff --git a/Source/Core/VideoCommon/Src/BPMemory.h b/Source/Core/VideoCommon/Src/BPMemory.h index 9284674aa1..cd2aa1e4c5 100644 --- a/Source/Core/VideoCommon/Src/BPMemory.h +++ b/Source/Core/VideoCommon/Src/BPMemory.h @@ -793,7 +793,7 @@ union PE_CONTROL { u32 pixel_format : 3; // PIXELFMT_X u32 zformat : 3; // Z Compression for 16bit Z format - u32 zcomploc : 1; // 1: before tex stage + u32 early_ztest : 1; // 1: before tex stage u32 unused : 17; u32 rid : 8; }; diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index cc48276253..36aa4e930d 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -109,7 +109,7 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo uid->values[0] |= bpmem.genMode.numtexgens << 4; // 4 uid->values[0] |= dstAlphaMode << 8; // 2 - bool DepthTextureEnable = (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.zcomploc && bpmem.zmode.testenable && bpmem.zmode.updateenable) || g_ActiveConfig.bEnablePerPixelDepth; + bool DepthTextureEnable = (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.early_ztest && bpmem.zmode.testenable && bpmem.zmode.updateenable) || g_ActiveConfig.bEnablePerPixelDepth; uid->values[0] |= DepthTextureEnable << 10; // 1 @@ -170,7 +170,7 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo if (DepthTextureEnable) { ptr[0] |= bpmem.ztex2.op << 11; // 2 - ptr[0] |= bpmem.zcontrol.zcomploc << 13; // 1 + ptr[0] |= bpmem.zcontrol.early_ztest << 13; // 1 ptr[0] |= bpmem.zmode.testenable << 14; // 1 ptr[0] |= bpmem.zmode.updateenable << 15; // 1 } @@ -528,7 +528,7 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType nIndirectStagesUsed |= 1 << bpmem.tevind[i].bt; } } - DepthTextureEnable = (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.zcomploc && bpmem.zmode.testenable && bpmem.zmode.updateenable) || g_ActiveConfig.bEnablePerPixelDepth ; + DepthTextureEnable = (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.early_ztest && bpmem.zmode.testenable && bpmem.zmode.updateenable) || g_ActiveConfig.bEnablePerPixelDepth ; // Declare samplers if(ApiType != API_D3D11) @@ -769,12 +769,11 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType if (DepthTextureEnable) { // use the texture input of the last texture stage (textemp), hopefully this has been read and is in correct format... - if (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.zcomploc && bpmem.zmode.testenable && bpmem.zmode.updateenable) + // Note: depth textures are disabled if early depth test is enabled + if (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.early_ztest && bpmem.zmode.testenable) { - if (bpmem.ztex2.op == ZTEXTURE_ADD) - WRITE(p, "zCoord = dot(" I_ZBIAS"[0].xyzw, textemp.xyzw) + " I_ZBIAS"[1].w + zCoord;\n"); - else - WRITE(p, "zCoord = dot(" I_ZBIAS"[0].xyzw, textemp.xyzw) + " I_ZBIAS"[1].w;\n"); + WRITE(p, "zCoord = dot(" I_ZBIAS"[0].xyzw, textemp.xyzw) + " I_ZBIAS"[1].w %s;\n", + (bpmem.ztex2.op == ZTEXTURE_ADD) ? "+ zCoord" : ""); // scale to make result from frac correct WRITE(p, "zCoord = zCoord * (16777215.0f/16777216.0f);\n"); @@ -1264,7 +1263,7 @@ static void WriteAlphaTest(char *&p, API_TYPE ApiType,DSTALPHA_MODE dstAlphaMode // depth channel. // 2 - in the next pass disable depth chanel update, but proccess the color data normally // this way is the only CORRECT way to emulate perfectly the zcomplock behaviour - if (!(bpmem.zcontrol.zcomploc && bpmem.zmode.updateenable)) + if (!(bpmem.zcontrol.early_ztest && bpmem.zmode.updateenable)) { WRITE(p, "discard;\n"); if (ApiType != API_D3D11) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp index c212c93601..45c744ee81 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp @@ -125,7 +125,7 @@ inline void Draw(s32 x, s32 y, s32 xi, s32 yi) if (z < 0 || z > 0x00ffffff) return; - if (bpmem.zcontrol.zcomploc && bpmem.zmode.testenable) + if (bpmem.zcontrol.early_ztest && bpmem.zmode.testenable) { // early z if (!EfbInterface::ZCompare(x, y, z)) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp index c67ee53837..eb083df15f 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp @@ -784,7 +784,7 @@ void Tev::Draw() output[BLU_C] = (output[BLU_C] * invFog + fogInt * bpmem.fog.color.b) >> 8; } - if (!bpmem.zcontrol.zcomploc && bpmem.zmode.testenable) + if (!bpmem.zcontrol.early_ztest && bpmem.zmode.testenable) { if (!EfbInterface::ZCompare(Position[0], Position[1], Position[2])) return; -- cgit v1.2.3 From b06f30f8452af075f5929e37f168e54bfd37083a Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Tue, 8 Jan 2013 16:40:15 +0100 Subject: Remove the per pixel depth option. Depth calculations are always done in the pixel shader now. Due to the unpredictability of our zcomploc hacks this commit probably changes the behavior of some games which use zcomploc. --- Source/Core/Common/Src/LinearDiskCache.h | 2 +- Source/Core/DolphinWX/Src/VideoConfigDiag.cpp | 2 - Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 173 ++++++++++-------------- Source/Core/VideoCommon/Src/PixelShaderGen.h | 2 +- Source/Core/VideoCommon/Src/VertexShaderGen.cpp | 1 + Source/Core/VideoCommon/Src/VideoConfig.cpp | 4 - Source/Core/VideoCommon/Src/VideoConfig.h | 1 - 7 files changed, 72 insertions(+), 113 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/LinearDiskCache.h b/Source/Core/Common/Src/LinearDiskCache.h index 0f4e3f7832..f75e80cd4b 100644 --- a/Source/Core/Common/Src/LinearDiskCache.h +++ b/Source/Core/Common/Src/LinearDiskCache.h @@ -24,7 +24,7 @@ // Increment this every time you change shader generation code. enum { - LINEAR_DISKCACHE_VER = 6977 + LINEAR_DISKCACHE_VER = 6978 }; // On disk format: diff --git a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp index f59c7c34c9..d99bd97e8d 100644 --- a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp @@ -84,7 +84,6 @@ wxString af_desc = wxTRANSLATE("Enable anisotropic filtering.\nEnhances visual q wxString aa_desc = wxTRANSLATE("Reduces the amount of aliasing caused by rasterizing 3D graphics.\nThis makes the rendered picture look less blocky.\nHeavily decreases emulation speed and sometimes causes issues.\n\nIf unsure, select None."); wxString scaled_efb_copy_desc = wxTRANSLATE("Greatly increases quality of textures generated using render to texture effects.\nRaising the internal resolution will improve the effect of this setting.\nSlightly decreases performance and possibly causes issues (although unlikely).\n\nIf unsure, leave this checked."); wxString pixel_lighting_desc = wxTRANSLATE("Calculate lighting of 3D graphics per-pixel rather than per vertex.\nDecreases emulation speed by some percent (depending on your GPU).\nThis usually is a safe enhancement, but might cause issues sometimes.\n\nIf unsure, leave this unchecked."); -wxString pixel_depth_desc = wxTRANSLATE("Calculate depth values of 3D graphics per-pixel rather than per vertex.\nIn contrast to pixel lighting (which is merely an enhancement), per-pixel depth calculations are necessary to properly emulate a small number of games.\n\nIf unsure, leave this checked."); wxString force_filtering_desc = wxTRANSLATE("Force texture filtering even if the emulated game explicitly disabled it.\nImproves texture quality slightly but causes glitches in some games.\n\nIf unsure, leave this unchecked."); wxString _3d_vision_desc = wxTRANSLATE("Enable 3D effects via stereoscopy using Nvidia 3D Vision technology if it's supported by your GPU.\nPossibly causes issues.\nRequires fullscreen to work.\n\nIf unsure, leave this unchecked."); wxString internal_res_desc = wxTRANSLATE("Specifies the resolution used to render at. A high resolution will improve visual quality a lot but is also quite heavy on performance and might cause glitches in certain games.\n\"Multiple of 640x528\" is a bit slower than \"Window Size\" but yields less issues. Generally speaking, the lower the internal resolution is, the better your performance will be.\n\nIf unsure, select 640x528."); @@ -493,7 +492,6 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con szr_other->Add(CreateCheckBox(page_hacks, _("Cache Display Lists"), wxGetTranslation(dlc_desc), vconfig.bDlistCachingEnable)); szr_other->Add(CreateCheckBox(page_hacks, _("Disable Fog"), wxGetTranslation(disable_fog_desc), vconfig.bDisableFog)); - szr_other->Add(CreateCheckBox(page_hacks, _("Disable Per-Pixel Depth"), wxGetTranslation(pixel_depth_desc), vconfig.bEnablePerPixelDepth, true)); szr_other->Add(CreateCheckBox(page_hacks, _("Skip Dest. Alpha Pass"), wxGetTranslation(disable_alphapass_desc), vconfig.bDstAlphaPass)); szr_other->Add(CreateCheckBox(page_hacks, _("OpenCL Texture Decoder"), wxGetTranslation(opencl_desc), vconfig.bEnableOpenCL)); szr_other->Add(CreateCheckBox(page_hacks, _("OpenMP Texture Decoder"), wxGetTranslation(omp_desc), vconfig.bOMPDecoder)); diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index 36aa4e930d..dbc65669ff 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -27,7 +27,12 @@ #include "VideoConfig.h" #include "NativeVertexFormat.h" -static int AlphaPreTest(); + +#define ALPHATEST_PASS 2 +#define ALPHATEST_FAIL 1 +#define ALPHATEST_UNDETERMINED 0 + +static unsigned int AlphaPreTest(); static void StageHash(int stage, u32* out) { @@ -109,29 +114,17 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo uid->values[0] |= bpmem.genMode.numtexgens << 4; // 4 uid->values[0] |= dstAlphaMode << 8; // 2 - bool DepthTextureEnable = (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.early_ztest && bpmem.zmode.testenable && bpmem.zmode.updateenable) || g_ActiveConfig.bEnablePerPixelDepth; - - uid->values[0] |= DepthTextureEnable << 10; // 1 - bool enablePL = g_ActiveConfig.bEnablePixelLighting && g_ActiveConfig.backend_info.bSupportsPixelLighting; - uid->values[0] |= enablePL << 11; // 1 + uid->values[0] |= enablePL << 10; // 1 - if (!enablePL) uid->values[0] |= xfregs.numTexGen.numTexGens << 12; // 4 - u32 alphaPreTest = AlphaPreTest()+1; + if (!enablePL) uid->values[0] |= xfregs.numTexGen.numTexGens << 11; // 4 - uid->values[0] |= alphaPreTest << 16; // 2 - - if (alphaPreTest == 1 || (alphaPreTest && !DepthTextureEnable && dstAlphaMode == DSTALPHA_ALPHA_PASS)) - { - // Courtesy of PreAlphaTest, we're done already ;) - // NOTE: The comment header of generated shaders depends on the value of bpmem.genmode.numindstages.. shouldnt really bother about that though. - uid->num_values = 1; - return; - } + u32 alphaPreTest = AlphaPreTest(); + uid->values[0] |= alphaPreTest << 15; // 2 // numtexgens should be <= 8 for (unsigned int i = 0; i < bpmem.genMode.numtexgens; ++i) - uid->values[0] |= xfregs.texMtxInfo[i].projection << (18+i); // 1 + uid->values[0] |= xfregs.texMtxInfo[i].projection << (17+i); // 1 uid->values[1] = bpmem.genMode.numindstages; // 3 u32 indirectStagesUsed = 0; @@ -164,18 +157,17 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo ptr[0] |= bpmem.alphaFunc.comp1 << 3; // 3 ptr[0] |= bpmem.alphaFunc.logic << 6; // 2 - if (alphaPreTest == 0 || alphaPreTest == 2) + if (alphaPreTest != ALPHATEST_FAIL) { ptr[0] |= bpmem.fog.c_proj_fsel.fsel << 8; // 3 - if (DepthTextureEnable) - { - ptr[0] |= bpmem.ztex2.op << 11; // 2 - ptr[0] |= bpmem.zcontrol.early_ztest << 13; // 1 - ptr[0] |= bpmem.zmode.testenable << 14; // 1 - ptr[0] |= bpmem.zmode.updateenable << 15; // 1 - } + ptr[0] |= bpmem.ztex2.op << 11; // 2 +// ptr[0] |= bpmem.zcontrol.early_ztest << 13; // 1 + ptr[0] |= bpmem.zmode.testenable << 14; // 1 } + ptr[0] |= bpmem.zcontrol.early_ztest << 13; // 1 + ptr[0] |= bpmem.zmode.updateenable << 15; // 1 + if (dstAlphaMode != DSTALPHA_ALPHA_PASS) { if (bpmem.fog.c_proj_fsel.fsel != 0) @@ -204,9 +196,8 @@ void GetSafePixelShaderId(PIXELSHADERUIDSAFE *uid, DSTALPHA_MODE dstAlphaMode, u *ptr++ = bpmem.ztex2.hex; // 2 *ptr++ = bpmem.zcontrol.hex; // 3 *ptr++ = bpmem.zmode.hex; // 4 - *ptr++ = g_ActiveConfig.bEnablePerPixelDepth; // 5 - *ptr++ = g_ActiveConfig.bEnablePixelLighting && g_ActiveConfig.backend_info.bSupportsPixelLighting; // 6 - *ptr++ = xfregs.numTexGen.hex; // 7 + *ptr++ = g_ActiveConfig.bEnablePixelLighting && g_ActiveConfig.backend_info.bSupportsPixelLighting; // 5 + *ptr++ = xfregs.numTexGen.hex; // 6 if (g_ActiveConfig.bEnablePixelLighting && g_ActiveConfig.backend_info.bSupportsPixelLighting) { @@ -218,28 +209,28 @@ void GetSafePixelShaderId(PIXELSHADERUIDSAFE *uid, DSTALPHA_MODE dstAlphaMode, u } for (unsigned int i = 0; i < 8; ++i) - *ptr++ = xfregs.texMtxInfo[i].hex; // 8-15 + *ptr++ = xfregs.texMtxInfo[i].hex; // 7-14 for (unsigned int i = 0; i < 16; ++i) - *ptr++ = bpmem.tevind[i].hex; // 16-31 + *ptr++ = bpmem.tevind[i].hex; // 15-30 - *ptr++ = bpmem.tevindref.hex; // 32 + *ptr++ = bpmem.tevindref.hex; // 31 for (int i = 0; i < bpmem.genMode.numtevstages+1; ++i) // up to 16 times { - *ptr++ = bpmem.combiners[i].colorC.hex; // 33+5*i - *ptr++ = bpmem.combiners[i].alphaC.hex; // 34+5*i - *ptr++ = bpmem.tevind[i].hex; // 35+5*i - *ptr++ = bpmem.tevksel[i/2].hex; // 36+5*i - *ptr++ = bpmem.tevorders[i/2].hex; // 37+5*i + *ptr++ = bpmem.combiners[i].colorC.hex; // 32+5*i + *ptr++ = bpmem.combiners[i].alphaC.hex; // 33+5*i + *ptr++ = bpmem.tevind[i].hex; // 34+5*i + *ptr++ = bpmem.tevksel[i/2].hex; // 35+5*i + *ptr++ = bpmem.tevorders[i/2].hex; // 36+5*i } - ptr = &uid->values[113]; + ptr = &uid->values[112]; - *ptr++ = bpmem.alphaFunc.hex; // 113 + *ptr++ = bpmem.alphaFunc.hex; // 112 - *ptr++ = bpmem.fog.c_proj_fsel.hex; // 114 - *ptr++ = bpmem.fogRange.Base.hex; // 115 + *ptr++ = bpmem.fog.c_proj_fsel.hex; // 113 + *ptr++ = bpmem.fogRange.Base.hex; // 114 _assert_((ptr - uid->values) == uid->GetNumValues()); } @@ -481,7 +472,6 @@ static const char *tevIndFmtScale[] = {"255.0f", "31.0f", "15.0f", "7.0f" }; static char swapModeTable[4][5]; static char text[16384]; -static bool DepthTextureEnable; struct RegisterState { @@ -528,7 +518,6 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType nIndirectStagesUsed |= 1 << bpmem.tevind[i].bt; } } - DepthTextureEnable = (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.early_ztest && bpmem.zmode.testenable && bpmem.zmode.updateenable) || g_ActiveConfig.bEnablePerPixelDepth ; // Declare samplers if(ApiType != API_D3D11) @@ -584,14 +573,14 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType { WRITE(p, " out float4 ocol0 : COLOR0,%s%s\n in float4 rawpos : %s,\n", dstAlphaMode == DSTALPHA_DUAL_SOURCE_BLEND ? "\n out float4 ocol1 : COLOR1," : "", - DepthTextureEnable ? "\n out float depth : DEPTH," : "", + "\n out float depth : DEPTH,", ApiType & API_OPENGL ? "WPOS" : ApiType & API_D3D9_SM20 ? "POSITION" : "VPOS"); } else { WRITE(p, " out float4 ocol0 : SV_Target0,%s%s\n in float4 rawpos : SV_Position,\n", dstAlphaMode == DSTALPHA_DUAL_SOURCE_BLEND ? "\n out float4 ocol1 : SV_Target1," : "", - DepthTextureEnable ? "\n out float depth : SV_Depth," : ""); + "\n out float depth : SV_Depth,"); } WRITE(p, " in float4 colors_0 : COLOR0,\n"); @@ -622,32 +611,6 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType } WRITE(p, " ) {\n"); - int Pretest = AlphaPreTest(); - if(Pretest >= 0 && !DepthTextureEnable) - { - if (!Pretest) - { - // alpha test will always fail, so restart the shader and just make it an empty function - WRITE(p, "ocol0 = 0;\n"); - if(DepthTextureEnable) - WRITE(p, "depth = 1.f;\n"); - if(dstAlphaMode == DSTALPHA_DUAL_SOURCE_BLEND) - WRITE(p, "ocol1 = 0;\n"); - WRITE(p, "discard;\n"); - if(ApiType != API_D3D11) - WRITE(p, "return;\n"); - } - else if (dstAlphaMode == DSTALPHA_ALPHA_PASS) - { - WRITE(p, " ocol0 = " I_ALPHA"[0].aaaa;\n"); - } - if(!Pretest || dstAlphaMode == DSTALPHA_ALPHA_PASS) - { - WRITE(p, "}\n"); - return text; - } - } - WRITE(p, " float4 c0 = " I_COLORS"[1], c1 = " I_COLORS"[2], c2 = " I_COLORS"[3], prev = float4(0.0f, 0.0f, 0.0f, 0.0f), textemp = float4(0.0f, 0.0f, 0.0f, 0.0f), rastemp = float4(0.0f, 0.0f, 0.0f, 0.0f), konsttemp = float4(0.0f, 0.0f, 0.0f, 0.0f);\n" " float3 comp16 = float3(1.0f, 255.0f, 0.0f), comp24 = float3(1.0f, 255.0f, 255.0f*255.0f);\n" " float4 alphabump=float4(0.0f,0.0f,0.0f,0.0f);\n" @@ -755,33 +718,27 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType if(RegisterStates[0].AlphaNeedOverflowControl || RegisterStates[0].ColorNeedOverflowControl) WRITE(p, "prev = frac(prev * (255.0f/256.0f)) * (256.0f/255.0f);\n"); - if(Pretest == -1) - { + // TODO: ALPHATEST_FAIL should be handled by disabling color writes in the render state + int Pretest = AlphaPreTest(); + if (Pretest == ALPHATEST_UNDETERMINED) WriteAlphaTest(p, ApiType, dstAlphaMode); - } - if((bpmem.fog.c_proj_fsel.fsel != 0) || DepthTextureEnable) - { - // the screen space depth value = far z + (clip z / clip w) * z range - WRITE(p, "float zCoord = " I_ZBIAS"[1].x + (clipPos.z / clipPos.w) * " I_ZBIAS"[1].y;\n"); - } + // the screen space depth value = far z + (clip z / clip w) * z range + WRITE(p, "float zCoord = " I_ZBIAS"[1].x + (clipPos.z / clipPos.w) * " I_ZBIAS"[1].y;\n"); - if (DepthTextureEnable) + // Note: depth textures are disabled if early depth test is enabled + if (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.early_ztest && bpmem.zmode.testenable) { // use the texture input of the last texture stage (textemp), hopefully this has been read and is in correct format... - // Note: depth textures are disabled if early depth test is enabled - if (bpmem.ztex2.op != ZTEXTURE_DISABLE && !bpmem.zcontrol.early_ztest && bpmem.zmode.testenable) - { - WRITE(p, "zCoord = dot(" I_ZBIAS"[0].xyzw, textemp.xyzw) + " I_ZBIAS"[1].w %s;\n", - (bpmem.ztex2.op == ZTEXTURE_ADD) ? "+ zCoord" : ""); + WRITE(p, "zCoord = dot(" I_ZBIAS"[0].xyzw, textemp.xyzw) + " I_ZBIAS"[1].w %s;\n", + (bpmem.ztex2.op == ZTEXTURE_ADD) ? "+ zCoord" : ""); - // scale to make result from frac correct - WRITE(p, "zCoord = zCoord * (16777215.0f/16777216.0f);\n"); - WRITE(p, "zCoord = frac(zCoord);\n"); - WRITE(p, "zCoord = zCoord * (16777216.0f/16777215.0f);\n"); - } - WRITE(p, "depth = zCoord;\n"); + // scale to make result from frac correct + WRITE(p, "zCoord = zCoord * (16777215.0f/16777216.0f);\n"); + WRITE(p, "zCoord = frac(zCoord);\n"); + WRITE(p, "zCoord = zCoord * (16777216.0f/16777215.0f);\n"); } + WRITE(p, "depth = zCoord;\n"); if (dstAlphaMode == DSTALPHA_ALPHA_PASS) WRITE(p, " ocol0 = float4(prev.rgb, " I_ALPHA"[0].a);\n"); @@ -1191,37 +1148,46 @@ static const char *tevAlphaFunclogicTable[] = " != ", // xor " == " // xnor }; -static int AlphaPreTest() + +static unsigned int AlphaPreTest() { u32 op = bpmem.alphaFunc.logic; - u32 comp[2] = {bpmem.alphaFunc.comp0, bpmem.alphaFunc.comp1}; + u32 comp[2] = { bpmem.alphaFunc.comp0, bpmem.alphaFunc.comp1 }; // First kill all the simple cases switch(op) { case 0: // AND - if (comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_ALWAYS) return true; - if (comp[0] == ALPHACMP_NEVER || comp[1] == ALPHACMP_NEVER) return false; + if (comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_ALWAYS) + return ALPHATEST_PASS; + if (comp[0] == ALPHACMP_NEVER || comp[1] == ALPHACMP_NEVER) + return ALPHATEST_FAIL; break; + case 1: // OR - if (comp[0] == ALPHACMP_ALWAYS || comp[1] == ALPHACMP_ALWAYS) return true; - if (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_NEVER)return false; + if (comp[0] == ALPHACMP_ALWAYS || comp[1] == ALPHACMP_ALWAYS) + return ALPHATEST_PASS; + if (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_NEVER) + return ALPHATEST_FAIL; break; + case 2: // XOR if ((comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_NEVER) || (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_ALWAYS)) - return true; + return ALPHATEST_PASS; if ((comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_ALWAYS) || (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_NEVER)) - return false; + return ALPHATEST_FAIL; break; + case 3: // XNOR if ((comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_NEVER) || (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_ALWAYS)) - return false; + return ALPHATEST_FAIL; if ((comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_ALWAYS) || (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_NEVER)) - return true; + return ALPHATEST_PASS; break; + default: PanicAlert("bad logic for alpha test? %08x", op); } - return -1; + return ALPHATEST_UNDETERMINED; } @@ -1248,8 +1214,7 @@ static void WriteAlphaTest(char *&p, API_TYPE ApiType,DSTALPHA_MODE dstAlphaMode WRITE(p, "ocol0 = 0;\n"); if (dstAlphaMode == DSTALPHA_DUAL_SOURCE_BLEND) WRITE(p, "ocol1 = 0;\n"); - if (DepthTextureEnable) - WRITE(p, "depth = 1.f;\n"); + WRITE(p, "depth = 1.f;\n"); // HAXX: zcomploc is a way to control whether depth test is done before // or after texturing and alpha test. PC GPU does depth test before texturing ONLY if depth value is diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.h b/Source/Core/VideoCommon/Src/PixelShaderGen.h index 31242a916e..12a499a472 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.h +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.h @@ -45,7 +45,7 @@ #define C_PMATERIALS (C_PLIGHTS + 40) #define C_PENVCONST_END (C_PMATERIALS + 4) #define PIXELSHADERUID_MAX_VALUES 70 -#define PIXELSHADERUID_MAX_VALUES_SAFE 120 +#define PIXELSHADERUID_MAX_VALUES_SAFE 119 // DO NOT make anything in this class virtual. template diff --git a/Source/Core/VideoCommon/Src/VertexShaderGen.cpp b/Source/Core/VideoCommon/Src/VertexShaderGen.cpp index 07ace04b97..cad117c2c8 100644 --- a/Source/Core/VideoCommon/Src/VertexShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/VertexShaderGen.cpp @@ -465,6 +465,7 @@ const char *GenerateVertexShaderCode(u32 components, API_TYPE api_type) //write the true depth value, if the game uses depth textures pixel shaders will override with the correct values //if not early z culling will improve speed + // TODO: Can probably be dropped? if (is_d3d) { WRITE(p, "o.pos.z = " I_DEPTHPARAMS".x * o.pos.w + o.pos.z * " I_DEPTHPARAMS".y;\n"); diff --git a/Source/Core/VideoCommon/Src/VideoConfig.cpp b/Source/Core/VideoCommon/Src/VideoConfig.cpp index c702b577e2..7418d60741 100644 --- a/Source/Core/VideoCommon/Src/VideoConfig.cpp +++ b/Source/Core/VideoCommon/Src/VideoConfig.cpp @@ -75,7 +75,6 @@ void VideoConfig::Load(const char *ini_file) iniFile.Get("Settings", "AnaglyphStereoSeparation", &iAnaglyphStereoSeparation, 200); iniFile.Get("Settings", "AnaglyphFocalAngle", &iAnaglyphFocalAngle, 0); iniFile.Get("Settings", "EnablePixelLighting", &bEnablePixelLighting, 0); - iniFile.Get("Settings", "EnablePerPixelDepth", &bEnablePerPixelDepth, 0); iniFile.Get("Settings", "MSAA", &iMultisampleMode, 0); iniFile.Get("Settings", "EFBScale", &iEFBScale, 2); // native @@ -134,7 +133,6 @@ void VideoConfig::GameIniLoad(const char *ini_file) iniFile.GetIfExists("Video_Settings", "AnaglyphStereoSeparation", &iAnaglyphStereoSeparation); iniFile.GetIfExists("Video_Settings", "AnaglyphFocalAngle", &iAnaglyphFocalAngle); iniFile.GetIfExists("Video_Settings", "EnablePixelLighting", &bEnablePixelLighting); - iniFile.GetIfExists("Video_Settings", "EnablePerPixelDepth", &bEnablePerPixelDepth); iniFile.GetIfExists("Video_Settings", "MSAA", &iMultisampleMode); iniFile.GetIfExists("Video_Settings", "EFBScale", &iEFBScale); // integral iniFile.GetIfExists("Video_Settings", "DstAlphaPass", &bDstAlphaPass); @@ -203,7 +201,6 @@ void VideoConfig::Save(const char *ini_file) iniFile.Set("Settings", "AnaglyphStereoSeparation", iAnaglyphStereoSeparation); iniFile.Set("Settings", "AnaglyphFocalAngle", iAnaglyphFocalAngle); iniFile.Set("Settings", "EnablePixelLighting", bEnablePixelLighting); - iniFile.Set("Settings", "EnablePerPixelDepth", bEnablePerPixelDepth); iniFile.Set("Settings", "ShowEFBCopyRegions", bShowEFBCopyRegions); @@ -269,7 +266,6 @@ void VideoConfig::GameIniSave(const char* default_ini, const char* game_ini) SET_IF_DIFFERS("Video_Settings", "AnaglyphStereoSeparation", iAnaglyphStereoSeparation); SET_IF_DIFFERS("Video_Settings", "AnaglyphFocalAngle", iAnaglyphFocalAngle); SET_IF_DIFFERS("Video_Settings", "EnablePixelLighting", bEnablePixelLighting); - SET_IF_DIFFERS("Video_Settings", "EnablePerPixelDepth", bEnablePerPixelDepth); SET_IF_DIFFERS("Video_Settings", "MSAA", iMultisampleMode); SET_IF_DIFFERS("Video_Settings", "EFBScale", iEFBScale); // integral SET_IF_DIFFERS("Video_Settings", "DstAlphaPass", bDstAlphaPass); diff --git a/Source/Core/VideoCommon/Src/VideoConfig.h b/Source/Core/VideoCommon/Src/VideoConfig.h index fe883e0dbe..4364bea6ea 100644 --- a/Source/Core/VideoCommon/Src/VideoConfig.h +++ b/Source/Core/VideoCommon/Src/VideoConfig.h @@ -133,7 +133,6 @@ struct VideoConfig bool bZTPSpeedHack; // The Legend of Zelda: Twilight Princess bool bUseBBox; bool bEnablePixelLighting; - bool bEnablePerPixelDepth; int iLog; // CONF_ bits int iSaveTargetId; // TODO: Should be dropped -- cgit v1.2.3 From c80f6e8b84cd98120ad55a6830a68039ab6a2a48 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Tue, 8 Jan 2013 16:51:01 +0100 Subject: Reword a comment about early_ztest a bit. --- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index dbc65669ff..e1507e8389 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -1216,18 +1216,16 @@ static void WriteAlphaTest(char *&p, API_TYPE ApiType,DSTALPHA_MODE dstAlphaMode WRITE(p, "ocol1 = 0;\n"); WRITE(p, "depth = 1.f;\n"); - // HAXX: zcomploc is a way to control whether depth test is done before - // or after texturing and alpha test. PC GPU does depth test before texturing ONLY if depth value is - // not updated during shader execution. + // HAXX: zcomploc (aka early_ztest) is a way to control whether depth test is done before + // or after texturing and alpha test. PC GPUs have no way to support this + // feature properly as of 2012: depth buffer and depth test are not + // programmable and the depth test is always done after texturing. + // Most importantly, PC GPUs do not allow writing to the z buffer without + // writing a color value (unless color writing is disabled altogether). // We implement "depth test before texturing" by discarding the fragment // when the alpha test fail. This is not a correct implementation because - // even if the depth test fails the fragment could be alpha blended. - // this implemnetation is a trick to keep speed. - // the correct, but slow, way to implement a correct zComploc is : - // 1 - if zcomplock is enebled make a first pass, with color channel write disabled updating only - // depth channel. - // 2 - in the next pass disable depth chanel update, but proccess the color data normally - // this way is the only CORRECT way to emulate perfectly the zcomplock behaviour + // even if the depth test fails the fragment could be alpha blended, but + // we don't have a choice. if (!(bpmem.zcontrol.early_ztest && bpmem.zmode.updateenable)) { WRITE(p, "discard;\n"); @@ -1236,7 +1234,6 @@ static void WriteAlphaTest(char *&p, API_TYPE ApiType,DSTALPHA_MODE dstAlphaMode } WRITE(p, "}\n"); - } static const char *tevFogFuncsTable[] = -- cgit v1.2.3 From d26bcb0847ad27235020ecaf749154d388f0e162 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Tue, 8 Jan 2013 17:18:45 +0100 Subject: Move alpha pretest to BPMemory.h and rename a bunch of alpha testing related stuff --- Source/Core/VideoCommon/Src/BPMemory.cpp | 35 +++++++++++ Source/Core/VideoCommon/Src/BPMemory.h | 13 +++- Source/Core/VideoCommon/Src/BPStructs.cpp | 6 +- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 70 ++++------------------ Source/Core/VideoCommon/Src/PixelShaderManager.cpp | 2 +- Source/Core/VideoCommon/Src/PixelShaderManager.h | 2 +- Source/Core/VideoCommon/Src/VertexManagerBase.cpp | 2 +- .../Plugins/Plugin_VideoOGL/Src/VertexManager.cpp | 4 +- Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp | 6 +- 9 files changed, 68 insertions(+), 72 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/BPMemory.cpp b/Source/Core/VideoCommon/Src/BPMemory.cpp index c452b238b6..ca0e748cb0 100644 --- a/Source/Core/VideoCommon/Src/BPMemory.cpp +++ b/Source/Core/VideoCommon/Src/BPMemory.cpp @@ -151,3 +151,38 @@ void GetBPRegInfo(const u8* data, char* name, size_t name_size, char* desc, size #undef SET_REG_NAME } } + +AlphaTest::TEST_RESULT AlphaTest::TestResult() +{ + switch(logic) + { + case 0: // AND + if (comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_ALWAYS) + return PASS; + if (comp0 == ALPHACMP_NEVER || comp1 == ALPHACMP_NEVER) + return FAIL; + break; + + case 1: // OR + if (comp0 == ALPHACMP_ALWAYS || comp1 == ALPHACMP_ALWAYS) + return PASS; + if (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_NEVER) + return FAIL; + break; + + case 2: // XOR + if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_NEVER) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_ALWAYS)) + return PASS; + if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_ALWAYS) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_NEVER)) + return FAIL; + break; + + case 3: // XNOR + if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_NEVER) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_ALWAYS)) + return FAIL; + if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_ALWAYS) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_NEVER)) + return PASS; + break; + } + return UNDETERMINED; +} diff --git a/Source/Core/VideoCommon/Src/BPMemory.h b/Source/Core/VideoCommon/Src/BPMemory.h index cd2aa1e4c5..85e95f4f8b 100644 --- a/Source/Core/VideoCommon/Src/BPMemory.h +++ b/Source/Core/VideoCommon/Src/BPMemory.h @@ -857,7 +857,7 @@ union TevKSel int getKA(int i) {return i?kasel1:kasel0;} }; -union AlphaFunc +union AlphaTest { struct { @@ -868,6 +868,15 @@ union AlphaFunc u32 logic : 2; }; u32 hex; + + enum TEST_RESULT + { + UNDETERMINED = 0, + FAIL = 1, + PASS = 2, + }; + + TEST_RESULT TestResult(); }; union UPE_Copy @@ -981,7 +990,7 @@ struct BPMemory TevReg tevregs[4]; //0xE0 FogRangeParams fogRange; FogParams fog; //0xEE,0xEF,0xF0,0xF1,0xF2 - AlphaFunc alphaFunc; //0xF3 + AlphaTest alpha_test; //0xF3 ZTex1 ztex1; //0xf4,0xf5 ZTex2 ztex2; TevKSel tevksel[8];//0xf6,0xf7,f8,f9,fa,fb,fc,fd diff --git a/Source/Core/VideoCommon/Src/BPStructs.cpp b/Source/Core/VideoCommon/Src/BPStructs.cpp index 0bde9cc613..88556cbee8 100644 --- a/Source/Core/VideoCommon/Src/BPStructs.cpp +++ b/Source/Core/VideoCommon/Src/BPStructs.cpp @@ -357,9 +357,9 @@ void BPWritten(const BPCmd& bp) PixelShaderManager::SetFogColorChanged(); break; case BPMEM_ALPHACOMPARE: // Compare Alpha Values - PRIM_LOG("alphacmp: ref0=%d, ref1=%d, comp0=%d, comp1=%d, logic=%d", bpmem.alphaFunc.ref0, - bpmem.alphaFunc.ref1, bpmem.alphaFunc.comp0, bpmem.alphaFunc.comp1, bpmem.alphaFunc.logic); - PixelShaderManager::SetAlpha(bpmem.alphaFunc); + PRIM_LOG("alphacmp: ref0=%d, ref1=%d, comp0=%d, comp1=%d, logic=%d", bpmem.alpha_test.ref0, + bpmem.alpha_test.ref1, bpmem.alpha_test.comp0, bpmem.alpha_test.comp1, bpmem.alpha_test.logic); + PixelShaderManager::SetAlpha(bpmem.alpha_test); break; case BPMEM_BIAS: // BIAS PRIM_LOG("ztex bias=0x%x", bpmem.ztex1.bias); diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index e1507e8389..b408b1bceb 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -28,12 +28,6 @@ #include "NativeVertexFormat.h" -#define ALPHATEST_PASS 2 -#define ALPHATEST_FAIL 1 -#define ALPHATEST_UNDETERMINED 0 - -static unsigned int AlphaPreTest(); - static void StageHash(int stage, u32* out) { out[0] |= bpmem.combiners[stage].colorC.hex & 0xFFFFFF; // 24 @@ -119,7 +113,7 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo if (!enablePL) uid->values[0] |= xfregs.numTexGen.numTexGens << 11; // 4 - u32 alphaPreTest = AlphaPreTest(); + AlphaTest::TEST_RESULT alphaPreTest = bpmem.alpha_test.TestResult(); uid->values[0] |= alphaPreTest << 15; // 2 // numtexgens should be <= 8 @@ -153,11 +147,11 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo ptr += 4; // max: ptr = &uid->values[66] } - ptr[0] |= bpmem.alphaFunc.comp0; // 3 - ptr[0] |= bpmem.alphaFunc.comp1 << 3; // 3 - ptr[0] |= bpmem.alphaFunc.logic << 6; // 2 + ptr[0] |= bpmem.alpha_test.comp0; // 3 + ptr[0] |= bpmem.alpha_test.comp1 << 3; // 3 + ptr[0] |= bpmem.alpha_test.logic << 6; // 2 - if (alphaPreTest != ALPHATEST_FAIL) + if (alphaPreTest != AlphaTest::FAIL) { ptr[0] |= bpmem.fog.c_proj_fsel.fsel << 8; // 3 ptr[0] |= bpmem.ztex2.op << 11; // 2 @@ -227,7 +221,7 @@ void GetSafePixelShaderId(PIXELSHADERUIDSAFE *uid, DSTALPHA_MODE dstAlphaMode, u ptr = &uid->values[112]; - *ptr++ = bpmem.alphaFunc.hex; // 112 + *ptr++ = bpmem.alpha_test.hex; // 112 *ptr++ = bpmem.fog.c_proj_fsel.hex; // 113 *ptr++ = bpmem.fogRange.Base.hex; // 114 @@ -719,8 +713,8 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType WRITE(p, "prev = frac(prev * (255.0f/256.0f)) * (256.0f/255.0f);\n"); // TODO: ALPHATEST_FAIL should be handled by disabling color writes in the render state - int Pretest = AlphaPreTest(); - if (Pretest == ALPHATEST_UNDETERMINED) + AlphaTest::TEST_RESULT Pretest = bpmem.alpha_test.TestResult(); + if (Pretest == AlphaTest::UNDETERMINED) WriteAlphaTest(p, ApiType, dstAlphaMode); // the screen space depth value = far z + (clip z / clip w) * z range @@ -1149,48 +1143,6 @@ static const char *tevAlphaFunclogicTable[] = " == " // xnor }; -static unsigned int AlphaPreTest() -{ - u32 op = bpmem.alphaFunc.logic; - u32 comp[2] = { bpmem.alphaFunc.comp0, bpmem.alphaFunc.comp1 }; - - // First kill all the simple cases - switch(op) - { - case 0: // AND - if (comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_ALWAYS) - return ALPHATEST_PASS; - if (comp[0] == ALPHACMP_NEVER || comp[1] == ALPHACMP_NEVER) - return ALPHATEST_FAIL; - break; - - case 1: // OR - if (comp[0] == ALPHACMP_ALWAYS || comp[1] == ALPHACMP_ALWAYS) - return ALPHATEST_PASS; - if (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_NEVER) - return ALPHATEST_FAIL; - break; - - case 2: // XOR - if ((comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_NEVER) || (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_ALWAYS)) - return ALPHATEST_PASS; - if ((comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_ALWAYS) || (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_NEVER)) - return ALPHATEST_FAIL; - break; - - case 3: // XNOR - if ((comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_NEVER) || (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_ALWAYS)) - return ALPHATEST_FAIL; - if ((comp[0] == ALPHACMP_ALWAYS && comp[1] == ALPHACMP_ALWAYS) || (comp[0] == ALPHACMP_NEVER && comp[1] == ALPHACMP_NEVER)) - return ALPHATEST_PASS; - break; - - default: PanicAlert("bad logic for alpha test? %08x", op); - } - return ALPHATEST_UNDETERMINED; -} - - static void WriteAlphaTest(char *&p, API_TYPE ApiType,DSTALPHA_MODE dstAlphaMode) { static const char *alphaRef[2] = @@ -1202,12 +1154,12 @@ static void WriteAlphaTest(char *&p, API_TYPE ApiType,DSTALPHA_MODE dstAlphaMode // using discard then return works the same in cg and dx9 but not in dx11 WRITE(p, "if(!( "); - int compindex = bpmem.alphaFunc.comp0 % 8; + int compindex = bpmem.alpha_test.comp0; WRITE(p, tevAlphaFuncsTable[compindex],alphaRef[0]);//lookup the first component from the alpha function table - WRITE(p, "%s", tevAlphaFunclogicTable[bpmem.alphaFunc.logic % 4]);//lookup the logic op + WRITE(p, "%s", tevAlphaFunclogicTable[bpmem.alpha_test.logic]);//lookup the logic op - compindex = bpmem.alphaFunc.comp1 % 8; + compindex = bpmem.alpha_test.comp1; WRITE(p, tevAlphaFuncsTable[compindex],alphaRef[1]);//lookup the second component from the alpha function table WRITE(p, ")) {\n"); diff --git a/Source/Core/VideoCommon/Src/PixelShaderManager.cpp b/Source/Core/VideoCommon/Src/PixelShaderManager.cpp index 258ec04413..eaaf99fbc8 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderManager.cpp @@ -373,7 +373,7 @@ void PixelShaderManager::SetColorChanged(int type, int num, bool high) PRIM_LOG("pixel %scolor%d: %f %f %f %f\n", type?"k":"", num, pf[0], pf[1], pf[2], pf[3]); } -void PixelShaderManager::SetAlpha(const AlphaFunc& alpha) +void PixelShaderManager::SetAlpha(const AlphaTest& alpha) { if ((alpha.hex & 0xffff) != lastAlpha) { diff --git a/Source/Core/VideoCommon/Src/PixelShaderManager.h b/Source/Core/VideoCommon/Src/PixelShaderManager.h index a336287a6f..12d749c871 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderManager.h +++ b/Source/Core/VideoCommon/Src/PixelShaderManager.h @@ -38,7 +38,7 @@ public: // constant management, should be called after memory is committed static void SetColorChanged(int type, int index, bool high); - static void SetAlpha(const AlphaFunc& alpha); + static void SetAlpha(const AlphaTest& alpha); static void SetDestAlpha(const ConstantAlpha& alpha); static void SetTexDims(int texmapid, u32 width, u32 height, u32 wraps, u32 wrapt); static void SetZTextureBias(u32 bias); diff --git a/Source/Core/VideoCommon/Src/VertexManagerBase.cpp b/Source/Core/VideoCommon/Src/VertexManagerBase.cpp index 5be72e4fcf..cd5a01c6b3 100644 --- a/Source/Core/VideoCommon/Src/VertexManagerBase.cpp +++ b/Source/Core/VideoCommon/Src/VertexManagerBase.cpp @@ -202,7 +202,7 @@ void VertexManager::Flush() } PRIM_LOG("pixel: tev=%d, ind=%d, texgen=%d, dstalpha=%d, alphafunc=0x%x", bpmem.genMode.numtevstages+1, bpmem.genMode.numindstages, - bpmem.genMode.numtexgens, (u32)bpmem.dstalpha.enable, (bpmem.alphaFunc.hex>>16)&0xff); + bpmem.genMode.numtexgens, (u32)bpmem.dstalpha.enable, (bpmem.alpha_test.hex>>16)&0xff); #endif u32 usedtextures = 0; diff --git a/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp index 501c4969e5..ce33247d7c 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp @@ -128,8 +128,8 @@ void VertexManager::vFlush() xfregs.postMtxInfo[i].index, xfregs.postMtxInfo[i].normalize); } - PRIM_LOG("pixel: tev=%d, ind=%d, texgen=%d, dstalpha=%d, alphafunc=0x%x", bpmem.genMode.numtevstages+1, bpmem.genMode.numindstages, - bpmem.genMode.numtexgens, (u32)bpmem.dstalpha.enable, (bpmem.alphaFunc.hex>>16)&0xff); + PRIM_LOG("pixel: tev=%d, ind=%d, texgen=%d, dstalpha=%d, alphatest=0x%x", bpmem.genMode.numtevstages+1, bpmem.genMode.numindstages, + bpmem.genMode.numtexgens, (u32)bpmem.dstalpha.enable, (bpmem.alpha_test.hex>>16)&0xff); #endif (void)GL_REPORT_ERROR(); diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp index eb083df15f..b10f5a2676 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp @@ -433,10 +433,10 @@ static bool AlphaCompare(int alpha, int ref, int comp) static bool AlphaTest(int alpha) { - bool comp0 = AlphaCompare(alpha, bpmem.alphaFunc.ref0, bpmem.alphaFunc.comp0); - bool comp1 = AlphaCompare(alpha, bpmem.alphaFunc.ref1, bpmem.alphaFunc.comp1); + bool comp0 = AlphaCompare(alpha, bpmem.alpha_test.ref0, bpmem.alpha_test.comp0); + bool comp1 = AlphaCompare(alpha, bpmem.alpha_test.ref1, bpmem.alpha_test.comp1); - switch (bpmem.alphaFunc.logic) { + switch (bpmem.alpha_test.logic) { case 0: return comp0 && comp1; // and case 1: return comp0 || comp1; // or case 2: return comp0 ^ comp1; // xor -- cgit v1.2.3 From be706a397720d94729518595339211ebc15be588 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Tue, 8 Jan 2013 17:23:01 +0100 Subject: Disable color writing when alpha test always fails. --- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 1 - Source/Plugins/Plugin_VideoDX11/Src/Render.cpp | 11 +++++++---- Source/Plugins/Plugin_VideoDX9/Src/Render.cpp | 11 +++++++---- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 11 +++++++---- 4 files changed, 21 insertions(+), 13 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index b408b1bceb..88cf77631f 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -712,7 +712,6 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType if(RegisterStates[0].AlphaNeedOverflowControl || RegisterStates[0].ColorNeedOverflowControl) WRITE(p, "prev = frac(prev * (255.0f/256.0f)) * (256.0f/255.0f);\n"); - // TODO: ALPHATEST_FAIL should be handled by disabling color writes in the render state AlphaTest::TEST_RESULT Pretest = bpmem.alpha_test.TestResult(); if (Pretest == AlphaTest::UNDETERMINED) WriteAlphaTest(p, ApiType, dstAlphaMode); diff --git a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp index 2955bf6a6d..44eaaf5dcf 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp @@ -471,10 +471,13 @@ void Renderer::SetColorMask() { // Only enable alpha channel if it's supported by the current EFB format UINT8 color_mask = 0; - if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) - color_mask = D3D11_COLOR_WRITE_ENABLE_ALPHA; - if (bpmem.blendmode.colorupdate) - color_mask |= D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN | D3D11_COLOR_WRITE_ENABLE_BLUE; + if (bpmem.alpha_test.TestResult() != AlphaTest::FAIL) + { + if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) + color_mask = D3D11_COLOR_WRITE_ENABLE_ALPHA; + if (bpmem.blendmode.colorupdate) + color_mask |= D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN | D3D11_COLOR_WRITE_ENABLE_BLUE; + } gx_state.blenddc.RenderTarget[0].RenderTargetWriteMask = color_mask; } diff --git a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp index 1e37ff5456..19692e25d3 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp @@ -428,10 +428,13 @@ void Renderer::SetColorMask() { // Only enable alpha channel if it's supported by the current EFB format DWORD color_mask = 0; - if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) - color_mask = D3DCOLORWRITEENABLE_ALPHA; - if (bpmem.blendmode.colorupdate) - color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + if (bpmem.alpha_test.TestResult() != AlphaTest::FAIL) + { + if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) + color_mask = D3DCOLORWRITEENABLE_ALPHA; + if (bpmem.blendmode.colorupdate) + color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + } D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index 9053b0f164..e3c35a6511 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -646,10 +646,13 @@ void Renderer::SetColorMask() { // Only enable alpha channel if it's supported by the current EFB format GLenum ColorMask = GL_FALSE, AlphaMask = GL_FALSE; - if (bpmem.blendmode.colorupdate) - ColorMask = GL_TRUE; - if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) - AlphaMask = GL_TRUE; + if (bpmem.alpha_test.TestResult() != AlphaTest::FAIL) + { + if (bpmem.blendmode.colorupdate) + ColorMask = GL_TRUE; + if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) + AlphaMask = GL_TRUE; + } glColorMask(ColorMask, ColorMask, ColorMask, AlphaMask); } -- cgit v1.2.3 From 4925a28f94d8a9925a85824ec89513c6774bdc30 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Tue, 8 Jan 2013 17:29:16 +0100 Subject: PixelShaderGen: Shader uid maintainance --- Source/Core/Common/Src/LinearDiskCache.h | 2 +- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/LinearDiskCache.h b/Source/Core/Common/Src/LinearDiskCache.h index f75e80cd4b..9755c996bd 100644 --- a/Source/Core/Common/Src/LinearDiskCache.h +++ b/Source/Core/Common/Src/LinearDiskCache.h @@ -24,7 +24,7 @@ // Increment this every time you change shader generation code. enum { - LINEAR_DISKCACHE_VER = 6978 + LINEAR_DISKCACHE_VER = 6979 }; // On disk format: diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index 88cf77631f..fdb5f21a51 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -151,23 +151,17 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo ptr[0] |= bpmem.alpha_test.comp1 << 3; // 3 ptr[0] |= bpmem.alpha_test.logic << 6; // 2 - if (alphaPreTest != AlphaTest::FAIL) - { - ptr[0] |= bpmem.fog.c_proj_fsel.fsel << 8; // 3 - ptr[0] |= bpmem.ztex2.op << 11; // 2 -// ptr[0] |= bpmem.zcontrol.early_ztest << 13; // 1 - ptr[0] |= bpmem.zmode.testenable << 14; // 1 - } - - ptr[0] |= bpmem.zcontrol.early_ztest << 13; // 1 - ptr[0] |= bpmem.zmode.updateenable << 15; // 1 + ptr[0] |= bpmem.ztex2.op << 8; // 2 + ptr[0] |= bpmem.zcontrol.early_ztest << 10; // 1 + ptr[0] |= bpmem.zmode.testenable << 11; // 1 + ptr[0] |= bpmem.zmode.updateenable << 12; // 1 if (dstAlphaMode != DSTALPHA_ALPHA_PASS) { if (bpmem.fog.c_proj_fsel.fsel != 0) { - ptr[0] |= bpmem.fog.c_proj_fsel.proj << 16; // 1 - ptr[0] |= bpmem.fogRange.Base.Enabled << 17; // 1 + ptr[0] |= bpmem.fog.c_proj_fsel.proj << 13; // 1 + ptr[0] |= bpmem.fogRange.Base.Enabled << 14; // 1 } } -- cgit v1.2.3 From d3882771aadd1ab1813f383a14af66819e01e68b Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Tue, 8 Jan 2013 18:27:31 +0100 Subject: Fix an assert that had been wrong for ages, apparently. --- Source/Core/VideoCommon/Src/PixelShaderGen.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.h b/Source/Core/VideoCommon/Src/PixelShaderGen.h index 12a499a472..9c8bfce256 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.h +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.h @@ -45,7 +45,7 @@ #define C_PMATERIALS (C_PLIGHTS + 40) #define C_PENVCONST_END (C_PMATERIALS + 4) #define PIXELSHADERUID_MAX_VALUES 70 -#define PIXELSHADERUID_MAX_VALUES_SAFE 119 +#define PIXELSHADERUID_MAX_VALUES_SAFE 115 // DO NOT make anything in this class virtual. template -- cgit v1.2.3 From e204a6e015b2f835d7f00d7e0f96cd4fd813a10b Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Tue, 8 Jan 2013 18:33:58 +0100 Subject: Add some TODOs. --- .../Core/Core/Src/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp | 3 ++- Source/Plugins/Plugin_VideoDX9/Src/Render.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp index bc7e37b533..5a199b56c8 100644 --- a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp +++ b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_SystemRegisters.cpp @@ -293,7 +293,8 @@ void Interpreter::mfspr(UGeckoInstruction _inst) case SPR_WPAR: { - // If wpar_empty ever is false, Paper Mario hangs. Strange. + // TODO: If wpar_empty ever is false, Paper Mario hangs. Strange. + // Maybe WPAR is automatically flushed after a certain amount of time? bool wpar_empty = true; //GPFifo::IsEmpty(); if (!wpar_empty) rSPR(iIndex) |= 1; // BNE = buffer not empty diff --git a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp index 19692e25d3..f750313642 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp @@ -1201,6 +1201,7 @@ void Renderer::ApplyState(bool bUseDstAlpha) { if (bUseDstAlpha) { + // TODO: WTF is this crap? We're enabling color writing regardless of the actual GPU state here... D3D::ChangeRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA); D3D::ChangeRenderState(D3DRS_ALPHABLENDENABLE, false); if(bpmem.zmode.testenable && bpmem.zmode.updateenable) -- cgit v1.2.3 From 815fd197d3e292e869b85c5475ff08863b04a8de Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Tue, 8 Jan 2013 21:27:04 +0100 Subject: Fix a potential memleak in FifoPlayerDlg --- Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp index b5caf139d6..494931f959 100644 --- a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp +++ b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp @@ -470,6 +470,7 @@ void FifoPlayerDlg::OnBeginSearch(wxCommandEvent& event) if (obj_idx == -1) { m_numResultsText->SetLabel(_("Invalid search parameters (no object selected)")); + delete[] search_val; return; } start_ptr = &fifo_frame.fifoData[frame.objectStarts[obj_idx]]; -- cgit v1.2.3 From 2844708c2d5d350c4e8b9d203964dfbd259f7762 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Wed, 9 Jan 2013 09:22:36 +1300 Subject: Fix reference to deleted object bug. This should fix channels not loading from sysmenu anymore. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp | 1 + Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp | 3 ++- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.cpp | 10 +++++++--- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h | 1 + 4 files changed, 11 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp index 5e23819d7b..49684ef5af 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp @@ -795,6 +795,7 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress) std::string tContentFile(m_ContentFile.c_str()); WII_IPC_HLE_Interface::Reset(true); WII_IPC_HLE_Interface::Init(); + s_Usb = GetUsbPointer(); for (unsigned int i = 0; i < s_Usb->m_WiiMotes.size(); i++) { if (wiiMoteConnected[i]) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp index 29e3c64a7c..33474af8c7 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp @@ -38,7 +38,7 @@ CWII_IPC_HLE_Device_usb_oh1_57e_305::CWII_IPC_HLE_Device_usb_oh1_57e_305(u32 _De // Activate only first Wiimote by default _conf_pads BT_DINF; - + SetUsbPointer(this); if (!SConfig::GetInstance().m_SYSCONF->GetArrayData("BT.DINF", (u8*)&BT_DINF, sizeof(_conf_pads))) { PanicAlertT("Trying to read from invalid SYSCONF\nWiimote bt ids are not available"); @@ -100,6 +100,7 @@ CWII_IPC_HLE_Device_usb_oh1_57e_305::CWII_IPC_HLE_Device_usb_oh1_57e_305(u32 _De CWII_IPC_HLE_Device_usb_oh1_57e_305::~CWII_IPC_HLE_Device_usb_oh1_57e_305() { m_WiiMotes.clear(); + SetUsbPointer(NULL); } void CWII_IPC_HLE_Device_usb_oh1_57e_305::DoState(PointerWrap &p) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.cpp index e59e1b3208..6e06f60dd6 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.cpp @@ -27,13 +27,19 @@ #include "l2cap.h" // Local #include "WiiMote_HID_Attr.h" -static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb; +static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = NULL; CWII_IPC_HLE_Device_usb_oh1_57e_305* GetUsbPointer() { return s_Usb; } +void SetUsbPointer(CWII_IPC_HLE_Device_usb_oh1_57e_305* ptr) +{ + s_Usb = ptr; +} + + CWII_IPC_HLE_WiiMote::CWII_IPC_HLE_WiiMote(CWII_IPC_HLE_Device_usb_oh1_57e_305* _pHost, int _Number, bdaddr_t _BD, bool ready) : m_HIDControlChannel_Connected(false) , m_HIDControlChannel_ConnectedWait(false) @@ -49,8 +55,6 @@ CWII_IPC_HLE_WiiMote::CWII_IPC_HLE_WiiMote(CWII_IPC_HLE_Device_usb_oh1_57e_305* { DEBUG_LOG(WII_IPC_WIIMOTE, "Wiimote: #%i Constructed", _Number); - s_Usb = _pHost; - m_ConnectionState = (ready) ? CONN_READY : CONN_INACTIVE; m_ConnectionHandle = 0x100 + _Number; memset(m_LinkKey, 0xA0 + _Number, HCI_KEY_SIZE); diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h index f3180c7dc9..5373f68c0a 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h @@ -25,6 +25,7 @@ class CWII_IPC_HLE_Device_usb_oh1_57e_305; CWII_IPC_HLE_Device_usb_oh1_57e_305* GetUsbPointer(); +void SetUsbPointer(CWII_IPC_HLE_Device_usb_oh1_57e_305* ptr); class CBigEndianBuffer { -- cgit v1.2.3 From 00d303eeadf23f394836ecd317eb800f0047a0bf Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Tue, 8 Jan 2013 14:41:58 -0600 Subject: clean up FifoPlayerDlg::OnBeginSearch a bit --- Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp index 494931f959..160aaf211a 100644 --- a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp +++ b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp @@ -22,9 +22,13 @@ #include "FifoPlayer/FifoPlayer.h" #include "FifoPlayer/FifoRecorder.h" #include "OpcodeDecoding.h" + #include #include +#include +#include + DECLARE_EVENT_TYPE(RECORDING_FINISHED_EVENT, -1) DEFINE_EVENT_TYPE(RECORDING_FINISHED_EVENT) @@ -440,26 +444,22 @@ void FifoPlayerDlg::OnBeginSearch(wxCommandEvent& event) return; } - unsigned int val_length = str_search_val.Length() / 2; - u8* search_val = new u8[val_length]; + unsigned int const val_length = str_search_val.Length() / 2; + std::vector search_val(val_length); for (unsigned int i = 0; i < val_length; ++i) { wxString char_str = str_search_val.Mid(2*i, 2); - unsigned long val; + unsigned long val = 0; if (!char_str.ToULong(&val, 16)) { m_numResultsText->SetLabel(_("Invalid search string (couldn't convert to number)")); - delete[] search_val; return; } search_val[i] = (u8)val; } search_results.clear(); - u8* start_ptr; - u8* end_ptr; - - int frame_idx = m_framesList->GetSelection(); + int const frame_idx = m_framesList->GetSelection(); FifoPlayer& player = FifoPlayer::GetInstance(); const AnalyzedFrameInfo& frame = player.GetAnalyzedFrameInfo(frame_idx); const FifoFrameInfo& fifo_frame = player.GetFile()->GetFrame(frame_idx); @@ -470,15 +470,15 @@ void FifoPlayerDlg::OnBeginSearch(wxCommandEvent& event) if (obj_idx == -1) { m_numResultsText->SetLabel(_("Invalid search parameters (no object selected)")); - delete[] search_val; return; } - start_ptr = &fifo_frame.fifoData[frame.objectStarts[obj_idx]]; - end_ptr = &fifo_frame.fifoData[frame.objectStarts[obj_idx+1]]; - for (u8* ptr = start_ptr; ptr < end_ptr-val_length+1; ++ptr) + const u8* const start_ptr = &fifo_frame.fifoData[frame.objectStarts[obj_idx]]; + const u8* const end_ptr = &fifo_frame.fifoData[frame.objectStarts[obj_idx+1]]; + + for (const u8* ptr = start_ptr; ptr < end_ptr-val_length+1; ++ptr) { - if (memcmp(ptr, search_val, val_length) == 0) + if (std::equal(search_val.begin(), search_val.end(), ptr)) { SearchResult result; result.frame_idx = frame_idx; @@ -497,7 +497,6 @@ void FifoPlayerDlg::OnBeginSearch(wxCommandEvent& event) search_results.push_back(result); } } - delete[] search_val; ChangeSearchResult(0); m_beginSearch->Disable(); -- cgit v1.2.3 From baa29f571c0fa914cc80d505e7db1f9c7a654488 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Tue, 8 Jan 2013 15:02:50 -0600 Subject: Fix incorrect iterator usage in BreakPoints::Clear --- Source/Core/Common/Src/BreakPoints.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/BreakPoints.cpp b/Source/Core/Common/Src/BreakPoints.cpp index 1700276d85..62fadefd4f 100644 --- a/Source/Core/Common/Src/BreakPoints.cpp +++ b/Source/Core/Common/Src/BreakPoints.cpp @@ -19,7 +19,9 @@ #include "DebugInterface.h" #include "BreakPoints.h" #include "../../Core/Src/PowerPC/JitCommon/JitBase.h" + #include +#include bool BreakPoints::IsAddressBreakPoint(u32 _iAddress) { @@ -110,12 +112,17 @@ void BreakPoints::Remove(u32 em_address) void BreakPoints::Clear() { - for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) + if (jit) { - if (jit) - jit->GetBlockCache()->InvalidateICache(i->iAddress, 4); - m_BreakPoints.erase(i); + std::for_each(m_BreakPoints.begin(), m_BreakPoints.end(), + [](const TBreakPoint& bp) + { + jit->GetBlockCache()->InvalidateICache(bp.iAddress, 4); + } + ); } + + m_BreakPoints.clear(); } MemChecks::TMemChecksStr MemChecks::GetStrings() const -- cgit v1.2.3 From 4f4aa4860df98f401384f6e598cb649b13882e79 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Tue, 8 Jan 2013 16:50:09 -0600 Subject: Fix a currently unused unique_lock function. Thanks to Lioncash. --- Source/Core/Common/Src/StdMutex.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/StdMutex.h b/Source/Core/Common/Src/StdMutex.h index 150d18f53e..8949e905ac 100644 --- a/Source/Core/Common/Src/StdMutex.h +++ b/Source/Core/Common/Src/StdMutex.h @@ -318,9 +318,12 @@ public: mutex_type* release() { - return mutex(); + auto const ret = mutex(); + pm = NULL; owns = false; + + return ret; } bool owns_lock() const -- cgit v1.2.3 From b8691df723ab635b3db41e86c9324b3adb952abe Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Tue, 8 Jan 2013 19:15:11 -0500 Subject: Allow loading controller profiles from game ini. Currently loads the same profile for all 4 controllers, and overwrites the default control settings. --- Source/Core/Core/Src/BootManager.cpp | 8 +++++++- Source/Core/Core/Src/CoreParameter.h | 4 +++- Source/Core/Core/Src/HW/GCPad.cpp | 3 ++- Source/Core/Core/Src/HW/Wiimote.cpp | 3 ++- Source/Core/InputCommon/Src/InputConfig.cpp | 13 ++++++++++--- Source/Core/InputCommon/Src/InputConfig.h | 2 +- 6 files changed, 25 insertions(+), 8 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/BootManager.cpp b/Source/Core/Core/Src/BootManager.cpp index e0fac1da87..113a12f761 100644 --- a/Source/Core/Core/Src/BootManager.cpp +++ b/Source/Core/Core/Src/BootManager.cpp @@ -47,7 +47,6 @@ #include "VideoBackendBase.h" #include "Movie.h" - namespace BootManager { @@ -137,6 +136,11 @@ bool BootCore(const std::string& _rFilename) } } + if (game_ini.Exists("Core", "WiiProfile")) + game_ini.Get("Core", "WiiProfile", &StartUp.strWiiControllerProfile); + if (game_ini.Exists("Core", "GCProfile")) + game_ini.Get("Core", "GCProfile", &StartUp.strGCControllerProfile); + // Run the game // Init the core if (!Core::Init()) @@ -169,6 +173,8 @@ void Stop() StartUp.bDSPHLE = config_cache.bDSPHLE; StartUp.bDisableWiimoteSpeaker = config_cache.bDisableWiimoteSpeaker; StartUp.m_strVideoBackend = config_cache.strBackend; + StartUp.strGCControllerProfile = ""; + StartUp.strWiiControllerProfile = ""; VideoBackend::ActivateBackend(StartUp.m_strVideoBackend); } } diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index e67935906b..d5e7537354 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -138,7 +138,9 @@ struct SCoreStartupParameter int iTheme; int iPosX, iPosY, iWidth, iHeight; - + + std::string strGCControllerProfile; + std::string strWiiControllerProfile; enum EBootBS2 { BOOT_DEFAULT, diff --git a/Source/Core/Core/Src/HW/GCPad.cpp b/Source/Core/Core/Src/HW/GCPad.cpp index 68ba3ab88a..62090dfc4f 100644 --- a/Source/Core/Core/Src/HW/GCPad.cpp +++ b/Source/Core/Core/Src/HW/GCPad.cpp @@ -20,6 +20,7 @@ #include "ControllerInterface/ControllerInterface.h" #include "GCPadEmu.h" +#include "../ConfigManager.h" #include "../../InputCommon/Src/InputConfig.h" @@ -55,7 +56,7 @@ void Initialize(void* const hwnd) g_controller_interface.Initialize(); // load the saved controller config - g_plugin.LoadConfig(); + g_plugin.LoadConfig(SConfig::GetInstance().m_LocalCoreStartupParameter.strGCControllerProfile); } void GetStatus(u8 _numPAD, SPADStatus* _pPADStatus) diff --git a/Source/Core/Core/Src/HW/Wiimote.cpp b/Source/Core/Core/Src/HW/Wiimote.cpp index 0928deffb1..4b95677581 100644 --- a/Source/Core/Core/Src/HW/Wiimote.cpp +++ b/Source/Core/Core/Src/HW/Wiimote.cpp @@ -5,6 +5,7 @@ #include "WiimoteReal/WiimoteReal.h" #include "WiimoteEmu/WiimoteEmu.h" #include "Movie.h" +#include "../ConfigManager.h" #include "ControllerInterface/ControllerInterface.h" @@ -44,7 +45,7 @@ void Initialize(void* const hwnd) g_controller_interface.SetHwnd(hwnd); g_controller_interface.Initialize(); - g_plugin.LoadConfig(); + g_plugin.LoadConfig(SConfig::GetInstance().m_LocalCoreStartupParameter.strWiiControllerProfile); WiimoteReal::Initialize(); diff --git a/Source/Core/InputCommon/Src/InputConfig.cpp b/Source/Core/InputCommon/Src/InputConfig.cpp index b9d2a93b99..19be23ec74 100644 --- a/Source/Core/InputCommon/Src/InputConfig.cpp +++ b/Source/Core/InputCommon/Src/InputConfig.cpp @@ -26,10 +26,13 @@ InputPlugin::~InputPlugin() delete *i; } -bool InputPlugin::LoadConfig() +bool InputPlugin::LoadConfig(std::string ini) { IniFile inifile; - if (inifile.Load(File::GetUserPath(D_CONFIG_IDX) + ini_name + ".ini")) + std::string ini2 = ini; + if (ini == "") + ini = ini_name; + if (inifile.Load(File::GetUserPath(D_CONFIG_IDX) + ini + ".ini")) { std::vector< ControllerEmu* >::const_iterator i = controllers.begin(), @@ -37,7 +40,11 @@ bool InputPlugin::LoadConfig() for (; i!=e; ++i) { // load settings from ini - (*i)->LoadConfig(inifile.GetOrCreateSection((*i)->GetName().c_str())); + std::string section; + section = (*i)->GetName(); + if (ini2 != "") + section = "Profile"; + (*i)->LoadConfig(inifile.GetOrCreateSection(section.c_str())); // update refs (*i)->UpdateReferences(g_controller_interface); } diff --git a/Source/Core/InputCommon/Src/InputConfig.h b/Source/Core/InputCommon/Src/InputConfig.h index 4d25334ce7..bf12217304 100644 --- a/Source/Core/InputCommon/Src/InputConfig.h +++ b/Source/Core/InputCommon/Src/InputConfig.h @@ -42,7 +42,7 @@ public: ~InputPlugin(); - bool LoadConfig(); + bool LoadConfig(std::string ini); void SaveConfig(); std::vector< ControllerEmu* > controllers; -- cgit v1.2.3 From d9ea718559a1b820278f7517be7b95a0d2263bd2 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 8 Jan 2013 23:46:30 -0500 Subject: Fix an issue where an iterator would become invalidated in TextureCache::ClearRenderTargets() --- Source/Core/VideoCommon/Src/TextureCacheBase.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp index e3152455df..cfbd4eb6c8 100644 --- a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp @@ -204,12 +204,16 @@ void TextureCache::ClearRenderTargets() iter = textures.begin(), tcend = textures.end(); - for (; iter!=tcend; ++iter) + while (iter != tcend) + { if (iter->second->type == TCET_EC_VRAM) { delete iter->second; - textures.erase(iter); + textures.erase(iter++); } + else + ++iter; + } } bool TextureCache::CheckForCustomTextureLODs(u64 tex_hash, int texformat, unsigned int levels) -- cgit v1.2.3 From 32855a289c2be54da72e846f3b3670d3275c822a Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 9 Jan 2013 01:16:23 -0600 Subject: Actually export 0-sized files. Fixes issue 5177. --- Source/Core/DiscIO/Src/FileSystemGCWii.cpp | 39 ++++++++++++------------------ 1 file changed, 16 insertions(+), 23 deletions(-) (limited to 'Source') diff --git a/Source/Core/DiscIO/Src/FileSystemGCWii.cpp b/Source/Core/DiscIO/Src/FileSystemGCWii.cpp index 8f40ab2f18..6103f53e67 100644 --- a/Source/Core/DiscIO/Src/FileSystemGCWii.cpp +++ b/Source/Core/DiscIO/Src/FileSystemGCWii.cpp @@ -19,6 +19,7 @@ #include "FileUtil.h" #include +#include #include "FileSystemGCWii.h" #include "StringUtil.h" @@ -95,7 +96,7 @@ bool CFileSystemGCWii::ExportFile(const char* _rFullPath, const char* _rExportFi const SFileInfo* pFileInfo = FindFileInfo(_rFullPath); - if (!pFileInfo || pFileInfo->m_FileSize == 0) + if (!pFileInfo) return false; u64 remainingSize = pFileInfo->m_FileSize; @@ -112,22 +113,17 @@ bool CFileSystemGCWii::ExportFile(const char* _rFullPath, const char* _rExportFi // Limit read size to 128 MB size_t readSize = (size_t)min(remainingSize, (u64)0x08000000); - u8* buffer = new u8[readSize]; + std::vector buffer(readSize); - result = m_rVolume->Read(fileOffset, readSize, buffer); + result = m_rVolume->Read(fileOffset, readSize, &buffer[0]); if (!result) - { - delete[] buffer; break; - } - f.WriteBytes(buffer, readSize); + f.WriteBytes(&buffer[0], readSize); remainingSize -= readSize; fileOffset += readSize; - - delete[] buffer; } return result; @@ -140,22 +136,20 @@ bool CFileSystemGCWii::ExportApploader(const char* _rExportFolder) const AppSize += 0x20; // + header size DEBUG_LOG(DISCIO,"AppSize -> %x", AppSize); - u8* buffer = new u8[AppSize]; - if (m_rVolume->Read(0x2440, AppSize, buffer)) + std::vector buffer(AppSize); + if (m_rVolume->Read(0x2440, AppSize, &buffer[0])) { - char exportName[512]; - sprintf(exportName, "%s/apploader.img", _rExportFolder); + std::string exportName(_rExportFolder); + exportName += "/apploader.img"; File::IOFile AppFile(exportName, "wb"); if (AppFile) { - AppFile.WriteBytes(buffer, AppSize); - delete[] buffer; + AppFile.WriteBytes(&buffer[0], AppSize); return true; } } - delete[] buffer; return false; } @@ -182,21 +176,20 @@ bool CFileSystemGCWii::ExportDOL(const char* _rExportFolder) const DolSize = offset + size; } - u8* buffer = new u8[DolSize]; - if (m_rVolume->Read(DolOffset, DolSize, buffer)) + std::vector buffer(DolSize); + if (m_rVolume->Read(DolOffset, DolSize, &buffer[0])) { - char exportName[512]; - sprintf(exportName, "%s/boot.dol", _rExportFolder); + std::string exportName(_rExportFolder); + exportName += "/boot.dol"; + File::IOFile DolFile(exportName, "wb"); if (DolFile) { - DolFile.WriteBytes(buffer, DolSize); - delete[] buffer; + DolFile.WriteBytes(&buffer[0], DolSize); return true; } } - delete[] buffer; return false; } -- cgit v1.2.3 From 63b38be97c12e6b6f0ec39008f6b0dd06dbcf3f0 Mon Sep 17 00:00:00 2001 From: skidau Date: Wed, 9 Jan 2013 22:57:32 +1100 Subject: Added audio time stretching by using the SoundTouch library. --- Source/Core/AudioCommon/AudioCommon.vcxproj | 24 ++++----- Source/Core/AudioCommon/Src/Mixer.h | 5 ++ Source/Core/AudioCommon/Src/OpenALStream.cpp | 79 ++++++++++++++++++++-------- Source/Core/AudioCommon/Src/OpenALStream.h | 12 ++++- Source/Core/Core/Src/Core.cpp | 9 +++- Source/Dolphin_2010.sln | 14 +++++ 6 files changed, 105 insertions(+), 38 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj b/Source/Core/AudioCommon/AudioCommon.vcxproj index 4bcee7559b..85608330dd 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj @@ -115,8 +115,8 @@ true - OpenAL32.lib;dsound.lib;dxerr.lib - ..\..\..\Externals\OpenAL\Win32;%(AdditionalLibraryDirectories) + SoundTouchD.lib;OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win32;..\..\..\Externals\SoundTouch\Win32;%(AdditionalLibraryDirectories) @@ -127,8 +127,8 @@ true - OpenAL32.lib;dsound.lib;dxerr.lib - ..\..\..\Externals\OpenAL\Win64;%(AdditionalLibraryDirectories) + SoundTouchD.lib;OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win64;..\..\..\Externals\SoundTouch\Win64;%(AdditionalLibraryDirectories) @@ -141,8 +141,8 @@ true - OpenAL32.lib;dsound.lib;dxerr.lib - ..\..\..\Externals\OpenAL\Win32;%(AdditionalLibraryDirectories) + SoundTouch.lib;OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win32;..\..\..\Externals\SoundTouch\Win32;%(AdditionalLibraryDirectories) @@ -155,8 +155,8 @@ true - OpenAL32.lib;dsound.lib;dxerr.lib - ..\..\..\Externals\OpenAL\Win32;%(AdditionalLibraryDirectories) + SoundTouch.lib;OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win32;..\..\..\Externals\SoundTouch\Win32;%(AdditionalLibraryDirectories) @@ -169,8 +169,8 @@ true - OpenAL32.lib;dsound.lib;dxerr.lib - ..\..\..\Externals\OpenAL\Win64;%(AdditionalLibraryDirectories) + SoundTouch.lib;OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win64;..\..\..\Externals\SoundTouch\Win64;%(AdditionalLibraryDirectories) @@ -183,8 +183,8 @@ true - OpenAL32.lib;dsound.lib;dxerr.lib - ..\..\..\Externals\OpenAL\Win64;%(AdditionalLibraryDirectories) + SoundTouch.lib;OpenAL32.lib;dsound.lib;dxerr.lib + ..\..\..\Externals\OpenAL\Win64;..\..\..\Externals\SoundTouch\Win64;%(AdditionalLibraryDirectories) diff --git a/Source/Core/AudioCommon/Src/Mixer.h b/Source/Core/AudioCommon/Src/Mixer.h index da456d5bf7..c1a387cf49 100644 --- a/Source/Core/AudioCommon/Src/Mixer.h +++ b/Source/Core/AudioCommon/Src/Mixer.h @@ -92,6 +92,9 @@ public: std::mutex& MixerCritical() { return m_csMixing; } + volatile float GetCurrentSpeed() const { return m_speed; } + void UpdateSpeed(volatile float val) { m_speed = val; } + protected: unsigned int m_sampleRate; unsigned int m_aiSampleRate; @@ -113,6 +116,8 @@ protected: bool m_AIplaying; std::mutex m_csMixing; + + volatile float m_speed; // Current rate of the emulation (1.0 = 100% speed) private: }; diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 4cc64a17de..6f429db495 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -19,11 +19,12 @@ #include "aldlist.h" #include "OpenALStream.h" -#include "../../Core/Src/HW/SystemTimers.h" -#include "../../Core/Src/HW/AudioInterface.h" #if defined HAVE_OPENAL && HAVE_OPENAL +using namespace soundtouch; +SoundTouch soundTouch; + // // AyuanX: Spec says OpenAL1.1 is thread safe already // @@ -67,6 +68,7 @@ bool OpenALStream::Start() PanicAlertT("OpenAL: can't find sound devices"); } + soundTouch.clear(); return bReturn; } @@ -76,6 +78,8 @@ void OpenALStream::Stop() // kick the thread if it's waiting soundSyncEvent.Set(); + soundTouch.clear(); + thread.join(); alSourceStop(uiSource); @@ -105,6 +109,7 @@ void OpenALStream::SetVolume(int volume) void OpenALStream::Update() { soundSyncEvent.Set(); + mainSyncEvent.Wait(); } void OpenALStream::Clear(bool mute) @@ -113,6 +118,7 @@ void OpenALStream::Clear(bool mute) if(m_muted) { + soundTouch.clear(); alSourceStop(uiSource); } else @@ -136,9 +142,10 @@ void OpenALStream::SoundLoop() alGenSources(1, &uiSource); // Short Silence + memset(sampleBuffer, 0, OAL_MAX_SAMPLES * 4 * OAL_NUM_BUFFERS); memset(realtimeBuffer, 0, OAL_MAX_SAMPLES * 4); for (int i = 0; i < OAL_NUM_BUFFERS; i++) - alBufferData(uiBuffers[i], AL_FORMAT_STEREO16, realtimeBuffer, OAL_MAX_SAMPLES, ulFrequency); + alBufferData(uiBuffers[i], AL_FORMAT_STEREO16, realtimeBuffer, OAL_MAX_SAMPLES * 4, ulFrequency); alSourceQueueBuffers(uiSource, OAL_NUM_BUFFERS, uiBuffers); alSourcePlay(uiSource); @@ -152,42 +159,68 @@ void OpenALStream::SoundLoop() ALint iBuffersProcessed = 0; ALuint uiBufferTemp[OAL_NUM_BUFFERS] = {0}; + soundTouch.setChannels(2); + soundTouch.setSampleRate(ulFrequency); + soundTouch.setSetting(SETTING_USE_QUICKSEEK, 0); + soundTouch.setSetting(SETTING_USE_AA_FILTER, 0); + soundTouch.setSetting(SETTING_SEQUENCE_MS, 1); + soundTouch.setSetting(SETTING_SEEKWINDOW_MS, 28); + soundTouch.setSetting(SETTING_OVERLAP_MS, 12); + while (!threadData) { - if (iBuffersProcessed == iBuffersFilled) - { - alGetSourcei(uiSource, AL_BUFFERS_PROCESSED, &iBuffersProcessed); - iBuffersFilled = 0; - } - // num_samples_to_render in this update - depends on SystemTimers::AUDIO_DMA_PERIOD. const u32 stereo_16_bit_size = 4; const u32 dma_length = 32; - const u64 audio_dma_period = SystemTimers::GetTicksPerSecond() / (AudioInterface::GetAIDSampleRate() * stereo_16_bit_size / dma_length); const u64 ais_samples_per_second = 48000 * stereo_16_bit_size; - const u64 num_samples_to_render = (audio_dma_period * ais_samples_per_second) / SystemTimers::GetTicksPerSecond(); + u64 audio_dma_period = SystemTimers::GetTicksPerSecond() / (AudioInterface::GetAIDSampleRate() * stereo_16_bit_size / dma_length); + u64 num_samples_to_render = (audio_dma_period * ais_samples_per_second) / SystemTimers::GetTicksPerSecond(); unsigned int numSamples = (unsigned int)num_samples_to_render; + numSamples = (numSamples > OAL_MAX_SAMPLES) ? OAL_MAX_SAMPLES : numSamples; + numSamples = m_mixer->Mix(realtimeBuffer, numSamples); + soundTouch.putSamples(realtimeBuffer, numSamples); + + if (iBuffersProcessed == iBuffersFilled) + { + alGetSourcei(uiSource, AL_BUFFERS_PROCESSED, &iBuffersProcessed); + iBuffersFilled = 0; + } + if (iBuffersProcessed) { - numSamples = (numSamples > OAL_MAX_SAMPLES) ? OAL_MAX_SAMPLES : numSamples; - // Remove the Buffer from the Queue. (uiBuffer contains the Buffer ID for the unqueued Buffer) - if (iBuffersFilled == 0) - alSourceUnqueueBuffers(uiSource, iBuffersProcessed, uiBufferTemp); - - m_mixer->Mix(realtimeBuffer, numSamples); - alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, realtimeBuffer, numSamples * 4, ulFrequency); - alSourceQueueBuffers(uiSource, 1, &uiBufferTemp[iBuffersFilled]); - iBuffersFilled++; - - if (iBuffersFilled == OAL_NUM_BUFFERS) - alSourcePlay(uiSource); + float rate = m_mixer->GetCurrentSpeed(); + if (rate <= 0) + { + Core::RequestRefreshInfo(); + rate = m_mixer->GetCurrentSpeed(); + } + if (rate > 0) + { + // Adjust SETTING_SEQUENCE_MS to balance between lag vs hollow audio + soundTouch.setSetting(SETTING_SEQUENCE_MS, (int)pow(1 / rate, 2)); + soundTouch.setTempo(rate); + } + unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS); + if (nSamples > 0) + { + // Remove the Buffer from the Queue. (uiBuffer contains the Buffer ID for the unqueued Buffer) + if (iBuffersFilled == 0) + alSourceUnqueueBuffers(uiSource, iBuffersProcessed, uiBufferTemp); + alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, sampleBuffer, nSamples * 4, ulFrequency); + alSourceQueueBuffers(uiSource, 1, &uiBufferTemp[iBuffersFilled]); + iBuffersFilled++; + + if (iBuffersFilled == OAL_NUM_BUFFERS) + alSourcePlay(uiSource); + } } else { soundSyncEvent.Wait(); } + mainSyncEvent.Set(); } } diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h index a9c1f51399..c6dfe519ae 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.h +++ b/Source/Core/AudioCommon/Src/OpenALStream.h @@ -34,10 +34,16 @@ #include #endif +#include "../../Core/Src/Core.h" +#include "../../Core/Src/HW/SystemTimers.h" +#include "../../Core/Src/HW/AudioInterface.h" +#include "../../../../Externals/SoundTouch/STTypes.h" +#include "../../../../Externals/SoundTouch/SoundTouch.h" + // 16 bit Stereo #define SFX_MAX_SOURCE 1 #define OAL_NUM_BUFFERS 16 -#define OAL_MAX_SAMPLES 512 // AyuanX: Don't make it too large, as larger buffer means longer delay +#define OAL_MAX_SAMPLES 512 #endif class OpenALStream: public SoundStream @@ -63,8 +69,10 @@ public: private: std::thread thread; Common::Event soundSyncEvent; - + Common::Event mainSyncEvent; + short realtimeBuffer[OAL_MAX_SAMPLES * 2]; + soundtouch::SAMPLETYPE sampleBuffer[OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS]; ALuint uiBuffers[OAL_NUM_BUFFERS]; ALuint uiSource; ALfloat fVolume; diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index e92b9088bc..c06755a90b 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -683,7 +683,14 @@ void VideoThrottle() SMessage; // Show message - g_video_backend->UpdateFPSDisplay(SMessage.c_str()); + g_video_backend->UpdateFPSDisplay(SMessage.c_str()); + + // Update the audio timestretcher with the current speed + if (soundStream) + { + CMixer* pMixer = soundStream->GetMixer(); + pMixer->UpdateSpeed((float)Speed / 100); + } if (_CoreParameter.bRenderToMain && SConfig::GetInstance().m_InterfaceStatusbar) { diff --git a/Source/Dolphin_2010.sln b/Source/Dolphin_2010.sln index 041f6c95bb..a65ba2e894 100644 --- a/Source/Dolphin_2010.sln +++ b/Source/Dolphin_2010.sln @@ -108,6 +108,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "..\Externals\libpng\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SCMRevGen", "Core\Common\SVNRevGen.vcxproj", "{69F00340-5C3D-449F-9A80-958435C6CF06}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "..\Externals\SoundTouch\SoundTouch.vcxproj", "{68A5DD20-7057-448B-8FE0-B6AC8D205509}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -382,6 +384,18 @@ Global {69F00340-5C3D-449F-9A80-958435C6CF06}.Release|Win32.Build.0 = Release|x64 {69F00340-5C3D-449F-9A80-958435C6CF06}.Release|x64.ActiveCfg = Release|x64 {69F00340-5C3D-449F-9A80-958435C6CF06}.Release|x64.Build.0 = Release|x64 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Debug|Win32.ActiveCfg = Debug|Win32 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Debug|Win32.Build.0 = Debug|Win32 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Debug|x64.ActiveCfg = Debug|x64 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Debug|x64.Build.0 = Debug|x64 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.DebugFast|Win32.ActiveCfg = Debug|Win32 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.DebugFast|Win32.Build.0 = Debug|Win32 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.DebugFast|x64.ActiveCfg = Release|x64 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.DebugFast|x64.Build.0 = Release|x64 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Release|Win32.ActiveCfg = Release|Win32 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Release|Win32.Build.0 = Release|Win32 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Release|x64.ActiveCfg = Release|x64 + {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- cgit v1.2.3 From 91fe5cc821b0532154dc5a8a34869f13284394c5 Mon Sep 17 00:00:00 2001 From: skidau Date: Wed, 9 Jan 2013 23:45:13 +1100 Subject: Build fix Added SoundTouch as a dependency of AudioCommon. Removed the "soundtouch_config.h" include on Linux and OSX. --- Source/Core/AudioCommon/AudioCommon.vcxproj | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'Source') diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj b/Source/Core/AudioCommon/AudioCommon.vcxproj index 85608330dd..5a6896f5e2 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj @@ -216,6 +216,14 @@ + + {68a5dd20-7057-448b-8fe0-b6ac8d205509} + true + true + false + true + false + {c87a4178-44f6-49b2-b7aa-c79af1b8c534} true -- cgit v1.2.3 From 8494a439c74bdd2eed60d7aba678761c1a8a7284 Mon Sep 17 00:00:00 2001 From: skidau Date: Thu, 10 Jan 2013 00:06:35 +1100 Subject: OSX build fix --- Source/Core/AudioCommon/Src/OpenALStream.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 6f429db495..85685b42cb 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -199,7 +199,7 @@ void OpenALStream::SoundLoop() if (rate > 0) { // Adjust SETTING_SEQUENCE_MS to balance between lag vs hollow audio - soundTouch.setSetting(SETTING_SEQUENCE_MS, (int)pow(1 / rate, 2)); + soundTouch.setSetting(SETTING_SEQUENCE_MS, (int)(1 / (rate * rate))); soundTouch.setTempo(rate); } unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS); -- cgit v1.2.3 From 01f4d9f386d225675d12cea7fedc1144dd2e02d4 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Wed, 9 Jan 2013 10:26:12 -0600 Subject: Fix include paths and compiling in Linux. Externals soundtouch is 1.7.1, while Ubuntu 12.10 is 1.6.x. Externals soundtouch is compiled with integer samples, while ubuntu is compiled with float samples. Float samples is probably the more common route. If you're going to use soundtouch, you should probably use SAMPLETYPE instead of explicitly choosing short. This probably breaks the windows build since its includes aren't setup. --- Source/Core/AudioCommon/CMakeLists.txt | 2 +- Source/Core/AudioCommon/Src/OpenALStream.cpp | 3 +-- Source/Core/AudioCommon/Src/OpenALStream.h | 10 +++++----- 3 files changed, 7 insertions(+), 8 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/CMakeLists.txt b/Source/Core/AudioCommon/CMakeLists.txt index be8c58d14a..93547681b0 100644 --- a/Source/Core/AudioCommon/CMakeLists.txt +++ b/Source/Core/AudioCommon/CMakeLists.txt @@ -18,7 +18,7 @@ endif(AO_FOUND) if(OPENAL_FOUND) set(SRCS ${SRCS} Src/OpenALStream.cpp Src/aldlist.cpp) - set(LIBS ${LIBS} ${OPENAL_LIBRARY}) + set(LIBS ${LIBS} ${OPENAL_LIBRARY} SoundTouch ) endif(OPENAL_FOUND) if(PULSEAUDIO_FOUND) diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 85685b42cb..b0c856dcad 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -22,8 +22,7 @@ #if defined HAVE_OPENAL && HAVE_OPENAL -using namespace soundtouch; -SoundTouch soundTouch; +soundtouch::SoundTouch soundTouch; // // AyuanX: Spec says OpenAL1.1 is thread safe already diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h index c6dfe519ae..6f39c8a49c 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.h +++ b/Source/Core/AudioCommon/Src/OpenALStream.h @@ -34,11 +34,11 @@ #include #endif -#include "../../Core/Src/Core.h" -#include "../../Core/Src/HW/SystemTimers.h" -#include "../../Core/Src/HW/AudioInterface.h" -#include "../../../../Externals/SoundTouch/STTypes.h" -#include "../../../../Externals/SoundTouch/SoundTouch.h" +#include "Core.h" +#include "HW/SystemTimers.h" +#include "HW/AudioInterface.h" +#include +#include // 16 bit Stereo #define SFX_MAX_SOURCE 1 -- cgit v1.2.3 From e32b1526b334950068cf5f1a7eb29ea6a873274c Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Wed, 9 Jan 2013 15:03:43 -0500 Subject: Allow setting different profiles for different controllers, and automatically use the appropriate profile directory. --- Source/Core/Core/Src/BootManager.cpp | 8 +---- Source/Core/Core/Src/CoreParameter.h | 2 -- Source/Core/Core/Src/HW/GCPad.cpp | 2 +- Source/Core/Core/Src/HW/Wiimote.cpp | 2 +- Source/Core/InputCommon/Src/InputConfig.cpp | 51 ++++++++++++++++++++++------- Source/Core/InputCommon/Src/InputConfig.h | 2 +- 6 files changed, 44 insertions(+), 23 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/BootManager.cpp b/Source/Core/Core/Src/BootManager.cpp index 113a12f761..71148efabc 100644 --- a/Source/Core/Core/Src/BootManager.cpp +++ b/Source/Core/Core/Src/BootManager.cpp @@ -136,11 +136,6 @@ bool BootCore(const std::string& _rFilename) } } - if (game_ini.Exists("Core", "WiiProfile")) - game_ini.Get("Core", "WiiProfile", &StartUp.strWiiControllerProfile); - if (game_ini.Exists("Core", "GCProfile")) - game_ini.Get("Core", "GCProfile", &StartUp.strGCControllerProfile); - // Run the game // Init the core if (!Core::Init()) @@ -158,6 +153,7 @@ void Stop() SCoreStartupParameter& StartUp = SConfig::GetInstance().m_LocalCoreStartupParameter; + StartUp.m_strUniqueID = "00000000"; if (config_cache.valid) { config_cache.valid = false; @@ -173,8 +169,6 @@ void Stop() StartUp.bDSPHLE = config_cache.bDSPHLE; StartUp.bDisableWiimoteSpeaker = config_cache.bDisableWiimoteSpeaker; StartUp.m_strVideoBackend = config_cache.strBackend; - StartUp.strGCControllerProfile = ""; - StartUp.strWiiControllerProfile = ""; VideoBackend::ActivateBackend(StartUp.m_strVideoBackend); } } diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index d5e7537354..8aa6be83e5 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -139,8 +139,6 @@ struct SCoreStartupParameter int iTheme; int iPosX, iPosY, iWidth, iHeight; - std::string strGCControllerProfile; - std::string strWiiControllerProfile; enum EBootBS2 { BOOT_DEFAULT, diff --git a/Source/Core/Core/Src/HW/GCPad.cpp b/Source/Core/Core/Src/HW/GCPad.cpp index 62090dfc4f..c4798b3964 100644 --- a/Source/Core/Core/Src/HW/GCPad.cpp +++ b/Source/Core/Core/Src/HW/GCPad.cpp @@ -56,7 +56,7 @@ void Initialize(void* const hwnd) g_controller_interface.Initialize(); // load the saved controller config - g_plugin.LoadConfig(SConfig::GetInstance().m_LocalCoreStartupParameter.strGCControllerProfile); + g_plugin.LoadConfig(true); } void GetStatus(u8 _numPAD, SPADStatus* _pPADStatus) diff --git a/Source/Core/Core/Src/HW/Wiimote.cpp b/Source/Core/Core/Src/HW/Wiimote.cpp index 4b95677581..59fe8b7fa5 100644 --- a/Source/Core/Core/Src/HW/Wiimote.cpp +++ b/Source/Core/Core/Src/HW/Wiimote.cpp @@ -45,7 +45,7 @@ void Initialize(void* const hwnd) g_controller_interface.SetHwnd(hwnd); g_controller_interface.Initialize(); - g_plugin.LoadConfig(SConfig::GetInstance().m_LocalCoreStartupParameter.strWiiControllerProfile); + g_plugin.LoadConfig(false); WiimoteReal::Initialize(); diff --git a/Source/Core/InputCommon/Src/InputConfig.cpp b/Source/Core/InputCommon/Src/InputConfig.cpp index 19be23ec74..7d1bf11de8 100644 --- a/Source/Core/InputCommon/Src/InputConfig.cpp +++ b/Source/Core/InputCommon/Src/InputConfig.cpp @@ -16,6 +16,7 @@ // http://code.google.com/p/dolphin-emu/ #include "InputConfig.h" +#include "../../Core/Src/ConfigManager.h" InputPlugin::~InputPlugin() { @@ -26,25 +27,53 @@ InputPlugin::~InputPlugin() delete *i; } -bool InputPlugin::LoadConfig(std::string ini) +bool InputPlugin::LoadConfig(bool isGC) { IniFile inifile; - std::string ini2 = ini; - if (ini == "") - ini = ini_name; - if (inifile.Load(File::GetUserPath(D_CONFIG_IDX) + ini + ".ini")) + IniFile game_ini; + bool useProfile[4] = {false, false, false, false}; + std::string num[4] = {"1", "2", "3", "4"}; + std::string profile[4]; + + if (SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() != "00000000") + { + std::string type; + if (isGC) + type = "GC"; + else + type = "Wii"; + game_ini.Load(File::GetUserPath(D_GAMECONFIG_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini"); + for (int i = 0; i < 4; i++) + { + if (game_ini.Exists("Core", (type + "Profile" + num[i]).c_str())) + { + useProfile[i] = true; + game_ini.Get("Core", (type + "Profile" + num[i]).c_str(), &profile[i]); + } + } + } + + if (inifile.Load(File::GetUserPath(D_CONFIG_IDX) + ini_name + ".ini")) { std::vector< ControllerEmu* >::const_iterator i = controllers.begin(), e = controllers.end(); - for (; i!=e; ++i) + for (int n = 0; i!=e; ++i, ++n) { // load settings from ini - std::string section; - section = (*i)->GetName(); - if (ini2 != "") - section = "Profile"; - (*i)->LoadConfig(inifile.GetOrCreateSection(section.c_str())); + if (useProfile[n]) + { + IniFile profile_ini; + std::string path; + if (isGC) + path = "Profiles/GCPad/"; + else + path = "Profiles/Wiimote/"; + profile_ini.Load(File::GetUserPath(D_CONFIG_IDX) + path + profile[n] + ".ini"); + (*i)->LoadConfig(profile_ini.GetOrCreateSection("Profile")); + } + else + (*i)->LoadConfig(inifile.GetOrCreateSection((*i)->GetName().c_str())); // update refs (*i)->UpdateReferences(g_controller_interface); } diff --git a/Source/Core/InputCommon/Src/InputConfig.h b/Source/Core/InputCommon/Src/InputConfig.h index bf12217304..71505bb935 100644 --- a/Source/Core/InputCommon/Src/InputConfig.h +++ b/Source/Core/InputCommon/Src/InputConfig.h @@ -42,7 +42,7 @@ public: ~InputPlugin(); - bool LoadConfig(std::string ini); + bool LoadConfig(bool isGC); void SaveConfig(); std::vector< ControllerEmu* > controllers; -- cgit v1.2.3 From d34c847eddf72c8a928472c7512cddad02a8d853 Mon Sep 17 00:00:00 2001 From: skidau Date: Thu, 10 Jan 2013 07:43:59 +1100 Subject: Fixed the include directories in Audio Common for the Windows build. --- Source/Core/AudioCommon/AudioCommon.vcxproj | 2 +- Source/Core/AudioCommon/Src/OpenALStream.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj b/Source/Core/AudioCommon/AudioCommon.vcxproj index 5a6896f5e2..bc004268ea 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj @@ -161,7 +161,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h index 6f39c8a49c..c775d31cf2 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.h +++ b/Source/Core/AudioCommon/Src/OpenALStream.h @@ -24,8 +24,8 @@ #if defined HAVE_OPENAL && HAVE_OPENAL #ifdef _WIN32 -#include "../../../../Externals/OpenAL/include/al.h" -#include "../../../../Externals/OpenAL/include/alc.h" +#include +#include #elif defined __APPLE__ #include #include -- cgit v1.2.3 From ad28986d510cfe7e064acd9f95d1de0d08b36325 Mon Sep 17 00:00:00 2001 From: skidau Date: Thu, 10 Jan 2013 07:55:13 +1100 Subject: Fixed the include directories in Audio Common for the Windows 32bit build. --- Source/Core/AudioCommon/AudioCommon.vcxproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj b/Source/Core/AudioCommon/AudioCommon.vcxproj index bc004268ea..2e13aedb46 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj @@ -133,7 +133,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true -- cgit v1.2.3 From c7ccf7e5c6a78f2a41b6625dec64356318e27079 Mon Sep 17 00:00:00 2001 From: skidau Date: Thu, 10 Jan 2013 09:11:37 +1100 Subject: Removed the system timing hack which was activated when the Accurate VBeam option was enabled. --- Source/Core/Core/Src/HW/SystemTimers.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/SystemTimers.cpp b/Source/Core/Core/Src/HW/SystemTimers.cpp index b9f9fe0107..b520c51b39 100644 --- a/Source/Core/Core/Src/HW/SystemTimers.cpp +++ b/Source/Core/Core/Src/HW/SystemTimers.cpp @@ -160,8 +160,7 @@ void DSPCallback(u64 userdata, int cyclesLate) void AudioDMACallback(u64 userdata, int cyclesLate) { - int fields = SConfig::GetInstance().m_LocalCoreStartupParameter.bVBeam?2:1; - int period = CPU_CORE_CLOCK / (AudioInterface::GetAIDSampleRate() * 4 / 32 * fields); + int period = CPU_CORE_CLOCK / (AudioInterface::GetAIDSampleRate() * 4 / 32); DSP::UpdateAudioDMA(); // Push audio to speakers. CoreTiming::ScheduleEvent(period - cyclesLate, et_AudioDMA); } -- cgit v1.2.3 From 488a679ca71c63645598743c08c318164a6c38ae Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 9 Jan 2013 17:39:19 -0600 Subject: use pulseaudio "simple" api --- Source/Core/AudioCommon/CMakeLists.txt | 3 +- Source/Core/AudioCommon/Src/PulseAudioStream.cpp | 288 ++++------------------- Source/Core/AudioCommon/Src/PulseAudioStream.h | 23 +- Source/Core/DolphinWX/Src/ConfigMain.cpp | 3 +- 4 files changed, 53 insertions(+), 264 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/CMakeLists.txt b/Source/Core/AudioCommon/CMakeLists.txt index be8c58d14a..b2005515cf 100644 --- a/Source/Core/AudioCommon/CMakeLists.txt +++ b/Source/Core/AudioCommon/CMakeLists.txt @@ -23,7 +23,8 @@ endif(OPENAL_FOUND) if(PULSEAUDIO_FOUND) set(SRCS ${SRCS} Src/PulseAudioStream.cpp) - set(LIBS ${LIBS} ${PULSEAUDIO_LIBRARIES}) +# TODO: remove hacks + set(LIBS ${LIBS} ${PULSEAUDIO_LIBRARIES} pulse-simple) endif(PULSEAUDIO_FOUND) if(WIN32) diff --git a/Source/Core/AudioCommon/Src/PulseAudioStream.cpp b/Source/Core/AudioCommon/Src/PulseAudioStream.cpp index 4851b4bd12..82b7ee5fa9 100644 --- a/Source/Core/AudioCommon/Src/PulseAudioStream.cpp +++ b/Source/Core/AudioCommon/Src/PulseAudioStream.cpp @@ -22,31 +22,31 @@ #include "PulseAudioStream.h" -#define BUFFER_SIZE 4096 -#define BUFFER_SIZE_BYTES (BUFFER_SIZE * 4) - -PulseAudio::PulseAudio(CMixer *mixer) - : SoundStream(mixer), thread_running(false), mainloop(NULL) - , context(NULL), stream(NULL), iVolume(100) +namespace { - mix_buffer = new u8[BUFFER_SIZE_BYTES]; +const size_t BUFFER_SAMPLES = 512; +const size_t CHANNEL_COUNT = 2; +const size_t BUFFER_SIZE = BUFFER_SAMPLES * CHANNEL_COUNT; } -PulseAudio::~PulseAudio() -{ - delete [] mix_buffer; -} +PulseAudio::PulseAudio(CMixer *mixer) + : SoundStream(mixer) + , mix_buffer(BUFFER_SIZE) + , thread() + , run_thread() + , pa() +{} bool PulseAudio::Start() { - thread_running = true; + run_thread = true; thread = std::thread(std::mem_fun(&PulseAudio::SoundLoop), this); return true; } void PulseAudio::Stop() { - thread_running = false; + run_thread = false; thread.join(); } @@ -60,260 +60,54 @@ void PulseAudio::SoundLoop() { Common::SetCurrentThreadName("Audio thread - pulse"); - thread_running = PulseInit(); - - while (thread_running) - { - int frames_to_deliver = 512; - m_mixer->Mix((short *)mix_buffer, frames_to_deliver); - if (!Write(mix_buffer, frames_to_deliver * 4)) - ERROR_LOG(AUDIO, "PulseAudio failure writing data"); - } - PulseShutdown(); -} - -bool PulseAudio::PulseInit() -{ - // The Sample format to use - const pa_sample_spec ss = - { - PA_SAMPLE_S16LE, - m_mixer->GetSampleRate(), - 2 - }; - - mainloop = pa_threaded_mainloop_new(); - - context = pa_context_new(pa_threaded_mainloop_get_api(mainloop), "dolphin-emu"); - pa_context_set_state_callback(context, ContextStateCB, this); - - if (pa_context_connect(context, NULL, PA_CONTEXT_NOFLAGS, NULL) < 0) + if (PulseInit()) { - ERROR_LOG(AUDIO, "PulseAudio failed to connect context: %s", - pa_strerror(pa_context_errno(context))); - return false; - } - - pa_threaded_mainloop_lock(mainloop); - pa_threaded_mainloop_start(mainloop); - - for (;;) - { - pa_context_state_t state; - - state = pa_context_get_state(context); - - if (state == PA_CONTEXT_READY) - break; - - if (!PA_CONTEXT_IS_GOOD(state)) + while (run_thread) { - ERROR_LOG(AUDIO, "PulseAudio context state failure: %s", - pa_strerror(pa_context_errno(context))); - pa_threaded_mainloop_unlock(mainloop); - return false; + m_mixer->Mix(&mix_buffer[0], mix_buffer.size() / CHANNEL_COUNT); + Write(&mix_buffer[0], mix_buffer.size() * sizeof(s16)); } - // Wait until the context is ready - pa_threaded_mainloop_wait(mainloop); + PulseShutdown(); } - - if (!(stream = pa_stream_new(context, "emulator", &ss, NULL))) - { - ERROR_LOG(AUDIO, "PulseAudio failed to create playback stream: %s", - pa_strerror(pa_context_errno(context))); - pa_threaded_mainloop_unlock(mainloop); - return false; - } - - // Set callbacks for the playback stream - pa_stream_set_state_callback(stream, StreamStateCB, this); - pa_stream_set_write_callback(stream, StreamWriteCB, this); - - if (pa_stream_connect_playback(stream, NULL, NULL, PA_STREAM_NOFLAGS, NULL, NULL) < 0) - { - ERROR_LOG(AUDIO, "PulseAudio failed to connect playback stream: %s", - pa_strerror(pa_context_errno(context))); - pa_threaded_mainloop_unlock(mainloop); - return false; - } - - for (;;) - { - pa_stream_state_t state; - - state = pa_stream_get_state(stream); - - if (state == PA_STREAM_READY) - break; - - if (!PA_STREAM_IS_GOOD(state)) - { - ERROR_LOG(AUDIO, "PulseAudio stream state failure: %s", - pa_strerror(pa_context_errno(context))); - pa_threaded_mainloop_unlock(mainloop); - return false; - } - - // Wait until the stream is ready - pa_threaded_mainloop_wait(mainloop); - } - - pa_threaded_mainloop_unlock(mainloop); - - SetVolume(iVolume); - - NOTICE_LOG(AUDIO, "Pulse successfully initialized."); - return true; } -void PulseAudio::PulseShutdown() +bool PulseAudio::PulseInit() { - if (mainloop) - pa_threaded_mainloop_stop(mainloop); + pa_sample_spec ss = {}; + ss.format = PA_SAMPLE_S16LE; + ss.channels = 2; + ss.rate = m_mixer->GetSampleRate(); - if (stream) - pa_stream_unref(stream); + int error; + pa = pa_simple_new(nullptr, "dolphin-emu", PA_STREAM_PLAYBACK, + nullptr, "audio", &ss, nullptr, nullptr, &error); - if (context) + if (!pa) { - pa_context_disconnect(context); - pa_context_unref(context); - } - - if (mainloop) - pa_threaded_mainloop_free(mainloop); -} - -void PulseAudio::SignalMainLoop() -{ - pa_threaded_mainloop_signal(mainloop, 0); -} - -void PulseAudio::ContextStateCB(pa_context *c, void *userdata) -{ - switch (pa_context_get_state(c)) - { - case PA_CONTEXT_READY: - case PA_CONTEXT_TERMINATED: - case PA_CONTEXT_FAILED: - ((PulseAudio *)userdata)->SignalMainLoop(); - break; - - default: - break; + ERROR_LOG(AUDIO, "PulseAudio failed to initialize: %s", + pa_strerror(error)); + return false; } -} - -void PulseAudio::StreamStateCB(pa_stream *s, void * userdata) -{ - switch (pa_stream_get_state(s)) + else { - case PA_STREAM_READY: - case PA_STREAM_TERMINATED: - case PA_STREAM_FAILED: - ((PulseAudio *)userdata)->SignalMainLoop(); - break; - - default: - break; + NOTICE_LOG(AUDIO, "Pulse successfully initialized."); + //SetVolume(iVolume); + return true; } } -void PulseAudio::StreamWriteCB(pa_stream *s, size_t length, void *userdata) -{ - ((PulseAudio *)userdata)->SignalMainLoop(); -} - -static bool StateIsGood(pa_context *context, pa_stream *stream) +void PulseAudio::PulseShutdown() { - if (!context || !PA_CONTEXT_IS_GOOD(pa_context_get_state(context)) || - !stream || !PA_STREAM_IS_GOOD(pa_stream_get_state(stream))) - { - if ((context && pa_context_get_state(context) == PA_CONTEXT_FAILED) || - (stream && pa_stream_get_state(stream) == PA_STREAM_FAILED)) - { - ERROR_LOG(AUDIO, "PulseAudio state failure: %s", - pa_strerror(pa_context_errno(context))); - } - else - { - ERROR_LOG(AUDIO, "PulseAudio state failure: %s", - pa_strerror(PA_ERR_BADSTATE)); - } - return false; - } - return true; + pa_simple_free(pa); } -bool PulseAudio::Write(const void *data, size_t length) +void PulseAudio::Write(const void *data, size_t length) { - if (!data || length == 0 || !stream) - return false; - - pa_threaded_mainloop_lock(mainloop); - - if (!StateIsGood(context, stream)) + int error; + if (pa_simple_write(pa, data, length, &error) < 0) { - pa_threaded_mainloop_unlock(mainloop); - return false; + ERROR_LOG(AUDIO, "PulseAudio failed to write data: %s", + pa_strerror(error)); } - - while (length > 0) - { - size_t l; - int r; - - while (!(l = pa_stream_writable_size(stream))) - { - pa_threaded_mainloop_wait(mainloop); - if (!StateIsGood(context, stream)) - { - pa_threaded_mainloop_unlock(mainloop); - return false; - } - } - - if (l == (size_t)-1) - { - ERROR_LOG(AUDIO, "PulseAudio invalid stream: %s", - pa_strerror(pa_context_errno(context))); - pa_threaded_mainloop_unlock(mainloop); - return false; - } - - if (l > length) - l = length; - - r = pa_stream_write(stream, data, l, NULL, 0LL, PA_SEEK_RELATIVE); - if (r < 0) - { - ERROR_LOG(AUDIO, "PulseAudio error writing to stream: %s", - pa_strerror(pa_context_errno(context))); - pa_threaded_mainloop_unlock(mainloop); - return false; - } - - data = (const uint8_t*) data + l; - length -= l; - } - - pa_threaded_mainloop_unlock(mainloop); - return true; -} - -void PulseAudio::SetVolume(int volume) -{ - iVolume = volume; - - if (!stream) - return; - - pa_cvolume cvolume; - const pa_channel_map *channels = pa_stream_get_channel_map(stream); - pa_cvolume_set(&cvolume, channels->channels, - iVolume * (PA_VOLUME_NORM - PA_VOLUME_MUTED) / 100); - - pa_context_set_sink_input_volume(context, pa_stream_get_index(stream), - &cvolume, NULL, this); } diff --git a/Source/Core/AudioCommon/Src/PulseAudioStream.h b/Source/Core/AudioCommon/Src/PulseAudioStream.h index f3a5a43e79..38399e2506 100644 --- a/Source/Core/AudioCommon/Src/PulseAudioStream.h +++ b/Source/Core/AudioCommon/Src/PulseAudioStream.h @@ -19,7 +19,8 @@ #define _PULSE_AUDIO_STREAM_H #if defined(HAVE_PULSEAUDIO) && HAVE_PULSEAUDIO -#include +#include +#include #endif #include "Common.h" @@ -27,16 +28,16 @@ #include "Thread.h" +#include + class PulseAudio : public SoundStream { #if defined(HAVE_PULSEAUDIO) && HAVE_PULSEAUDIO public: PulseAudio(CMixer *mixer); - virtual ~PulseAudio(); virtual bool Start(); virtual void Stop(); - virtual void SetVolume(int volume); static bool isValid() {return true;} @@ -46,22 +47,16 @@ public: private: virtual void SoundLoop(); + bool PulseInit(); void PulseShutdown(); - bool Write(const void *data, size_t bytes); - void SignalMainLoop(); - static void ContextStateCB(pa_context *c, void *userdata); - static void StreamStateCB(pa_stream *s, void * userdata); - static void StreamWriteCB(pa_stream *s, size_t length, void *userdata); + void Write(const void *data, size_t bytes); - u8 *mix_buffer; + std::vector mix_buffer; std::thread thread; - volatile bool thread_running; + volatile bool run_thread; - pa_threaded_mainloop *mainloop; - pa_context *context; - pa_stream *stream; - int iVolume; + pa_simple* pa; #else public: PulseAudio(CMixer *mixer) : SoundStream(mixer) {} diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index ce4cd9cb22..20b0a0e31e 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -966,8 +966,7 @@ bool CConfigMain::SupportsVolumeChanges(std::string backend) return (backend == BACKEND_DIRECTSOUND || backend == BACKEND_COREAUDIO || backend == BACKEND_OPENAL || - backend == BACKEND_XAUDIO2 || - backend == BACKEND_PULSEAUDIO); + backend == BACKEND_XAUDIO2); } -- cgit v1.2.3 From 5c371549d319ae125fcfa6278e2ac569b21c0f78 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 9 Jan 2013 18:39:28 -0600 Subject: fix cmake hacks --- Source/Core/AudioCommon/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/CMakeLists.txt b/Source/Core/AudioCommon/CMakeLists.txt index b2005515cf..be8c58d14a 100644 --- a/Source/Core/AudioCommon/CMakeLists.txt +++ b/Source/Core/AudioCommon/CMakeLists.txt @@ -23,8 +23,7 @@ endif(OPENAL_FOUND) if(PULSEAUDIO_FOUND) set(SRCS ${SRCS} Src/PulseAudioStream.cpp) -# TODO: remove hacks - set(LIBS ${LIBS} ${PULSEAUDIO_LIBRARIES} pulse-simple) + set(LIBS ${LIBS} ${PULSEAUDIO_LIBRARIES}) endif(PULSEAUDIO_FOUND) if(WIN32) -- cgit v1.2.3 From fad2468e3014334e1a050d0c60deb244b85923ff Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Wed, 9 Jan 2013 20:41:14 -0500 Subject: Make sure profile actually exists. --- Source/Core/InputCommon/Src/InputConfig.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'Source') diff --git a/Source/Core/InputCommon/Src/InputConfig.cpp b/Source/Core/InputCommon/Src/InputConfig.cpp index 7d1bf11de8..a0b396db0a 100644 --- a/Source/Core/InputCommon/Src/InputConfig.cpp +++ b/Source/Core/InputCommon/Src/InputConfig.cpp @@ -34,21 +34,31 @@ bool InputPlugin::LoadConfig(bool isGC) bool useProfile[4] = {false, false, false, false}; std::string num[4] = {"1", "2", "3", "4"}; std::string profile[4]; + std::string path; if (SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() != "00000000") { std::string type; if (isGC) + { type = "GC"; + path = "Profiles/GCPad/"; + } else + { type = "Wii"; + path = "Profiles/Wiimote/"; + } game_ini.Load(File::GetUserPath(D_GAMECONFIG_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini"); for (int i = 0; i < 4; i++) { if (game_ini.Exists("Core", (type + "Profile" + num[i]).c_str())) { - useProfile[i] = true; game_ini.Get("Core", (type + "Profile" + num[i]).c_str(), &profile[i]); + if (File::Exists(File::GetUserPath(D_CONFIG_IDX) + path + profile[i] + ".ini")) + useProfile[i] = true; + else + PanicAlertT("Selected controller profile does not exist"); } } } @@ -64,11 +74,6 @@ bool InputPlugin::LoadConfig(bool isGC) if (useProfile[n]) { IniFile profile_ini; - std::string path; - if (isGC) - path = "Profiles/GCPad/"; - else - path = "Profiles/Wiimote/"; profile_ini.Load(File::GetUserPath(D_CONFIG_IDX) + path + profile[n] + ".ini"); (*i)->LoadConfig(profile_ini.GetOrCreateSection("Profile")); } -- cgit v1.2.3 From 6598462aba1e614e1ffb279c8e12976e2dab5b45 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 9 Jan 2013 19:59:31 -0600 Subject: Display error messages when failing to compress/decompress games. Fixes issue 4681. --- Source/Core/DiscIO/Src/CompressedBlob.cpp | 6 +++++- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 24 ++++++++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) (limited to 'Source') diff --git a/Source/Core/DiscIO/Src/CompressedBlob.cpp b/Source/Core/DiscIO/Src/CompressedBlob.cpp index 1e5077b352..48ce8f10f3 100644 --- a/Source/Core/DiscIO/Src/CompressedBlob.cpp +++ b/Source/Core/DiscIO/Src/CompressedBlob.cpp @@ -296,9 +296,13 @@ bool DecompressBlobToFile(const char* infile, const char* outfile, CompressCB ca } CompressedBlobReader* reader = CompressedBlobReader::Create(infile); - if (!reader) return false; + if (!reader) + return false; File::IOFile f(outfile, "wb"); + if (!f) + return false; + const CompressedBlobHeader &header = reader->GetHeader(); u8* buffer = new u8[header.block_size]; int progress_monitor = max(1, header.num_blocks / 100); diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index c67ee83ed3..28051eb390 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -1121,6 +1121,9 @@ void CGameListCtrl::CompressSelection(bool _compress) if (browseDialog.ShowModal() != wxID_OK) return; + bool all_good = true; + + { wxProgressDialog progressDialog( _compress ? _("Compressing ISO") : _("Decompressing ISO"), _("Working..."), @@ -1157,7 +1160,7 @@ void CGameListCtrl::CompressSelection(bool _compress) wxYES_NO) == wxNO) continue; - DiscIO::CompressFileToBlob(iso->GetFileName().c_str(), + all_good &= DiscIO::CompressFileToBlob(iso->GetFileName().c_str(), OutputFileName.c_str(), (iso->GetPlatform() == GameListItem::WII_DISC) ? 1 : 0, 16384, &MultiCompressCB, &progressDialog); @@ -1185,11 +1188,16 @@ void CGameListCtrl::CompressSelection(bool _compress) wxYES_NO) == wxNO) continue; - DiscIO::DecompressBlobToFile(iso->GetFileName().c_str(), + all_good &= DiscIO::DecompressBlobToFile(iso->GetFileName().c_str(), OutputFileName.c_str(), &MultiCompressCB, &progressDialog); } m_currentItem++; } + } + + if (!all_good) + wxMessageBox(_("Dolphin was unable to complete the requested action.")); + Update(); } @@ -1249,6 +1257,9 @@ void CGameListCtrl::OnCompressGCM(wxCommandEvent& WXUNUSED (event)) _("Confirm File Overwrite"), wxYES_NO) == wxNO); + bool all_good = false; + + { wxProgressDialog dialog( iso->IsCompressed() ? _("Decompressing ISO") : _("Compressing ISO"), _("Working..."), @@ -1259,14 +1270,19 @@ void CGameListCtrl::OnCompressGCM(wxCommandEvent& WXUNUSED (event)) wxPD_SMOOTH ); + if (iso->IsCompressed()) - DiscIO::DecompressBlobToFile(iso->GetFileName().c_str(), + all_good = DiscIO::DecompressBlobToFile(iso->GetFileName().c_str(), path.char_str(), &CompressCB, &dialog); else - DiscIO::CompressFileToBlob(iso->GetFileName().c_str(), + all_good = DiscIO::CompressFileToBlob(iso->GetFileName().c_str(), path.char_str(), (iso->GetPlatform() == GameListItem::WII_DISC) ? 1 : 0, 16384, &CompressCB, &dialog); + } + + if (!all_good) + wxMessageBox(_("Dolphin was unable to complete the requested action.")); Update(); } -- cgit v1.2.3 From 0de8fbecfa389ad03232440bcd91c10a2a7af7f2 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 9 Jan 2013 20:26:11 -0600 Subject: Don't hardcode left-shift to disabe keyboard input on linux. Left-shift can be used for gamepad input now. Fixes issue 4968. --- Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp b/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp index c2030a059d..fa30ba5c62 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp @@ -116,8 +116,7 @@ KeyboardMouse::Key::Key(Display* const display, KeyCode keycode, const char* key ControlState KeyboardMouse::Key::GetState() const { const KeyCode shift = XKeysymToKeycode(m_display, XK_Shift_L); - return (m_keyboard[m_keycode / 8] & (1 << (m_keycode % 8))) != 0 - && (m_keyboard[shift / 8] & (1 << (shift % 8))) == 0; + return (m_keyboard[m_keycode / 8] & (1 << (m_keycode % 8))) != 0; } ControlState KeyboardMouse::Button::GetState() const -- cgit v1.2.3 From b9fc26540e8abd557a4b08dc951a10ca69f7a0d8 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Wed, 9 Jan 2013 21:56:17 -0500 Subject: Change key names, and put it in section Controls. --- Source/Core/InputCommon/Src/InputConfig.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/InputCommon/Src/InputConfig.cpp b/Source/Core/InputCommon/Src/InputConfig.cpp index a0b396db0a..1988a9ebb7 100644 --- a/Source/Core/InputCommon/Src/InputConfig.cpp +++ b/Source/Core/InputCommon/Src/InputConfig.cpp @@ -41,20 +41,20 @@ bool InputPlugin::LoadConfig(bool isGC) std::string type; if (isGC) { - type = "GC"; + type = "Pad"; path = "Profiles/GCPad/"; } else { - type = "Wii"; + type = "Wiimote"; path = "Profiles/Wiimote/"; } game_ini.Load(File::GetUserPath(D_GAMECONFIG_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini"); for (int i = 0; i < 4; i++) { - if (game_ini.Exists("Core", (type + "Profile" + num[i]).c_str())) + if (game_ini.Exists("Controls", (type + "Profile" + num[i]).c_str())) { - game_ini.Get("Core", (type + "Profile" + num[i]).c_str(), &profile[i]); + game_ini.Get("Controls", (type + "Profile" + num[i]).c_str(), &profile[i]); if (File::Exists(File::GetUserPath(D_CONFIG_IDX) + path + profile[i] + ".ini")) useProfile[i] = true; else -- cgit v1.2.3 From a8a71fdd8c55eecf1b42b22828ba82f053fbbd3b Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 9 Jan 2013 20:57:10 -0600 Subject: Resize the KDE theme's "Open" icon from 24x24px to 22x22px to match the rest of the icons. --- Source/Core/DolphinWX/resources/KDE.h | 752 ++++++++++++++-------------------- 1 file changed, 316 insertions(+), 436 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/resources/KDE.h b/Source/Core/DolphinWX/resources/KDE.h index 64d350fd2b..23fcd4272b 100644 --- a/Source/Core/DolphinWX/resources/KDE.h +++ b/Source/Core/DolphinWX/resources/KDE.h @@ -1261,442 +1261,322 @@ static const unsigned char Toolbar_Log3_png[] = { }; static const unsigned char Toolbar_Open3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x06, 0x23, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0x64, 0x96, 0x4B, 0x6C, 0x5D, 0x47, 0x19, -0xC7, 0x7F, 0x73, 0x66, 0xCE, 0x39, 0xF7, 0xDC, 0x97, 0xEF, -0xBD, 0x7E, 0x25, 0x7E, 0x34, 0x71, 0x1C, 0xDB, 0xB1, 0x93, -0x34, 0xB8, 0x09, 0x45, 0x11, 0xB4, 0x42, 0x3C, 0x04, 0x24, -0x08, 0x95, 0xAA, 0x6C, 0x11, 0x3B, 0x24, 0x58, 0xB0, 0x62, -0xC1, 0x06, 0x58, 0x95, 0x15, 0x6B, 0x04, 0x95, 0x90, 0x22, -0x45, 0x42, 0x20, 0x84, 0x84, 0x5A, 0x90, 0xA2, 0xB4, 0xA1, -0x0A, 0x10, 0xDA, 0xF4, 0x45, 0x5A, 0x35, 0x4D, 0x1B, 0x39, -0x76, 0xDD, 0xD8, 0x71, 0x62, 0xFB, 0x3A, 0xBE, 0xCF, 0x73, -0xCE, 0xCC, 0x9C, 0x61, 0x71, 0x93, 0x6B, 0x94, 0x8C, 0x34, -0xCB, 0xF9, 0xFF, 0xBE, 0xEF, 0xFF, 0x9F, 0x4F, 0x33, 0xE2, -0xE7, 0x3F, 0x7E, 0x96, 0x47, 0x97, 0xD6, 0x29, 0x23, 0x23, -0xFB, 0xC9, 0x9C, 0xE0, 0xE0, 0xF4, 0x1C, 0x4F, 0x9D, 0x38, -0xC6, 0xC5, 0x0B, 0x2F, 0xB3, 0xBE, 0xD9, 0xE0, 0x9B, 0x67, -0x5E, 0xE0, 0xED, 0x37, 0xFE, 0xE5, 0xE5, 0x72, 0xB2, 0x36, -0x36, 0x31, 0x39, 0x5A, 0xAB, 0x96, 0xC6, 0x47, 0x07, 0x6B, -0xFB, 0xEE, 0x6D, 0x6D, 0xD5, 0x56, 0x3E, 0xBD, 0x5D, 0xA9, -0xD5, 0x2A, 0x33, 0x33, 0xB3, 0x4F, 0xFE, 0xF6, 0xC0, 0x89, -0xE7, 0x2E, 0x03, 0x28, 0x6B, 0xED, 0x63, 0x00, 0x6B, 0x2D, -0xA9, 0x36, 0x44, 0xB9, 0xD2, 0x50, 0x2E, 0x0C, 0x8F, 0x26, -0x49, 0xF7, 0xD0, 0xC2, 0xC2, 0xFC, 0xD4, 0x91, 0x2C, 0x3B, -0x34, 0x56, 0xCD, 0x0E, 0x7D, 0xF7, 0xEC, 0xE9, 0x7D, 0xBE, -0xF2, 0x46, 0xF3, 0x39, 0x3F, 0x9F, 0x68, 0x4D, 0x92, 0xA6, -0xCC, 0x1E, 0x1C, 0xE1, 0xE9, 0x93, 0x47, 0xE8, 0xEE, 0x6E, -0xE0, 0xA2, 0x91, 0xAB, 0x40, 0x0F, 0x10, 0x45, 0xD1, 0x63, -0x00, 0x63, 0x2C, 0xE3, 0x63, 0xFB, 0x5E, 0x3C, 0xF3, 0xF5, -0x67, 0x7E, 0xA6, 0xA4, 0xC5, 0x59, 0xCD, 0xD4, 0xC4, 0x1C, -0x41, 0xA8, 0xC8, 0x3A, 0x0D, 0x3C, 0xE9, 0x83, 0x2F, 0xA9, -0x6F, 0xB5, 0x48, 0x8C, 0x47, 0x21, 0x0A, 0x09, 0x03, 0x87, -0x6E, 0xDE, 0xA5, 0xB9, 0xB3, 0x85, 0xEF, 0xEB, 0x38, 0xFF, -0x40, 0x4B, 0xD5, 0x06, 0x47, 0x1F, 0x03, 0x48, 0xBF, 0xC8, -0xC4, 0xD8, 0xE8, 0xE9, 0xEA, 0x50, 0x48, 0xBC, 0xB3, 0x8B, -0x11, 0x90, 0xB4, 0x76, 0xE9, 0x36, 0x1C, 0x42, 0x08, 0x8A, -0x05, 0xC9, 0xD6, 0x7A, 0x9D, 0xE5, 0x3B, 0x1D, 0x8E, 0x1F, -0x99, 0x24, 0xF0, 0x0C, 0xD6, 0x81, 0x36, 0x19, 0x5A, 0x5B, -0xA4, 0x49, 0xD4, 0x43, 0x2D, 0x2F, 0xCB, 0x2C, 0x8F, 0x6E, -0xC8, 0x88, 0x93, 0xA4, 0x9B, 0x34, 0xDA, 0x74, 0x93, 0x94, -0x34, 0x4D, 0x31, 0x5A, 0xE3, 0x32, 0x8B, 0x92, 0x82, 0x77, -0x3E, 0xB8, 0xC5, 0x4B, 0x7F, 0xB8, 0xC4, 0x67, 0xEB, 0x9B, -0xE4, 0x23, 0x1F, 0xEB, 0x00, 0x04, 0x36, 0xCB, 0xB0, 0xD6, -0x10, 0xC7, 0xCD, 0xC2, 0x43, 0x80, 0xEA, 0xB4, 0x9B, 0x8F, -0x75, 0xD0, 0x6A, 0xB6, 0x48, 0x92, 0x34, 0x76, 0x59, 0x86, -0x6F, 0x3B, 0x28, 0x61, 0x70, 0x08, 0xA4, 0x10, 0x04, 0x04, -0x2C, 0x2D, 0xAD, 0xB2, 0x76, 0xA7, 0xCE, 0xD1, 0xF9, 0x59, -0x10, 0x02, 0x01, 0x38, 0xC0, 0x1A, 0x83, 0x31, 0x06, 0x52, -0x9D, 0xDF, 0x03, 0x6C, 0xAF, 0x3E, 0x22, 0xEF, 0xB8, 0xBF, -0xBD, 0x03, 0xF1, 0x13, 0xDD, 0x90, 0x2E, 0x2B, 0xED, 0x3C, -0x1B, 0xBA, 0x46, 0x9C, 0x85, 0x28, 0x09, 0x83, 0x61, 0x8A, -0xF1, 0x96, 0x28, 0x87, 0x06, 0x29, 0x0C, 0x08, 0xAF, 0x77, -0xCA, 0x39, 0x8C, 0x36, 0x68, 0x9D, 0xA2, 0x04, 0x61, 0x1F, -0x10, 0x8F, 0x3E, 0x72, 0x4D, 0x85, 0x24, 0xAA, 0x34, 0x69, -0x88, 0x4A, 0xE7, 0xC2, 0xE6, 0x51, 0xAE, 0x37, 0x07, 0x89, -0x5D, 0xD4, 0xEB, 0x40, 0x4A, 0x72, 0x4E, 0xB2, 0x12, 0x37, -0xD9, 0xD4, 0x1B, 0x58, 0xA7, 0x00, 0x0B, 0x42, 0x90, 0xD9, -0x0C, 0xA3, 0x13, 0x4C, 0x9A, 0x20, 0x70, 0xFD, 0x0C, 0x94, -0x37, 0x7D, 0xE6, 0xFF, 0xC4, 0x05, 0x3A, 0x8E, 0x19, 0xAC, -0x0D, 0x2D, 0x6C, 0x57, 0x2A, 0xDF, 0x5B, 0xEF, 0x14, 0xC9, -0x85, 0x96, 0x8A, 0xB0, 0x48, 0xCF, 0x43, 0x2A, 0x50, 0xBE, -0x22, 0xF3, 0x4B, 0xDC, 0xF6, 0x66, 0x69, 0x88, 0x2A, 0x08, -0x8D, 0x00, 0xB2, 0xCC, 0xA2, 0x8D, 0x46, 0x6B, 0x8D, 0x73, -0xCE, 0xEB, 0x03, 0xB6, 0x57, 0x3E, 0x7C, 0xA8, 0x4E, 0x9A, -0x74, 0x29, 0x16, 0xCB, 0xC1, 0xC0, 0xF4, 0xA1, 0x3F, 0xF9, -0x03, 0x83, 0x03, 0x79, 0x93, 0x20, 0x85, 0x87, 0x10, 0x3E, -0x4A, 0x4A, 0x94, 0x52, 0x28, 0x3F, 0xA0, 0x10, 0x0A, 0xF2, -0xBE, 0xC0, 0x93, 0xF2, 0x81, 0xA9, 0x3D, 0xFF, 0xB5, 0xD6, -0x68, 0x9D, 0xE2, 0x32, 0x27, 0xFA, 0x80, 0x8D, 0xE5, 0x9B, -0x08, 0x1C, 0x38, 0x47, 0xAB, 0xD5, 0x60, 0xF1, 0xCB, 0xDF, -0xFE, 0x49, 0x6D, 0x74, 0xFC, 0x68, 0xB7, 0xD3, 0x40, 0x2A, -0x09, 0xC2, 0xC3, 0xF7, 0x43, 0xF0, 0x14, 0x78, 0x92, 0x20, -0x0C, 0x50, 0x4A, 0x21, 0xA5, 0x87, 0xF7, 0xB0, 0x4E, 0xE7, -0xD0, 0x5A, 0x63, 0xB4, 0xC6, 0xE8, 0x04, 0x27, 0x9C, 0xEB, -0x03, 0xA4, 0x0A, 0x90, 0xCA, 0xA7, 0xDD, 0xB8, 0x4F, 0x90, -0x2B, 0x30, 0x79, 0x78, 0xEE, 0x79, 0xA5, 0x04, 0x81, 0x54, -0x48, 0x21, 0x50, 0x41, 0x48, 0xAC, 0x53, 0x76, 0x37, 0x6F, -0x83, 0x17, 0x50, 0xA8, 0x0E, 0x21, 0xA4, 0x4F, 0x2E, 0x97, -0x43, 0x3E, 0xE8, 0x20, 0xCB, 0x32, 0x8C, 0x4E, 0x31, 0x46, -0xA3, 0xD3, 0x14, 0x21, 0xBC, 0xBD, 0x0E, 0xBA, 0x5B, 0xB7, -0x69, 0xBA, 0x80, 0xEA, 0xE4, 0x0C, 0x81, 0x92, 0xE3, 0xC5, -0x52, 0xF9, 0xA8, 0xC2, 0x23, 0x0B, 0x42, 0x94, 0x92, 0x78, -0x32, 0xA0, 0xBD, 0x71, 0x8B, 0x62, 0xFD, 0x2D, 0xC6, 0xFD, -0x2D, 0xB6, 0xBB, 0x73, 0xB4, 0x9A, 0x96, 0x4E, 0xDC, 0xAB, -0x18, 0x4F, 0x62, 0x6D, 0xD6, 0xAB, 0x3E, 0xED, 0x65, 0x60, -0x8D, 0x95, 0x7D, 0x40, 0x7B, 0x67, 0x93, 0x0F, 0xDF, 0x7F, -0x9F, 0x7D, 0xD3, 0x2B, 0x1C, 0x39, 0xFD, 0x35, 0x55, 0x2C, -0x95, 0xA5, 0x1F, 0xFA, 0x78, 0x12, 0x82, 0x30, 0x04, 0x99, -0x23, 0xAF, 0x34, 0x03, 0x7E, 0x97, 0x31, 0x77, 0x8B, 0xC8, -0x8B, 0xB0, 0x6D, 0x9F, 0xAD, 0xED, 0x1D, 0x42, 0x19, 0x41, -0x4E, 0xA1, 0xD3, 0x14, 0xAD, 0x53, 0x8C, 0xD5, 0x64, 0x36, -0x23, 0xEE, 0x34, 0xFB, 0x73, 0xE0, 0xE5, 0x8B, 0x65, 0xA2, -0x42, 0x91, 0x5B, 0xD7, 0xDE, 0xE2, 0xF5, 0x3F, 0x9F, 0xB3, -0xC6, 0xE8, 0x9D, 0x91, 0xD1, 0x22, 0x61, 0x18, 0x92, 0xC6, -0x09, 0x9B, 0xF7, 0xEE, 0xD2, 0x35, 0x3E, 0x69, 0x34, 0xCE, -0x5A, 0xF9, 0x59, 0xBA, 0xC5, 0x29, 0x72, 0xBE, 0xA2, 0x5A, -0x29, 0xF2, 0xF1, 0x86, 0xA3, 0xBD, 0xD1, 0x45, 0x7A, 0x19, -0xC6, 0x18, 0x8C, 0xD6, 0xD8, 0xCC, 0x90, 0xC6, 0xAD, 0x52, -0x1F, 0xB0, 0xBA, 0xBA, 0x1A, 0x6D, 0xD7, 0x77, 0x26, 0x93, -0x8C, 0xD9, 0x9D, 0x7B, 0xEB, 0xD1, 0xDB, 0x97, 0x5F, 0xFB, -0xA4, 0x93, 0xC0, 0xCA, 0xCA, 0xA7, 0x2C, 0xAF, 0x2C, 0xB3, -0xB9, 0xB1, 0x46, 0xE2, 0x95, 0x68, 0x15, 0x8F, 0xD1, 0x2A, -0x9F, 0xA4, 0x5D, 0x3A, 0x45, 0x2A, 0x0A, 0x0C, 0x97, 0x7C, -0xDE, 0x5C, 0x36, 0xBC, 0xFA, 0xDF, 0x6D, 0x8A, 0xA1, 0xEC, -0x65, 0xA0, 0x7B, 0x90, 0x2C, 0xB3, 0xFD, 0x41, 0xF3, 0xE6, -0xE6, 0xE6, 0xD2, 0x6A, 0xB5, 0x1A, 0x00, 0xE3, 0x80, 0xFA, -0xEB, 0xB9, 0xDF, 0xBC, 0xFA, 0xD1, 0xF5, 0x25, 0x3C, 0x3F, -0x20, 0x97, 0xCB, 0x51, 0xAD, 0x54, 0x18, 0x28, 0x15, 0x90, -0xD1, 0x30, 0x71, 0xEE, 0x20, 0xAE, 0x30, 0xC6, 0xEC, 0xB1, -0x45, 0xCA, 0x03, 0x15, 0x02, 0xFF, 0xC1, 0x04, 0x1B, 0xBD, -0xB7, 0xB5, 0x06, 0xE7, 0xFC, 0x3E, 0x60, 0x6C, 0x6C, 0xCC, -0x4E, 0x4C, 0x4C, 0x2C, 0x01, 0x6D, 0xE0, 0xF0, 0xD2, 0x07, -0xEF, 0x5C, 0xBD, 0xF4, 0xC7, 0xDF, 0x5D, 0x19, 0x1A, 0xDD, -0x4F, 0x75, 0x70, 0x84, 0x7C, 0x3E, 0x22, 0x9F, 0xCF, 0x53, -0x2C, 0x84, 0x44, 0x21, 0xF8, 0xD2, 0x30, 0xBD, 0x70, 0x8C, -0xCA, 0xF0, 0x08, 0xD6, 0x68, 0x3C, 0xCF, 0xEB, 0xF9, 0xAF, -0x7B, 0x39, 0x58, 0xA3, 0x01, 0xFA, 0x21, 0x7B, 0xE7, 0xCF, -0x9F, 0xE7, 0xE6, 0xCD, 0x9B, 0xE4, 0x72, 0x39, 0x0D, 0x8C, -0x02, 0xDE, 0xD6, 0x7B, 0xAF, 0xDC, 0xF4, 0xD6, 0xDF, 0xC5, -0x8B, 0x6A, 0x0C, 0xEC, 0x1B, 0x27, 0x97, 0x2F, 0x20, 0x7D, -0x85, 0x27, 0x3D, 0x1C, 0xA0, 0x8D, 0x41, 0x86, 0x79, 0x9C, -0x8C, 0x48, 0xB5, 0xEE, 0xF9, 0x6F, 0x0C, 0xD6, 0x18, 0xAC, -0xD1, 0x64, 0x26, 0xD9, 0xB3, 0x48, 0x29, 0x85, 0x52, 0x4A, -0x6A, 0xAD, 0xE7, 0x41, 0x94, 0x81, 0xDA, 0xF8, 0xFE, 0xA1, -0xD2, 0x33, 0x63, 0x1D, 0x76, 0xFF, 0xF9, 0x6B, 0x3E, 0xFB, -0xE8, 0x3D, 0x12, 0xF2, 0x78, 0x85, 0x01, 0xFC, 0x62, 0x05, -0x55, 0x2C, 0x91, 0x05, 0x05, 0x3A, 0xED, 0x0E, 0xC9, 0xD2, -0x6B, 0x70, 0x7F, 0x19, 0xE3, 0x14, 0x46, 0x1B, 0xD2, 0xB8, -0x8B, 0xD1, 0x09, 0x61, 0xA1, 0xB2, 0xD3, 0xBF, 0xA6, 0xD5, -0x6A, 0x95, 0x34, 0x4D, 0x6D, 0xBD, 0x5E, 0xFF, 0x0F, 0xB8, -0xEF, 0x03, 0x63, 0xB1, 0x51, 0x51, 0x6E, 0x68, 0x8E, 0x03, -0xF1, 0x4B, 0xDC, 0xBA, 0xF4, 0x0A, 0x9B, 0xFB, 0xBF, 0x84, -0xA8, 0x4E, 0xE3, 0x54, 0x1E, 0x61, 0x63, 0xB2, 0xC6, 0x0A, -0xE1, 0xC7, 0x57, 0x98, 0x70, 0x4B, 0x4E, 0x8A, 0xC3, 0x24, -0x26, 0x13, 0x49, 0xB7, 0x45, 0xBB, 0xB1, 0xC5, 0xA1, 0x13, -0x5F, 0xBD, 0x36, 0xF5, 0xE4, 0x37, 0x7E, 0xD0, 0x07, 0x4C, -0x4F, 0x4F, 0xE3, 0x9C, 0x63, 0x66, 0x66, 0x66, 0xF9, 0xC6, -0x8D, 0x1B, 0x17, 0xD7, 0xD6, 0xD6, 0x5E, 0x88, 0xF2, 0xE1, -0x81, 0x9D, 0x56, 0x4A, 0x33, 0xB6, 0x0C, 0x07, 0xDB, 0xA4, -0x77, 0xFE, 0x02, 0x5B, 0x03, 0xC8, 0xA8, 0x42, 0xA1, 0x50, -0x5E, 0x3E, 0x7E, 0xFC, 0xF8, 0xEB, 0xE7, 0x6E, 0x96, 0x97, -0x7E, 0xF5, 0xB7, 0x65, 0xB9, 0x70, 0xAA, 0xFB, 0xDC, 0x17, -0xB3, 0xEE, 0x62, 0xF3, 0xFE, 0x26, 0xD3, 0x4F, 0x9D, 0xB9, -0x32, 0x77, 0xEA, 0xEC, 0x57, 0xC0, 0x25, 0x7D, 0xC0, 0xFC, -0xFC, 0x3C, 0x42, 0x08, 0x86, 0x87, 0x87, 0x09, 0xC3, 0xF0, -0xCA, 0xDA, 0xDA, 0xDA, 0xDD, 0x8B, 0xFF, 0x78, 0xBB, 0xF1, -0x85, 0xDF, 0xFF, 0xE2, 0xF9, 0x93, 0xB3, 0xC3, 0xC7, 0xF4, -0xFE, 0xC9, 0x6B, 0xD5, 0xE1, 0x03, 0xFF, 0xB6, 0x26, 0xBE, -0x3A, 0x39, 0xF7, 0xF4, 0x1B, 0x59, 0x96, 0x7D, 0x32, 0xF8, -0xC4, 0x38, 0x8D, 0x97, 0x37, 0x01, 0xCA, 0x8D, 0xDD, 0xFA, -0x77, 0x92, 0x56, 0x95, 0xE9, 0xC5, 0x6F, 0x5D, 0x98, 0x5A, -0x3C, 0x7B, 0xA6, 0xDB, 0xB8, 0x97, 0x21, 0x0D, 0x7B, 0x0F, -0x4E, 0xA7, 0xD3, 0x7B, 0x87, 0xA5, 0xA4, 0x5E, 0xAF, 0x33, -0x35, 0x35, 0xB5, 0xD4, 0x4E, 0xBC, 0x5F, 0xFE, 0xFD, 0xF2, -0x8D, 0x17, 0x7F, 0xF4, 0xD3, 0xF3, 0x95, 0x4E, 0xDB, 0xDE, -0xD3, 0xBA, 0xC3, 0xED, 0x1B, 0x6F, 0x82, 0x8C, 0x30, 0x69, -0x93, 0xE6, 0xEA, 0x12, 0xF3, 0x47, 0x0E, 0xF3, 0xB9, 0xC5, -0xCF, 0x37, 0xA6, 0xA6, 0x0E, 0x9C, 0x1F, 0x59, 0x38, 0x7B, -0x7D, 0x24, 0x3F, 0xF9, 0xC3, 0xA4, 0xDB, 0xCC, 0x74, 0xDA, -0x25, 0xC8, 0xEF, 0x7D, 0x24, 0xFE, 0x37, 0x00, 0x7B, 0x59, -0x0C, 0x33, 0xED, 0xB3, 0xBB, 0x03, 0x00, 0x00, 0x00, 0x00, -0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 +0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, +0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x08, 0x06, +0x00, 0x00, 0x00, 0xc4, 0xb4, 0x6c, 0x3b, 0x00, 0x00, 0x0a, 0x39, 0x69, 0x43, +0x43, 0x50, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x68, 0x6f, 0x70, 0x20, 0x49, +0x43, 0x43, 0x20, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x00, 0x48, +0xc7, 0x9d, 0x96, 0x77, 0x54, 0x54, 0xd7, 0x16, 0x87, 0xcf, 0xbd, 0x77, 0x7a, +0xa1, 0xcd, 0x30, 0xd2, 0x19, 0x7a, 0x93, 0x2e, 0x30, 0x80, 0xf4, 0x2e, 0x20, +0x1d, 0x04, 0x51, 0x18, 0x66, 0x06, 0x18, 0xca, 0x00, 0xc3, 0x0c, 0x4d, 0x6c, +0x88, 0xa8, 0x40, 0x44, 0x11, 0x11, 0x01, 0x45, 0x90, 0xa0, 0x80, 0x01, 0xa3, +0xa1, 0x48, 0xac, 0x88, 0x62, 0x21, 0x28, 0xa8, 0x60, 0x0f, 0x48, 0x10, 0x50, +0x62, 0x30, 0x8a, 0xa8, 0xa8, 0x64, 0x46, 0xd6, 0x4a, 0x7c, 0x79, 0x79, 0xef, +0xe5, 0xe5, 0xf7, 0xc7, 0xbd, 0xdf, 0xda, 0x67, 0xef, 0x73, 0xf7, 0xd9, 0x7b, +0x9f, 0xb5, 0x2e, 0x00, 0x24, 0x4f, 0x1f, 0x2e, 0x2f, 0x05, 0x96, 0x02, 0x20, +0x99, 0x27, 0xe0, 0x07, 0x7a, 0x38, 0xd3, 0x57, 0x85, 0x47, 0xd0, 0xb1, 0xfd, +0x00, 0x06, 0x78, 0x80, 0x01, 0xa6, 0x00, 0x30, 0x59, 0xe9, 0xa9, 0xbe, 0x41, +0xee, 0xc1, 0x40, 0x24, 0x2f, 0x37, 0x17, 0x7a, 0xba, 0xc8, 0x09, 0xfc, 0x8b, +0xde, 0x0c, 0x01, 0x48, 0xfc, 0xbe, 0x65, 0xe8, 0xe9, 0x4f, 0xa7, 0x83, 0xff, +0x4f, 0xd2, 0xac, 0x54, 0xbe, 0x00, 0x00, 0xc8, 0x5f, 0xc4, 0xe6, 0x6c, 0x4e, +0x3a, 0x4b, 0xc4, 0xf9, 0x22, 0x4e, 0xca, 0x14, 0xa4, 0x8a, 0xed, 0x33, 0x22, +0xa6, 0xc6, 0x24, 0x8a, 0x19, 0x46, 0x89, 0x99, 0x2f, 0x4a, 0x50, 0xc4, 0x72, +0x62, 0x8e, 0x5b, 0xe4, 0xa5, 0x9f, 0x7d, 0x16, 0xd9, 0x51, 0xcc, 0xec, 0x64, +0x1e, 0x5b, 0xc4, 0xe2, 0x9c, 0x53, 0xd9, 0xc9, 0x6c, 0x31, 0xf7, 0x88, 0x78, +0x7b, 0x86, 0x90, 0x23, 0x62, 0xc4, 0x47, 0xc4, 0x05, 0x19, 0x5c, 0x4e, 0xa6, +0x88, 0x6f, 0x8b, 0x58, 0x33, 0x49, 0x98, 0xcc, 0x15, 0xf1, 0x5b, 0x71, 0x6c, +0x32, 0x87, 0x99, 0x0e, 0x00, 0x8a, 0x24, 0xb6, 0x0b, 0x38, 0xac, 0x78, 0x11, +0x9b, 0x88, 0x98, 0xc4, 0x0f, 0x0e, 0x74, 0x11, 0xf1, 0x72, 0x00, 0x70, 0xa4, +0xb8, 0x2f, 0x38, 0xe6, 0x0b, 0x16, 0x70, 0xb2, 0x04, 0xe2, 0x43, 0xb9, 0xa4, +0xa4, 0x66, 0xf3, 0xb9, 0x71, 0xf1, 0x02, 0xba, 0x2e, 0x4b, 0x8f, 0x6e, 0x6a, +0x6d, 0xcd, 0xa0, 0x7b, 0x72, 0x32, 0x93, 0x38, 0x02, 0x81, 0xa1, 0x3f, 0x93, +0x95, 0xc8, 0xe4, 0xb3, 0xe9, 0x2e, 0x29, 0xc9, 0xa9, 0x4c, 0x5e, 0x36, 0x00, +0x8b, 0x67, 0xfe, 0x2c, 0x19, 0x71, 0x6d, 0xe9, 0xa2, 0x22, 0x5b, 0x9a, 0x5a, +0x5b, 0x5a, 0x1a, 0x9a, 0x19, 0x99, 0x7e, 0x51, 0xa8, 0xff, 0xba, 0xf8, 0x37, +0x25, 0xee, 0xed, 0x22, 0xbd, 0x0a, 0xf8, 0xdc, 0x33, 0x88, 0xd6, 0xf7, 0x87, +0xed, 0xaf, 0xfc, 0x52, 0xea, 0x00, 0x60, 0xcc, 0x8a, 0x6a, 0xb3, 0xeb, 0x0f, +0x5b, 0xcc, 0x7e, 0x00, 0x3a, 0xb6, 0x02, 0x20, 0x77, 0xff, 0x0f, 0x9b, 0xe6, +0x21, 0x00, 0x24, 0x45, 0x7d, 0x6b, 0xbf, 0xf1, 0xc5, 0x79, 0x68, 0xe2, 0x79, +0x89, 0x17, 0x08, 0x52, 0x6d, 0x8c, 0x8d, 0x33, 0x33, 0x33, 0x8d, 0xb8, 0x1c, +0x96, 0x91, 0xb8, 0xa0, 0xbf, 0xeb, 0x7f, 0x3a, 0xfc, 0x0d, 0x7d, 0xf1, 0x3d, +0x23, 0xf1, 0x76, 0xbf, 0x97, 0x87, 0xee, 0xca, 0x89, 0x65, 0x0a, 0x93, 0x04, +0x74, 0x71, 0xdd, 0x58, 0x29, 0x49, 0x29, 0x42, 0x3e, 0x3d, 0x3d, 0x95, 0xc9, +0xe2, 0xd0, 0x0d, 0xff, 0x3c, 0xc4, 0xff, 0x38, 0xf0, 0xaf, 0xf3, 0x58, 0x1a, +0xc8, 0x89, 0xe5, 0xf0, 0x39, 0x3c, 0x51, 0x44, 0xa8, 0x68, 0xca, 0xb8, 0xbc, +0x38, 0x51, 0xbb, 0x79, 0x6c, 0xae, 0x80, 0x9b, 0xc2, 0xa3, 0x73, 0x79, 0xff, +0xa9, 0x89, 0xff, 0x30, 0xec, 0x4f, 0x5a, 0x9c, 0x6b, 0x91, 0x28, 0xf5, 0x9f, +0x00, 0x35, 0xca, 0x08, 0x48, 0xdd, 0xa0, 0x02, 0xe4, 0xe7, 0x3e, 0x80, 0xa2, +0x10, 0x01, 0x12, 0x79, 0x50, 0xdc, 0xf5, 0xdf, 0xfb, 0xe6, 0x83, 0x0f, 0x05, +0xe2, 0x9b, 0x17, 0xa6, 0x3a, 0xb1, 0x38, 0xf7, 0x9f, 0x05, 0xfd, 0xfb, 0xae, +0x70, 0x89, 0xf8, 0x91, 0xce, 0x8d, 0xfb, 0x1c, 0xe7, 0x12, 0x18, 0x4c, 0x67, +0x09, 0xf9, 0x19, 0x8b, 0x6b, 0xe2, 0x6b, 0x09, 0xd0, 0x80, 0x00, 0x24, 0x01, +0x15, 0xc8, 0x03, 0x15, 0xa0, 0x01, 0x74, 0x81, 0x21, 0x30, 0x03, 0x56, 0xc0, +0x16, 0x38, 0x02, 0x37, 0xb0, 0x02, 0xf8, 0x81, 0x60, 0x10, 0x0e, 0xd6, 0x02, +0x16, 0x88, 0x07, 0xc9, 0x80, 0x0f, 0x32, 0x41, 0x2e, 0xd8, 0x0c, 0x0a, 0x40, +0x11, 0xd8, 0x05, 0xf6, 0x82, 0x4a, 0x50, 0x03, 0xea, 0x41, 0x23, 0x68, 0x01, +0x27, 0x40, 0x07, 0x38, 0x0d, 0x2e, 0x80, 0xcb, 0xe0, 0x3a, 0xb8, 0x09, 0xee, +0x80, 0x07, 0x60, 0x04, 0x8c, 0x83, 0xe7, 0x60, 0x06, 0xbc, 0x01, 0xf3, 0x10, +0x04, 0x61, 0x21, 0x32, 0x44, 0x81, 0xe4, 0x21, 0x55, 0x48, 0x0b, 0x32, 0x80, +0xcc, 0x20, 0x06, 0x64, 0x0f, 0xb9, 0x41, 0x3e, 0x50, 0x20, 0x14, 0x0e, 0x45, +0x43, 0x71, 0x10, 0x0f, 0x12, 0x42, 0xb9, 0xd0, 0x16, 0xa8, 0x08, 0x2a, 0x85, +0x2a, 0xa1, 0x5a, 0xa8, 0x11, 0xfa, 0x16, 0x3a, 0x05, 0x5d, 0x80, 0xae, 0x42, +0x03, 0xd0, 0x3d, 0x68, 0x14, 0x9a, 0x82, 0x7e, 0x85, 0xde, 0xc3, 0x08, 0x4c, +0x82, 0xa9, 0xb0, 0x32, 0xac, 0x0d, 0x1b, 0xc3, 0x0c, 0xd8, 0x09, 0xf6, 0x86, +0x83, 0xe1, 0x35, 0x70, 0x1c, 0x9c, 0x06, 0xe7, 0xc0, 0xf9, 0xf0, 0x4e, 0xb8, +0x02, 0xae, 0x83, 0x8f, 0xc1, 0xed, 0xf0, 0x05, 0xf8, 0x3a, 0x7c, 0x07, 0x1e, +0x81, 0x9f, 0xc3, 0xb3, 0x08, 0x40, 0x88, 0x08, 0x0d, 0x51, 0x43, 0x0c, 0x11, +0x06, 0xe2, 0x82, 0xf8, 0x21, 0x11, 0x48, 0x2c, 0xc2, 0x47, 0x36, 0x20, 0x85, +0x48, 0x39, 0x52, 0x87, 0xb4, 0x20, 0x5d, 0x48, 0x2f, 0x72, 0x0b, 0x19, 0x41, +0xa6, 0x91, 0x77, 0x28, 0x0c, 0x8a, 0x82, 0xa2, 0xa3, 0x0c, 0x51, 0xb6, 0x28, +0x4f, 0x54, 0x08, 0x8a, 0x85, 0x4a, 0x43, 0x6d, 0x40, 0x15, 0xa3, 0x2a, 0x51, +0x47, 0x51, 0xed, 0xa8, 0x1e, 0xd4, 0x2d, 0xd4, 0x28, 0x6a, 0x06, 0xf5, 0x09, +0x4d, 0x46, 0x2b, 0xa1, 0x0d, 0xd0, 0x36, 0x68, 0x2f, 0xf4, 0x2a, 0x74, 0x1c, +0x3a, 0x13, 0x5d, 0x80, 0x2e, 0x47, 0x37, 0xa0, 0xdb, 0xd0, 0x97, 0xd0, 0x77, +0xd0, 0xe3, 0xe8, 0x37, 0x18, 0x0c, 0x86, 0x86, 0xd1, 0xc1, 0x58, 0x61, 0x3c, +0x31, 0xe1, 0x98, 0x04, 0xcc, 0x3a, 0x4c, 0x31, 0xe6, 0x00, 0xa6, 0x15, 0x73, +0x1e, 0x33, 0x80, 0x19, 0xc3, 0xcc, 0x62, 0xb1, 0x58, 0x79, 0xac, 0x01, 0xd6, +0x0e, 0xeb, 0x87, 0x65, 0x62, 0x05, 0xd8, 0x02, 0xec, 0x7e, 0xec, 0x31, 0xec, +0x39, 0xec, 0x20, 0x76, 0x1c, 0xfb, 0x16, 0x47, 0xc4, 0xa9, 0xe2, 0xcc, 0x70, +0xee, 0xb8, 0x08, 0x1c, 0x0f, 0x97, 0x87, 0x2b, 0xc7, 0x35, 0xe1, 0xce, 0xe2, +0x06, 0x71, 0x13, 0xb8, 0x79, 0xbc, 0x14, 0x5e, 0x0b, 0x6f, 0x83, 0xf7, 0xc3, +0xb3, 0xf1, 0xd9, 0xf8, 0x12, 0x7c, 0x3d, 0xbe, 0x0b, 0x7f, 0x03, 0x3f, 0x8e, +0x9f, 0x27, 0x48, 0x13, 0x74, 0x08, 0x76, 0x84, 0x60, 0x42, 0x02, 0x61, 0x33, +0xa1, 0x82, 0xd0, 0x42, 0xb8, 0x44, 0x78, 0x48, 0x78, 0x45, 0x24, 0x12, 0xd5, +0x89, 0xd6, 0xc4, 0x00, 0x22, 0x97, 0xb8, 0x89, 0x58, 0x41, 0x3c, 0x4e, 0xbc, +0x42, 0x1c, 0x25, 0xbe, 0x23, 0xc9, 0x90, 0xf4, 0x49, 0x2e, 0xa4, 0x48, 0x92, +0x90, 0xb4, 0x93, 0x74, 0x84, 0x74, 0x9e, 0x74, 0x8f, 0xf4, 0x8a, 0x4c, 0x26, +0x6b, 0x93, 0x1d, 0xc9, 0x11, 0x64, 0x01, 0x79, 0x27, 0xb9, 0x91, 0x7c, 0x91, +0xfc, 0x98, 0xfc, 0x56, 0x82, 0x22, 0x61, 0x24, 0xe1, 0x25, 0xc1, 0x96, 0xd8, +0x28, 0x51, 0x25, 0xd1, 0x2e, 0x31, 0x28, 0xf1, 0x42, 0x12, 0x2f, 0xa9, 0x25, +0xe9, 0x24, 0xb9, 0x56, 0x32, 0x47, 0xb2, 0x5c, 0xf2, 0xa4, 0xe4, 0x0d, 0xc9, +0x69, 0x29, 0xbc, 0x94, 0xb6, 0x94, 0x8b, 0x14, 0x53, 0x6a, 0x83, 0x54, 0x95, +0xd4, 0x29, 0xa9, 0x61, 0xa9, 0x59, 0x69, 0x8a, 0xb4, 0xa9, 0xb4, 0x9f, 0x74, +0xb2, 0x74, 0xb1, 0x74, 0x93, 0xf4, 0x55, 0xe9, 0x49, 0x19, 0xac, 0x8c, 0xb6, +0x8c, 0x9b, 0x0c, 0x5b, 0x26, 0x5f, 0xe6, 0xb0, 0xcc, 0x45, 0x99, 0x31, 0x0a, +0x42, 0xd1, 0xa0, 0xb8, 0x50, 0x58, 0x94, 0x2d, 0x94, 0x7a, 0xca, 0x25, 0xca, +0x38, 0x15, 0x43, 0xd5, 0xa1, 0x7a, 0x51, 0x13, 0xa8, 0x45, 0xd4, 0x6f, 0xa8, +0xfd, 0xd4, 0x19, 0x59, 0x19, 0xd9, 0x65, 0xb2, 0xa1, 0xb2, 0x59, 0xb2, 0x55, +0xb2, 0x67, 0x64, 0x47, 0x68, 0x08, 0x4d, 0x9b, 0xe6, 0x45, 0x4b, 0xa2, 0x95, +0xd0, 0x4e, 0xd0, 0x86, 0x68, 0xef, 0x97, 0x28, 0x2f, 0x71, 0x5a, 0xc2, 0x59, +0xb2, 0x63, 0x49, 0xcb, 0x92, 0xc1, 0x25, 0x73, 0x72, 0x8a, 0x72, 0x8e, 0x72, +0x1c, 0xb9, 0x42, 0xb9, 0x56, 0xb9, 0x3b, 0x72, 0xef, 0xe5, 0xe9, 0xf2, 0x6e, +0xf2, 0x89, 0xf2, 0xbb, 0xe5, 0x3b, 0xe4, 0x1f, 0x29, 0xa0, 0x14, 0xf4, 0x15, +0x02, 0x14, 0x32, 0x15, 0x0e, 0x2a, 0x5c, 0x52, 0x98, 0x56, 0xa4, 0x2a, 0xda, +0x2a, 0xb2, 0x14, 0x0b, 0x15, 0x4f, 0x28, 0xde, 0x57, 0x82, 0x95, 0xf4, 0x95, +0x02, 0x95, 0xd6, 0x29, 0x1d, 0x56, 0xea, 0x53, 0x9a, 0x55, 0x56, 0x51, 0xf6, +0x50, 0x4e, 0x55, 0xde, 0xaf, 0x7c, 0x51, 0x79, 0x5a, 0x85, 0xa6, 0xe2, 0xa8, +0x92, 0xa0, 0x52, 0xa6, 0x72, 0x56, 0x65, 0x4a, 0x95, 0xa2, 0x6a, 0xaf, 0xca, +0x55, 0x2d, 0x53, 0x3d, 0xa7, 0xfa, 0x8c, 0x2e, 0x4b, 0x77, 0xa2, 0x27, 0xd1, +0x2b, 0xe8, 0x3d, 0xf4, 0x19, 0x35, 0x25, 0x35, 0x4f, 0x35, 0xa1, 0x5a, 0xad, +0x5a, 0xbf, 0xda, 0xbc, 0xba, 0x8e, 0x7a, 0x88, 0x7a, 0x9e, 0x7a, 0xab, 0xfa, +0x23, 0x0d, 0x82, 0x06, 0x43, 0x23, 0x56, 0xa3, 0x4c, 0xa3, 0x5b, 0x63, 0x46, +0x53, 0x55, 0xd3, 0x57, 0x33, 0x57, 0xb3, 0x59, 0xf3, 0xbe, 0x16, 0x5e, 0x8b, +0xa1, 0x15, 0xaf, 0xb5, 0x4f, 0xab, 0x57, 0x6b, 0x4e, 0x5b, 0x47, 0x3b, 0x4c, +0x7b, 0x9b, 0x76, 0x87, 0xf6, 0xa4, 0x8e, 0x9c, 0x8e, 0x97, 0x4e, 0x8e, 0x4e, +0xb3, 0xce, 0x43, 0x5d, 0xb2, 0xae, 0x83, 0x6e, 0x9a, 0x6e, 0x9d, 0xee, 0x6d, +0x3d, 0x8c, 0x1e, 0x43, 0x2f, 0x51, 0xef, 0x80, 0xde, 0x4d, 0x7d, 0x58, 0xdf, +0x42, 0x3f, 0x5e, 0xbf, 0x4a, 0xff, 0x86, 0x01, 0x6c, 0x60, 0x69, 0xc0, 0x35, +0x38, 0x60, 0x30, 0xb0, 0x14, 0xbd, 0xd4, 0x7a, 0x29, 0x6f, 0x69, 0xdd, 0xd2, +0x61, 0x43, 0x92, 0xa1, 0x93, 0x61, 0x86, 0x61, 0xb3, 0xe1, 0xa8, 0x11, 0xcd, +0xc8, 0xc7, 0x28, 0xcf, 0xa8, 0xc3, 0xe8, 0x85, 0xb1, 0xa6, 0x71, 0x84, 0xf1, +0x6e, 0xe3, 0x5e, 0xe3, 0x4f, 0x26, 0x16, 0x26, 0x49, 0x26, 0xf5, 0x26, 0x0f, +0x4c, 0x65, 0x4c, 0x57, 0x98, 0xe6, 0x99, 0x76, 0x99, 0xfe, 0x6a, 0xa6, 0x6f, +0xc6, 0x32, 0xab, 0x32, 0xbb, 0x6d, 0x4e, 0x36, 0x77, 0x37, 0xdf, 0x68, 0xde, +0x69, 0xfe, 0x72, 0x99, 0xc1, 0x32, 0xce, 0xb2, 0x83, 0xcb, 0xee, 0x5a, 0x50, +0x2c, 0x7c, 0x2d, 0xb6, 0x59, 0x74, 0x5b, 0x7c, 0xb4, 0xb4, 0xb2, 0xe4, 0x5b, +0xb6, 0x58, 0x4e, 0x59, 0x69, 0x5a, 0x45, 0x5b, 0x55, 0x5b, 0x0d, 0x33, 0xa8, +0x0c, 0x7f, 0x46, 0x31, 0xe3, 0x8a, 0x35, 0xda, 0xda, 0xd9, 0x7a, 0xa3, 0xf5, +0x69, 0xeb, 0x77, 0x36, 0x96, 0x36, 0x02, 0x9b, 0x13, 0x36, 0xbf, 0xd8, 0x1a, +0xda, 0x26, 0xda, 0x36, 0xd9, 0x4e, 0x2e, 0xd7, 0x59, 0xce, 0x59, 0x5e, 0xbf, +0x7c, 0xcc, 0x4e, 0xdd, 0x8e, 0x69, 0x57, 0x6b, 0x37, 0x62, 0x4f, 0xb7, 0x8f, +0xb6, 0x3f, 0x64, 0x3f, 0xe2, 0xa0, 0xe6, 0xc0, 0x74, 0xa8, 0x73, 0x78, 0xe2, +0xa8, 0xe1, 0xc8, 0x76, 0x6c, 0x70, 0x9c, 0x70, 0xd2, 0x73, 0x4a, 0x70, 0x3a, +0xe6, 0xf4, 0xc2, 0xd9, 0xc4, 0x99, 0xef, 0xdc, 0xe6, 0x3c, 0xe7, 0x62, 0xe3, +0xb2, 0xde, 0xe5, 0xbc, 0x2b, 0xe2, 0xea, 0xe1, 0x5a, 0xe8, 0xda, 0xef, 0x26, +0xe3, 0x16, 0xe2, 0x56, 0xe9, 0xf6, 0xd8, 0x5d, 0xdd, 0x3d, 0xce, 0xbd, 0xd9, +0x7d, 0xc6, 0xc3, 0xc2, 0x63, 0x9d, 0xc7, 0x79, 0x4f, 0xb4, 0xa7, 0xb7, 0xe7, +0x6e, 0xcf, 0x61, 0x2f, 0x65, 0x2f, 0x96, 0x57, 0xa3, 0xd7, 0xcc, 0x0a, 0xab, +0x15, 0xeb, 0x57, 0xf4, 0x78, 0x93, 0xbc, 0x83, 0xbc, 0x2b, 0xbd, 0x9f, 0xf8, +0xe8, 0xfb, 0xf0, 0x7d, 0xba, 0x7c, 0x61, 0xdf, 0x15, 0xbe, 0x7b, 0x7c, 0x1f, +0xae, 0xd4, 0x5a, 0xc9, 0x5b, 0xd9, 0xe1, 0x07, 0xfc, 0xbc, 0xfc, 0xf6, 0xf8, +0x3d, 0xf2, 0xd7, 0xf1, 0x4f, 0xf3, 0xff, 0x3e, 0x00, 0x13, 0xe0, 0x1f, 0x50, +0x15, 0xf0, 0x34, 0xd0, 0x34, 0x30, 0x37, 0xb0, 0x37, 0x88, 0x12, 0x14, 0x15, +0xd4, 0x14, 0xf4, 0x26, 0xd8, 0x39, 0xb8, 0x24, 0xf8, 0x41, 0x88, 0x6e, 0x88, +0x30, 0xa4, 0x3b, 0x54, 0x32, 0x34, 0x32, 0xb4, 0x31, 0x74, 0x2e, 0xcc, 0x35, +0xac, 0x34, 0x6c, 0x64, 0x95, 0xf1, 0xaa, 0xf5, 0xab, 0xae, 0x87, 0x2b, 0x84, +0x73, 0xc3, 0x3b, 0x23, 0xb0, 0x11, 0xa1, 0x11, 0x0d, 0x11, 0xb3, 0xab, 0xdd, +0x56, 0xef, 0x5d, 0x3d, 0x1e, 0x69, 0x11, 0x59, 0x10, 0x39, 0xb4, 0x46, 0x67, +0x4d, 0xd6, 0x9a, 0xab, 0x6b, 0x15, 0xd6, 0x26, 0xad, 0x3d, 0x13, 0x25, 0x19, +0xc5, 0x8c, 0x3a, 0x19, 0x8d, 0x8e, 0x0e, 0x8b, 0x6e, 0x8a, 0xfe, 0xc0, 0xf4, +0x63, 0xd6, 0x31, 0x67, 0x63, 0xbc, 0x62, 0xaa, 0x63, 0x66, 0x58, 0x2e, 0xac, +0x7d, 0xac, 0xe7, 0x6c, 0x47, 0x76, 0x19, 0x7b, 0x8a, 0x63, 0xc7, 0x29, 0xe5, +0x4c, 0xc4, 0xda, 0xc5, 0x96, 0xc6, 0x4e, 0xc6, 0xd9, 0xc5, 0xed, 0x89, 0x9b, +0x8a, 0x77, 0x88, 0x2f, 0x8f, 0x9f, 0xe6, 0xba, 0x70, 0x2b, 0xb9, 0x2f, 0x13, +0x3c, 0x13, 0x6a, 0x12, 0xe6, 0x12, 0xfd, 0x12, 0x8f, 0x24, 0x2e, 0x24, 0x85, +0x25, 0xb5, 0x26, 0xe3, 0x92, 0xa3, 0x93, 0x4f, 0xf1, 0x64, 0x78, 0x89, 0xbc, +0x9e, 0x14, 0x95, 0x94, 0xac, 0x94, 0x81, 0x54, 0x83, 0xd4, 0x82, 0xd4, 0x91, +0x34, 0x9b, 0xb4, 0xbd, 0x69, 0x33, 0x7c, 0x6f, 0x7e, 0x43, 0x3a, 0x94, 0xbe, +0x26, 0xbd, 0x53, 0x40, 0x15, 0xfd, 0x4c, 0xf5, 0x09, 0x75, 0x85, 0x5b, 0x85, +0xa3, 0x19, 0xf6, 0x19, 0x55, 0x19, 0x6f, 0x33, 0x43, 0x33, 0x4f, 0x66, 0x49, +0x67, 0xf1, 0xb2, 0xfa, 0xb2, 0xf5, 0xb3, 0x77, 0x64, 0x4f, 0xe4, 0xb8, 0xe7, +0x7c, 0xbd, 0x0e, 0xb5, 0x8e, 0xb5, 0xae, 0x3b, 0x57, 0x2d, 0x77, 0x73, 0xee, +0xe8, 0x7a, 0xa7, 0xf5, 0xb5, 0x1b, 0xa0, 0x0d, 0x31, 0x1b, 0xba, 0x37, 0x6a, +0x6c, 0xcc, 0xdf, 0x38, 0xbe, 0xc9, 0x63, 0xd3, 0xd1, 0xcd, 0x84, 0xcd, 0x89, +0x9b, 0x7f, 0xc8, 0x33, 0xc9, 0x2b, 0xcd, 0x7b, 0xbd, 0x25, 0x6c, 0x4b, 0x57, +0xbe, 0x72, 0xfe, 0xa6, 0xfc, 0xb1, 0xad, 0x1e, 0x5b, 0x9b, 0x0b, 0x24, 0x0a, +0xf8, 0x05, 0xc3, 0xdb, 0x6c, 0xb7, 0xd5, 0x6c, 0x47, 0x6d, 0xe7, 0x6e, 0xef, +0xdf, 0x61, 0xbe, 0x63, 0xff, 0x8e, 0x4f, 0x85, 0xec, 0xc2, 0x6b, 0x45, 0x26, +0x45, 0xe5, 0x45, 0x1f, 0x8a, 0x59, 0xc5, 0xd7, 0xbe, 0x32, 0xfd, 0xaa, 0xe2, +0xab, 0x85, 0x9d, 0xb1, 0x3b, 0xfb, 0x4b, 0x2c, 0x4b, 0x0e, 0xee, 0xc2, 0xec, +0xe2, 0xed, 0x1a, 0xda, 0xed, 0xb0, 0xfb, 0x68, 0xa9, 0x74, 0x69, 0x4e, 0xe9, +0xd8, 0x1e, 0xdf, 0x3d, 0xed, 0x65, 0xf4, 0xb2, 0xc2, 0xb2, 0xd7, 0x7b, 0xa3, +0xf6, 0x5e, 0x2d, 0x5f, 0x56, 0x5e, 0xb3, 0x8f, 0xb0, 0x4f, 0xb8, 0x6f, 0xa4, +0xc2, 0xa7, 0xa2, 0x73, 0xbf, 0xe6, 0xfe, 0x5d, 0xfb, 0x3f, 0x54, 0xc6, 0x57, +0xde, 0xa9, 0x72, 0xae, 0x6a, 0xad, 0x56, 0xaa, 0xde, 0x51, 0x3d, 0x77, 0x80, +0x7d, 0x60, 0xf0, 0xa0, 0xe3, 0xc1, 0x96, 0x1a, 0xe5, 0x9a, 0xa2, 0x9a, 0xf7, +0x87, 0xb8, 0x87, 0xee, 0xd6, 0x7a, 0xd4, 0xb6, 0xd7, 0x69, 0xd7, 0x95, 0x1f, +0xc6, 0x1c, 0xce, 0x38, 0xfc, 0xb4, 0x3e, 0xb4, 0xbe, 0xf7, 0x6b, 0xc6, 0xd7, +0x8d, 0x0d, 0x0a, 0x0d, 0x45, 0x0d, 0x1f, 0x8f, 0xf0, 0x8e, 0x8c, 0x1c, 0x0d, +0x3c, 0xda, 0xd3, 0x68, 0xd5, 0xd8, 0xd8, 0xa4, 0xd4, 0x54, 0xd2, 0x0c, 0x37, +0x0b, 0x9b, 0xa7, 0x8e, 0x45, 0x1e, 0xbb, 0xf9, 0x8d, 0xeb, 0x37, 0x9d, 0x2d, +0x86, 0x2d, 0xb5, 0xad, 0xb4, 0xd6, 0xa2, 0xe3, 0xe0, 0xb8, 0xf0, 0xf8, 0xb3, +0x6f, 0xa3, 0xbf, 0x1d, 0x3a, 0xe1, 0x7d, 0xa2, 0xfb, 0x24, 0xe3, 0x64, 0xcb, +0x77, 0x5a, 0xdf, 0x55, 0xb7, 0x51, 0xda, 0x0a, 0xdb, 0xa1, 0xf6, 0xec, 0xf6, +0x99, 0x8e, 0xf8, 0x8e, 0x91, 0xce, 0xf0, 0xce, 0x81, 0x53, 0x2b, 0x4e, 0x75, +0x77, 0xd9, 0x76, 0xb5, 0x7d, 0x6f, 0xf4, 0xfd, 0x91, 0xd3, 0x6a, 0xa7, 0xab, +0xce, 0xc8, 0x9e, 0x29, 0x39, 0x4b, 0x38, 0x9b, 0x7f, 0x76, 0xe1, 0x5c, 0xce, +0xb9, 0xd9, 0xf3, 0xa9, 0xe7, 0xa7, 0x2f, 0xc4, 0x5d, 0x18, 0xeb, 0x8e, 0xea, +0x7e, 0x70, 0x71, 0xd5, 0xc5, 0xdb, 0x3d, 0x01, 0x3d, 0xfd, 0x97, 0xbc, 0x2f, +0x5d, 0xb9, 0xec, 0x7e, 0xf9, 0x62, 0xaf, 0x53, 0xef, 0xb9, 0x2b, 0x76, 0x57, +0x4e, 0x5f, 0xb5, 0xb9, 0x7a, 0xea, 0x1a, 0xe3, 0x5a, 0xc7, 0x75, 0xcb, 0xeb, +0xed, 0x7d, 0x16, 0x7d, 0x6d, 0x3f, 0x58, 0xfc, 0xd0, 0xd6, 0x6f, 0xd9, 0xdf, +0x7e, 0xc3, 0xea, 0x46, 0xe7, 0x4d, 0xeb, 0x9b, 0x5d, 0x03, 0xcb, 0x07, 0xce, +0x0e, 0x3a, 0x0c, 0x5e, 0xb8, 0xe5, 0x7a, 0xeb, 0xf2, 0x6d, 0xaf, 0xdb, 0xd7, +0xef, 0xac, 0xbc, 0x33, 0x30, 0x14, 0x32, 0x74, 0x77, 0x38, 0x72, 0x78, 0xe4, +0x2e, 0xfb, 0xee, 0xe4, 0xbd, 0xa4, 0x7b, 0x2f, 0xef, 0x67, 0xdc, 0x9f, 0x7f, +0xb0, 0xe9, 0x21, 0xfa, 0x61, 0xe1, 0x23, 0xa9, 0x47, 0xe5, 0x8f, 0x95, 0x1e, +0xd7, 0xfd, 0xa8, 0xf7, 0x63, 0xeb, 0x88, 0xe5, 0xc8, 0x99, 0x51, 0xd7, 0xd1, +0xbe, 0x27, 0x41, 0x4f, 0x1e, 0x8c, 0xb1, 0xc6, 0x9e, 0xff, 0x94, 0xfe, 0xd3, +0x87, 0xf1, 0xfc, 0xa7, 0xe4, 0xa7, 0xe5, 0x13, 0xaa, 0x13, 0x8d, 0x93, 0x66, +0x93, 0xa7, 0xa7, 0xdc, 0xa7, 0x6e, 0x3e, 0x5b, 0xfd, 0x6c, 0xfc, 0x79, 0xea, +0xf3, 0xf9, 0xe9, 0x82, 0x9f, 0xa5, 0x7f, 0xae, 0x7e, 0xa1, 0xfb, 0xe2, 0xbb, +0x5f, 0x1c, 0x7f, 0xe9, 0x9b, 0x59, 0x35, 0x33, 0xfe, 0x92, 0xff, 0x72, 0xe1, +0xd7, 0xe2, 0x57, 0xf2, 0xaf, 0x8e, 0xbc, 0x5e, 0xf6, 0xba, 0x7b, 0xd6, 0x7f, +0xf6, 0xf1, 0x9b, 0xe4, 0x37, 0xf3, 0x73, 0x85, 0x6f, 0xe5, 0xdf, 0x1e, 0x7d, +0xc7, 0x78, 0xd7, 0xfb, 0x3e, 0xec, 0xfd, 0xc4, 0x7c, 0xe6, 0x07, 0xec, 0x87, +0x8a, 0x8f, 0x7a, 0x1f, 0xbb, 0x3e, 0x79, 0x7f, 0x7a, 0xb8, 0x90, 0xbc, 0xb0, +0xf0, 0x1b, 0xf7, 0x84, 0xf3, 0xfb, 0xe2, 0xe6, 0x1d, 0xc2, 0x00, 0x00, 0x00, +0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, +0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, +0x07, 0xdd, 0x01, 0x0a, 0x02, 0x35, 0x0f, 0x01, 0xa3, 0x67, 0xcc, 0x00, 0x00, +0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, +0xbd, 0xa7, 0x93, 0x00, 0x00, 0x05, 0x50, 0x49, 0x44, 0x41, 0x54, 0x18, 0x19, +0x6d, 0xc1, 0x5b, 0x88, 0x5c, 0x67, 0x01, 0xc0, 0xf1, 0xff, 0x77, 0x39, 0xe7, +0xcc, 0x7d, 0x76, 0xb2, 0xd9, 0xfb, 0x36, 0xdb, 0x24, 0x9b, 0xa4, 0x4d, 0x2f, +0xd1, 0x98, 0x62, 0x09, 0xb6, 0x25, 0x12, 0xd4, 0x3e, 0x28, 0x42, 0xd1, 0x80, +0x16, 0x5f, 0x4a, 0xa5, 0x0f, 0x56, 0x51, 0x1f, 0x6a, 0x11, 0x45, 0xa8, 0x45, +0x04, 0xb5, 0x68, 0xf1, 0x45, 0x9f, 0x0a, 0xb1, 0x52, 0x41, 0x6c, 0x20, 0x50, +0x7c, 0xb0, 0x68, 0x2c, 0x69, 0x5a, 0x6a, 0xb5, 0xe2, 0x62, 0x53, 0x4c, 0x8d, +0xb9, 0x6c, 0x92, 0x4e, 0x76, 0x27, 0x3b, 0xb3, 0x3b, 0x67, 0xce, 0x77, 0x75, +0x26, 0x2c, 0x18, 0x64, 0x7f, 0x3f, 0xc1, 0xff, 0x39, 0xfe, 0xd3, 0xc7, 0x79, +0xf4, 0x6b, 0xbf, 0x64, 0xe4, 0x17, 0x3f, 0xfa, 0x8a, 0xb8, 0xff, 0xbe, 0x03, +0xa2, 0xb3, 0x72, 0x59, 0x38, 0x6b, 0xc5, 0xee, 0x5d, 0x3b, 0xc5, 0xf2, 0xf2, +0x55, 0xdd, 0x5e, 0xed, 0x4e, 0xb4, 0xc6, 0xc7, 0x67, 0xc7, 0x5b, 0x63, 0xf3, +0x52, 0x30, 0xf5, 0xfe, 0xf9, 0x0b, 0x63, 0x4a, 0xca, 0xfd, 0xf3, 0x3b, 0x76, +0x9f, 0x98, 0x9c, 0x9c, 0xff, 0xdd, 0xe4, 0xde, 0xa3, 0x56, 0xb0, 0x85, 0x1f, +0x7e, 0xeb, 0xd3, 0xfa, 0xd0, 0x81, 0x7b, 0xa6, 0xd3, 0x72, 0xf5, 0xae, 0xe9, +0xa9, 0x89, 0xbd, 0xbd, 0x6e, 0x67, 0x97, 0x75, 0x76, 0x71, 0x7e, 0x66, 0x7a, +0xb7, 0x92, 0xcc, 0xa4, 0x89, 0x1a, 0xd3, 0x5a, 0x90, 0x17, 0x16, 0x81, 0xa2, +0x35, 0xbe, 0x8d, 0x68, 0xd6, 0xb0, 0x62, 0xf2, 0xf9, 0x98, 0x4e, 0x3d, 0x55, +0x9b, 0x3d, 0x98, 0x6b, 0xb6, 0x30, 0xd6, 0x68, 0x1e, 0x59, 0x58, 0x98, 0x39, +0x3e, 0x3d, 0xd1, 0x98, 0xf4, 0x76, 0xc0, 0x6d, 0x33, 0xf3, 0xa4, 0x59, 0x42, +0xc8, 0x7b, 0xa8, 0x34, 0xc3, 0x78, 0x4f, 0xbb, 0xdd, 0x8f, 0xa5, 0x52, 0x49, +0x54, 0x4a, 0x8a, 0x58, 0x74, 0x58, 0x5b, 0xbd, 0x4e, 0xac, 0x54, 0x72, 0xad, +0x27, 0x22, 0x43, 0x9a, 0x2d, 0xcc, 0xcd, 0x4e, 0x4f, 0xd5, 0xeb, 0x49, 0x96, +0x48, 0x87, 0x8f, 0x91, 0x41, 0xaf, 0x4b, 0x7f, 0x2d, 0x22, 0xb5, 0xc2, 0xf5, +0x06, 0x9c, 0x3d, 0xb7, 0x4c, 0x56, 0x69, 0x8a, 0x83, 0xfb, 0x9b, 0x58, 0x5b, +0xe0, 0x7c, 0xc4, 0xb9, 0x40, 0xb4, 0x45, 0x2a, 0x4c, 0x4f, 0x30, 0x24, 0xd9, +0xc2, 0x7a, 0x3f, 0x1f, 0x0c, 0xd6, 0x07, 0xc6, 0xe4, 0x39, 0xc2, 0xae, 0xa3, +0xc2, 0x06, 0x99, 0xc8, 0xa9, 0x48, 0xc3, 0xa9, 0x33, 0x4b, 0xbc, 0xfc, 0xfb, +0xb7, 0x30, 0xc6, 0x22, 0x12, 0x45, 0x8c, 0x82, 0x10, 0x22, 0xce, 0x3b, 0x8c, +0x19, 0x54, 0xf3, 0x7e, 0x57, 0x30, 0xa4, 0xd9, 0x42, 0xb1, 0xd1, 0xb1, 0x29, +0x7d, 0x17, 0x5d, 0x89, 0xce, 0x40, 0x53, 0x84, 0x04, 0xa5, 0x04, 0x35, 0x17, +0x58, 0x5d, 0xb9, 0x81, 0x70, 0x39, 0x49, 0x22, 0x41, 0x08, 0x46, 0x82, 0xf7, +0x58, 0x6b, 0x40, 0xf9, 0x92, 0xf0, 0x5e, 0x30, 0xa4, 0xb9, 0xc5, 0x0f, 0x5e, +0x3a, 0xc5, 0xd3, 0xc7, 0x1e, 0x84, 0x7c, 0x75, 0xe3, 0x72, 0xbf, 0x36, 0x68, +0x9b, 0xdd, 0x5c, 0xc8, 0xc7, 0x30, 0x21, 0x41, 0x29, 0x49, 0x3d, 0xf5, 0x5c, +0x88, 0xd7, 0xb0, 0x72, 0x15, 0x11, 0x03, 0x23, 0x11, 0xf0, 0xce, 0x61, 0x8b, +0x02, 0x9d, 0x85, 0x54, 0x4a, 0xc1, 0x88, 0x66, 0xd3, 0x93, 0xcf, 0x3c, 0xc7, +0xd3, 0xc7, 0x1e, 0x64, 0xa4, 0x73, 0xd7, 0xd7, 0xef, 0x3d, 0x6d, 0xc7, 0xe7, +0x6c, 0xa8, 0x83, 0x02, 0xa9, 0x05, 0x51, 0x6b, 0x7a, 0x3a, 0x61, 0x99, 0x05, +0xae, 0xc7, 0x35, 0x0a, 0x51, 0x01, 0xe1, 0x20, 0x82, 0x75, 0x16, 0x6b, 0x0a, +0x54, 0x08, 0x52, 0x10, 0x05, 0x43, 0x9a, 0x4d, 0xd3, 0xfb, 0x0e, 0x31, 0xf2, +0xb3, 0x93, 0x67, 0x1e, 0xd2, 0xb5, 0xd6, 0x37, 0xd0, 0xa5, 0x34, 0x8d, 0x16, +0x25, 0x04, 0x5a, 0x29, 0x92, 0x44, 0x23, 0x55, 0x42, 0x39, 0x53, 0x90, 0xd4, +0x08, 0x32, 0x01, 0x02, 0x21, 0x06, 0x9c, 0xb3, 0x18, 0x6b, 0x48, 0x7d, 0x10, +0x31, 0x70, 0x93, 0x66, 0xd3, 0xb7, 0x3f, 0xff, 0x00, 0x5f, 0xfa, 0xe6, 0xf7, +0xa6, 0x62, 0x14, 0x4f, 0xd4, 0x6b, 0xb5, 0x39, 0x67, 0x0b, 0x84, 0xd0, 0x31, +0x49, 0x52, 0x21, 0x75, 0x06, 0x52, 0x51, 0x4a, 0x34, 0xa9, 0x56, 0x24, 0x0a, +0x84, 0xe0, 0xa6, 0xe0, 0x3d, 0xd6, 0x58, 0x9c, 0x29, 0xf0, 0xd1, 0x83, 0xe4, +0x26, 0xc9, 0xd0, 0x23, 0x4f, 0x7e, 0x87, 0x91, 0x03, 0x87, 0x8f, 0xdc, 0x56, +0x6d, 0x36, 0x8e, 0xa4, 0x5a, 0x91, 0x4a, 0x19, 0xab, 0x59, 0x26, 0x84, 0x80, +0x4e, 0xfb, 0x22, 0x2b, 0xd7, 0x2e, 0x71, 0x63, 0xa3, 0x87, 0x4a, 0x4a, 0x94, +0x4a, 0x25, 0xa4, 0x94, 0x10, 0x23, 0xce, 0x59, 0xac, 0x35, 0x18, 0x53, 0x40, +0x8c, 0x48, 0xa9, 0x18, 0xd1, 0x0c, 0xfd, 0xf6, 0xf9, 0x67, 0x18, 0xf1, 0xde, +0xef, 0xa9, 0x64, 0xe5, 0xa9, 0x44, 0x69, 0x54, 0xb9, 0x2c, 0x92, 0xac, 0xc2, +0xda, 0xf2, 0xfb, 0x94, 0xdb, 0xa7, 0xd9, 0xa1, 0x2f, 0xd1, 0xde, 0xb8, 0x93, +0xde, 0xba, 0x21, 0x1f, 0x58, 0x42, 0x08, 0x20, 0x24, 0xce, 0x3a, 0x9c, 0x31, +0x58, 0x63, 0x71, 0xce, 0x2b, 0xef, 0x3c, 0x23, 0x9a, 0xff, 0x11, 0x69, 0x9a, +0xaa, 0x4a, 0xad, 0x4a, 0x92, 0xa5, 0x08, 0x40, 0x66, 0x55, 0xca, 0x49, 0xa4, +0x92, 0x59, 0xa6, 0xfc, 0x65, 0x52, 0xdd, 0xc4, 0xac, 0x47, 0x6e, 0xac, 0xf5, +0x48, 0xf4, 0x14, 0x48, 0xb0, 0x45, 0x81, 0x75, 0x86, 0xe0, 0x3d, 0x45, 0xde, +0xaf, 0x6c, 0xf4, 0x56, 0x05, 0x43, 0x72, 0xef, 0xde, 0xbd, 0x42, 0x29, 0x95, +0x00, 0xc9, 0xf9, 0xb3, 0x4b, 0xb9, 0x54, 0xbe, 0xa8, 0x37, 0xca, 0x0c, 0xf2, +0x01, 0xd7, 0x96, 0x2f, 0xd1, 0xcd, 0x23, 0x79, 0x79, 0x81, 0x0b, 0xad, 0x4f, +0xb2, 0x5e, 0xbf, 0x93, 0x72, 0x9a, 0x50, 0xae, 0x56, 0xf9, 0xdb, 0xb9, 0x82, +0xfe, 0xca, 0x00, 0x29, 0x03, 0xd6, 0x58, 0x9c, 0xb7, 0x38, 0x9b, 0xd7, 0xcc, +0xa0, 0x27, 0x19, 0xd2, 0x49, 0x92, 0x64, 0x43, 0xf3, 0xfd, 0x7e, 0xbf, 0xfc, +0xea, 0xcb, 0xbf, 0xee, 0xcd, 0xec, 0xdc, 0x75, 0x6e, 0xe7, 0xfe, 0x0f, 0xed, +0xbf, 0x72, 0xe9, 0x62, 0x8c, 0x21, 0x08, 0x9d, 0x55, 0x18, 0xd4, 0xee, 0x60, +0x23, 0x15, 0xa8, 0xac, 0x46, 0x56, 0xeb, 0x50, 0xcd, 0x7a, 0x9c, 0x39, 0x37, +0xe0, 0xf0, 0x9e, 0x0d, 0xe6, 0x6b, 0x01, 0x6b, 0x0c, 0xd6, 0x58, 0x82, 0xf7, +0x69, 0x0c, 0x81, 0x11, 0xbd, 0xb8, 0xb8, 0x58, 0x5c, 0xbd, 0x7a, 0xb5, 0x3f, +0x34, 0xf7, 0xf7, 0xd7, 0xff, 0xd8, 0xbf, 0xfd, 0xee, 0x8f, 0x9c, 0xaa, 0x8e, +0xcf, 0xde, 0xd1, 0xda, 0x3e, 0x29, 0xb1, 0x06, 0x95, 0x68, 0xa4, 0xca, 0x08, +0x2a, 0x25, 0x2d, 0x67, 0xdc, 0x7b, 0xe8, 0x7e, 0xba, 0x9d, 0x15, 0xa4, 0x5f, +0x47, 0x10, 0x31, 0xc6, 0x60, 0x9d, 0xc1, 0x59, 0x43, 0x8c, 0x51, 0x0b, 0x10, +0x0c, 0xc9, 0x13, 0x27, 0x4e, 0xc4, 0x95, 0x95, 0x95, 0x2b, 0x4a, 0x29, 0x07, +0x4c, 0xbe, 0xfd, 0xca, 0xaf, 0xde, 0x5e, 0x3d, 0xfb, 0xc6, 0xf9, 0x46, 0x73, +0x9c, 0xe6, 0xd4, 0x1c, 0xb5, 0x7a, 0x83, 0x4a, 0x39, 0xa1, 0x94, 0x06, 0x94, +0x70, 0x6c, 0x9b, 0x9e, 0xa6, 0xdc, 0x68, 0xe1, 0xd1, 0xf8, 0x10, 0xb0, 0xb6, +0xc0, 0x59, 0x8b, 0xb3, 0x86, 0xe8, 0x5d, 0x1a, 0xbc, 0x15, 0x0c, 0x49, 0x86, +0x4a, 0x43, 0xc0, 0x0e, 0xa0, 0x25, 0xdd, 0x7a, 0xb2, 0xa8, 0x2f, 0x9a, 0xf2, +0xd5, 0xd7, 0x58, 0xbb, 0x7e, 0x99, 0x90, 0x8d, 0xa1, 0x1a, 0xdb, 0x48, 0xeb, +0xe3, 0xe8, 0x7a, 0x03, 0xab, 0xaa, 0xb1, 0x30, 0x0e, 0xf3, 0xc1, 0x7b, 0xb8, +0xbc, 0x8b, 0xf3, 0x22, 0x3a, 0x63, 0xa2, 0x19, 0x6c, 0x20, 0x94, 0xd2, 0x49, +0x56, 0x66, 0x44, 0x33, 0xe4, 0xbd, 0x77, 0xde, 0xfb, 0x15, 0x60, 0x31, 0x88, +0x54, 0x4e, 0x4c, 0x2f, 0x24, 0xb3, 0xee, 0x5d, 0x2e, 0xbe, 0xfe, 0x02, 0xed, +0xd9, 0x07, 0x48, 0x26, 0xf6, 0x80, 0xae, 0x44, 0x7c, 0x5f, 0x0c, 0xae, 0x9f, +0x13, 0xd9, 0x7f, 0x4e, 0x52, 0xc9, 0xaf, 0x10, 0xfd, 0x3c, 0x85, 0x0d, 0xf4, +0x3a, 0xd7, 0x44, 0x73, 0x62, 0x81, 0x52, 0x75, 0xec, 0xd9, 0x6d, 0xb3, 0xfb, +0xba, 0x0c, 0x69, 0x86, 0xec, 0x50, 0xab, 0xd5, 0x7a, 0xb3, 0xd7, 0x5b, 0x9f, +0x4d, 0x12, 0xfd, 0x99, 0x3c, 0x96, 0xb6, 0x17, 0xb6, 0x4b, 0x63, 0xe3, 0x1d, +0xcc, 0x3f, 0xdf, 0x81, 0x7f, 0x4f, 0xa2, 0x2a, 0x2d, 0x51, 0xa9, 0x34, 0xd6, +0xe6, 0xe6, 0xe7, 0x5e, 0xfb, 0x6b, 0xa7, 0x7d, 0x69, 0xe9, 0x5f, 0xed, 0xf1, +0xcf, 0xe6, 0xf6, 0x21, 0x5d, 0xb4, 0x27, 0x2a, 0x63, 0x33, 0x45, 0x6b, 0x7a, +0xf1, 0xcb, 0xf7, 0x7c, 0xec, 0xd8, 0x8b, 0x69, 0x73, 0x8f, 0xff, 0xea, 0x87, +0x41, 0x0c, 0x11, 0x63, 0x64, 0x53, 0x5d, 0xa7, 0xd9, 0x27, 0x1e, 0x3b, 0x76, +0xe4, 0x89, 0x47, 0x8e, 0xec, 0x38, 0x5a, 0x4e, 0xc2, 0x8d, 0x52, 0x6d, 0xfb, +0x9f, 0x83, 0xb7, 0xa7, 0xab, 0xcd, 0xc9, 0xd3, 0x97, 0x97, 0xfe, 0xb4, 0x74, +0xdf, 0x47, 0x0f, 0x9b, 0xa3, 0x8f, 0xbf, 0x60, 0x17, 0xe6, 0x9b, 0x1f, 0xff, +0xc2, 0xa7, 0xf6, 0xfd, 0xe6, 0xd0, 0xdd, 0x0b, 0x74, 0x6c, 0xf3, 0xb1, 0x83, +0x0f, 0x3f, 0xf5, 0x12, 0x9b, 0xba, 0x1f, 0x2c, 0x71, 0xd3, 0xdc, 0xdc, 0x1c, +0xb7, 0x10, 0x07, 0x16, 0xb7, 0xa5, 0xef, 0xbe, 0x79, 0x7c, 0xea, 0xca, 0x3f, +0x5e, 0xac, 0xfd, 0xe5, 0xe4, 0xf7, 0xd5, 0xd2, 0x1f, 0x7e, 0x2c, 0x63, 0xff, +0x3d, 0x6e, 0xf5, 0x93, 0xef, 0x7e, 0x71, 0xc7, 0x1b, 0xaf, 0x3c, 0xf7, 0x73, +0x77, 0xed, 0xd5, 0x47, 0xd9, 0xf4, 0xec, 0xe7, 0xa0, 0x7b, 0xe5, 0x2d, 0x46, +0xfe, 0x0b, 0x23, 0x6d, 0x86, 0x4b, 0xa3, 0xa1, 0xde, 0x64, 0x00, 0x00, 0x00, +0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; static const unsigned char Toolbar_Options3_png[] = { -- cgit v1.2.3 From 14b8d3f107c697c900ca0f401f06fc360dca7b5b Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 9 Jan 2013 22:53:04 -0600 Subject: Add support for german region flag. Still need to change image. (currently using a copy of europe flag) --- Source/Core/DiscIO/Src/Volume.h | 1 + Source/Core/DiscIO/Src/VolumeCommon.cpp | 4 +- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 3 + Source/Core/DolphinWX/resources/Flag_Germany.png | Bin 0 -> 795 bytes Source/Core/DolphinWX/resources/Flag_Germany.xpm | 83 +++++++++++++++++++++++ 5 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 Source/Core/DolphinWX/resources/Flag_Germany.png create mode 100644 Source/Core/DolphinWX/resources/Flag_Germany.xpm (limited to 'Source') diff --git a/Source/Core/DiscIO/Src/Volume.h b/Source/Core/DiscIO/Src/Volume.h index f8a6f13ecb..47cbc4f302 100644 --- a/Source/Core/DiscIO/Src/Volume.h +++ b/Source/Core/DiscIO/Src/Volume.h @@ -47,6 +47,7 @@ public: enum ECountry { COUNTRY_EUROPE = 0, + COUNTRY_GERMANY, COUNTRY_FRANCE, COUNTRY_RUSSIA, COUNTRY_USA, diff --git a/Source/Core/DiscIO/Src/VolumeCommon.cpp b/Source/Core/DiscIO/Src/VolumeCommon.cpp index f3389aea42..415af2725a 100644 --- a/Source/Core/DiscIO/Src/VolumeCommon.cpp +++ b/Source/Core/DiscIO/Src/VolumeCommon.cpp @@ -28,10 +28,12 @@ IVolume::ECountry CountrySwitch(u8 CountryCode) // PAL case 'D': // German + return IVolume::COUNTRY_GERMANY; + break; + case 'X': // Used by a couple PAL games case 'Y': // German, french - case 'L': // Japanese import to PAL regions case 'M': // Japanese import to PAL regions case 'S': // Spanish-speaking regions diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index 28051eb390..f0811a9d27 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -36,6 +36,7 @@ #include "Main.h" #include "../resources/Flag_Europe.xpm" +#include "../resources/Flag_Germany.xpm" #include "../resources/Flag_France.xpm" #include "../resources/Flag_Italy.xpm" #include "../resources/Flag_Japan.xpm" @@ -191,6 +192,8 @@ void CGameListCtrl::InitBitmaps() m_FlagImageIndex.resize(DiscIO::IVolume::NUMBER_OF_COUNTRIES); m_FlagImageIndex[DiscIO::IVolume::COUNTRY_EUROPE] = m_imageListSmall->Add(wxBitmap(Flag_Europe_xpm), wxNullBitmap); + m_FlagImageIndex[DiscIO::IVolume::COUNTRY_GERMANY] = + m_imageListSmall->Add(wxBitmap(Flag_Germany_xpm), wxNullBitmap); m_FlagImageIndex[DiscIO::IVolume::COUNTRY_FRANCE] = m_imageListSmall->Add(wxBitmap(Flag_France_xpm), wxNullBitmap); m_FlagImageIndex[DiscIO::IVolume::COUNTRY_USA] = diff --git a/Source/Core/DolphinWX/resources/Flag_Germany.png b/Source/Core/DolphinWX/resources/Flag_Germany.png new file mode 100644 index 0000000000..c41352f36a Binary files /dev/null and b/Source/Core/DolphinWX/resources/Flag_Germany.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_Germany.xpm b/Source/Core/DolphinWX/resources/Flag_Germany.xpm new file mode 100644 index 0000000000..f0ca5a0934 --- /dev/null +++ b/Source/Core/DolphinWX/resources/Flag_Germany.xpm @@ -0,0 +1,83 @@ +/* XPM */ +static const char *const Flag_Germany_xpm[] = { +"96 32 48 1", +" c None", +". c #000000", +"+ c #0000FD", +"@ c #0000FF", +"# c #0808F7", +"$ c #5C5CA3", +"% c #1717E8", +"& c #767680", +"* c #EDED00", +"= c #A5A54D", +"- c #2E2EB9", +"; c #96961A", +"> c #4A4A8E", +", c #0000FB", +"' c #0000F4", +") c #0808EC", +"! c #5C5C9B", +"~ c #1717DD", +"{ c #0000EE", +"] c #767677", +"^ c #A5A547", +"/ c #0000DD", +"( c #2E2EA0", +"_ c #969616", +": c #4A4A7B", +"< c #0000D2", +"[ c #0000C6", +"} c #0808BF", +"| c #5C5C7E", +"1 c #1717B4", +"2 c #0000B9", +"3 c #76765C", +"4 c #A5A537", +"5 c #0808B3", +"6 c #5C5C76", +"7 c #1717A8", +"8 c #0000A9", +"9 c #2E2E7A", +"0 c #969611", +"a c #4A4A5E", +"b c #767654", +"c c #A5A533", +"d c #000097", +"e c #2E2E6D", +"f c #96960F", +"g c #4A4A54", +"h c #000081", +"i c #000077", +" ", +" ", +" ", +" ", +" ", +"................................ ", +".++++++++++++++++++++++++++++++. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@#$%@@@@@@@@@@@@@@. ", +".@@@@@@@@@#$%@&*=@#$%@@@@@@@@@@. ", +".@@@@@@@@@&*=@-;>@&*=@@@@@@@@@@. ", +".@@@@@@@@@-;>@@@@@-;>@@@@@@@@@@. ", +".,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. ", +".''''''')!~''''''''')!~''''''''. ", +".{{{{{{{]*^{{{{{{{{{]*^{{{{{{{{. ", +".///////(_://///////(_:////////. ", +".<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<. ", +".[[[[[[[[[}|1[[[[[}|1[[[[[[[[[[. ", +".2222222223*4256723*42222222222. ", +".88888888890a8b*c890a8888888888. ", +".dddddddddddddefgdddddddddddddd. ", +".hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh. ", +".iiiiiiiiiiiiiiiiiiiiiiiiiiiiii. ", +".iiiiiiiiiiiiiiiiiiiiiiiiiiiiii. ", +"................................ ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; -- cgit v1.2.3 From 3ebe0718b8fde3d1acedb1840c5c8fe44625e8fd Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Thu, 10 Jan 2013 00:22:28 -0500 Subject: Change theme selection to wxChoice. --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 20 ++++++++++---------- Source/Core/DolphinWX/Src/ConfigMain.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index ce4cd9cb22..12deddb572 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -127,7 +127,7 @@ EVT_SLIDER(ID_VOLUME, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_INTERFACE_CONFIRMSTOP, CConfigMain::DisplaySettingsChanged) EVT_CHECKBOX(ID_INTERFACE_USEPANICHANDLERS, CConfigMain::DisplaySettingsChanged) EVT_CHECKBOX(ID_INTERFACE_ONSCREENDISPLAYMESSAGES, CConfigMain::DisplaySettingsChanged) -EVT_RADIOBOX(ID_INTERFACE_THEME, CConfigMain::DisplaySettingsChanged) +EVT_CHOICE(ID_INTERFACE_THEME, CConfigMain::DisplaySettingsChanged) EVT_CHOICE(ID_INTERFACE_LANG, CConfigMain::DisplaySettingsChanged) EVT_BUTTON(ID_HOTKEY_CONFIG, CConfigMain::DisplaySettingsChanged) @@ -500,10 +500,7 @@ void CConfigMain::InitializeGUITooltips() OnScreenDisplayMessages->SetToolTip(_("Show messages on the emulation screen area.\nThese messages include memory card writes, video backend and CPU information, and JIT cache clearing.")); // Display - Themes: Copyright notice - Theme->SetItemToolTip(0, _("Created by Milosz Wlazlo [miloszwl@miloszwl.com, miloszwl.deviantart.com]")); - Theme->SetItemToolTip(1, _("Created by VistaIcons.com")); - Theme->SetItemToolTip(2, _("Created by black_rider and published on ForumW.org > Web Developments")); - Theme->SetItemToolTip(3, _("Created by KDE-Look.org")); + Theme->SetToolTip(_("Boomy: Milosz Wlazlo [miloszwl@miloszwl.com]\nVista: VistaIcons.com\nX-Plastik: black_rider [ForumW.org]\nKDE: KDE-Look.org")); InterfaceLang->SetToolTip(_("Change the language of the user interface.\nRequires restart.")); @@ -579,9 +576,9 @@ void CConfigMain::CreateGUIControls() // Hotkey configuration HotkeyConfig = new wxButton(DisplayPage, ID_HOTKEY_CONFIG, _("Hotkeys"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator); - // Themes - this should really be a wxChoice... - Theme = new wxRadioBox(DisplayPage, ID_INTERFACE_THEME, _("Theme"), - wxDefaultPosition, wxDefaultSize, arrayStringFor_Themes, 1, wxRA_SPECIFY_ROWS); + // Themes + Theme = new wxChoice(DisplayPage, ID_INTERFACE_THEME, wxDefaultPosition, + wxDefaultSize, arrayStringFor_Themes, 0, wxDefaultValidator); // Interface settings ConfirmStop = new wxCheckBox(DisplayPage, ID_INTERFACE_CONFIRMSTOP, _("Confirm on Stop"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); @@ -595,13 +592,16 @@ void CConfigMain::CreateGUIControls() sInterface->Add(InterfaceLang, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); sInterface->AddStretchSpacer(); sInterface->Add(HotkeyConfig, 0, wxALIGN_RIGHT | wxALL, 5); + wxBoxSizer* scInterface = new wxBoxSizer(wxHORIZONTAL); + scInterface->Add(TEXT_BOX(DisplayPage, _("Theme:")), 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); + scInterface->Add(Theme, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); + scInterface->AddStretchSpacer(); sbInterface = new wxStaticBoxSizer(wxVERTICAL, DisplayPage, _("Interface Settings")); sbInterface->Add(ConfirmStop, 0, wxALL, 5); sbInterface->Add(UsePanicHandlers, 0, wxALL, 5); sbInterface->Add(OnScreenDisplayMessages, 0, wxALL, 5); - sbInterface->Add(Theme, 0, wxEXPAND | wxALL, 5); + sbInterface->Add(scInterface, 0, wxEXPAND | wxALL, 5); sbInterface->Add(sInterface, 0, wxEXPAND | wxALL, 5); - sDisplayPage = new wxBoxSizer(wxVERTICAL); sDisplayPage->Add(sbInterface, 0, wxEXPAND | wxALL, 5); DisplayPage->SetSizer(sDisplayPage); diff --git a/Source/Core/DolphinWX/Src/ConfigMain.h b/Source/Core/DolphinWX/Src/ConfigMain.h index 9b5dbf4243..0e594101df 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.h +++ b/Source/Core/DolphinWX/Src/ConfigMain.h @@ -165,7 +165,7 @@ private: wxCheckBox* ConfirmStop; wxCheckBox* UsePanicHandlers; wxCheckBox* OnScreenDisplayMessages; - wxRadioBox* Theme; + wxChoice* Theme; wxChoice* InterfaceLang; wxButton* HotkeyConfig; -- cgit v1.2.3 From 7bf72a6c8476798ecbb9cdb13ec3a8f0b9858da6 Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 11 Jan 2013 01:03:18 +1100 Subject: Fixed the random static audio that would sometimes occur in DSP HLE and DSP LLE. --- Source/Core/Core/Src/DSP/DSPAccelerator.cpp | 5 ++--- Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h | 8 +++----- 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/DSP/DSPAccelerator.cpp b/Source/Core/Core/Src/DSP/DSPAccelerator.cpp index dcb79b7ac5..2058a92f9d 100644 --- a/Source/Core/Core/Src/DSP/DSPAccelerator.cpp +++ b/Source/Core/Core/Src/DSP/DSPAccelerator.cpp @@ -165,11 +165,10 @@ u16 dsp_read_accelerator() // Somehow, YN1 and YN2 must be initialized with their "loop" values, // so yeah, it seems likely that we should raise an exception to let // the DSP program do that, at least if DSP_FORMAT == 0x0A. - if (Address >= EndAddress) + if ((Address & ~0x1f) == (EndAddress & ~0x1f)) { // Set address back to start address. - if ((Address & ~0x1f) == (EndAddress & ~0x1f)) - Address = (g_dsp.ifx_regs[DSP_ACSAH] << 16) | g_dsp.ifx_regs[DSP_ACSAL]; + Address = (g_dsp.ifx_regs[DSP_ACSAH] << 16) | g_dsp.ifx_regs[DSP_ACSAL]; DSPCore_SetException(EXP_ACCOV); } diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h index 349dc7e03b..e39b38b100 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h @@ -203,12 +203,10 @@ u16 AcceleratorGetSample() // // On real hardware, this would raise an interrupt that is handled by the // UCode. We simulate what this interrupt does here. - if (*acc_cur_addr >= acc_end_addr) + if ((*acc_cur_addr & ~0x1F) == (acc_end_addr & ~0x1F)) { - // If we are really at the end (and we don't simply have cur_addr > - // end_addr all the time), loop back to loop_addr. - if ((*acc_cur_addr & ~0x1F) == (acc_end_addr & ~0x1F)) - *acc_cur_addr = acc_loop_addr; + // If we are really at the end, loop back to loop_addr. + *acc_cur_addr = acc_loop_addr; if (acc_pb->audio_addr.looping) { -- cgit v1.2.3 From 304814e7cca0d9ac1497a955f7a6741a62fe4396 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Wed, 9 Jan 2013 10:19:18 +0100 Subject: Video_Software: Implement proper RGBA8 texture loading from tmem. For RGBA8 textures, AR and GB tiles are stored in separate tmem banks. TextureDecoder did not support that previously. --- Source/Core/VideoCommon/Src/TextureDecoder.cpp | 22 +++++++++++ Source/Core/VideoCommon/Src/TextureDecoder.h | 1 + .../Plugin_VideoSoftware/Src/BPMemLoader.cpp | 43 ++++++++++++++++------ .../Plugin_VideoSoftware/Src/TextureSampler.cpp | 42 ++++++++++++++++----- 4 files changed, 87 insertions(+), 21 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/TextureDecoder.cpp b/Source/Core/VideoCommon/Src/TextureDecoder.cpp index 180c901730..362a42e015 100644 --- a/Source/Core/VideoCommon/Src/TextureDecoder.cpp +++ b/Source/Core/VideoCommon/Src/TextureDecoder.cpp @@ -2515,6 +2515,28 @@ void TexDecoder_DecodeTexel(u8 *dst, const u8 *src, int s, int t, int imageWidth } } +void TexDecoder_DecodeTexelRGBA8FromTmem(u8 *dst, const u8 *src_ar, const u8* src_gb, int s, int t, int imageWidth) +{ + u16 sBlk = s >> 2; + u16 tBlk = t >> 2; + u16 widthBlks = (imageWidth >> 2) + 1; + u32 base_ar = (tBlk * widthBlks + sBlk) << 4; + u32 base_gb = (tBlk * widthBlks + sBlk) << 4; + u16 blkS = s & 3; + u16 blkT = t & 3; + u32 blk_off = (blkT << 2) + blkS; + + u32 offset_ar = (base_ar + blk_off) << 1; + u32 offset_gb = (base_gb + blk_off) << 1; + const u8* val_addr_ar = src_ar + offset_ar; + const u8* val_addr_gb = src_gb + offset_gb; + + dst[3] = val_addr_ar[0]; // A + dst[0] = val_addr_ar[1]; // R + dst[1] = val_addr_gb[0]; // G + dst[2] = val_addr_gb[1]; // B +} + const char* texfmt[] = { // pixel diff --git a/Source/Core/VideoCommon/Src/TextureDecoder.h b/Source/Core/VideoCommon/Src/TextureDecoder.h index 1901c86d27..dd4b17eea3 100644 --- a/Source/Core/VideoCommon/Src/TextureDecoder.h +++ b/Source/Core/VideoCommon/Src/TextureDecoder.h @@ -86,6 +86,7 @@ enum PC_TexFormat PC_TexFormat TexDecoder_Decode(u8 *dst, const u8 *src, int width, int height, int texformat, int tlutaddr, int tlutfmt,bool rgbaOnly = false); PC_TexFormat GetPC_TexFormat(int texformat, int tlutfmt); void TexDecoder_DecodeTexel(u8 *dst, const u8 *src, int s, int t, int imageWidth, int texformat, int tlutaddr, int tlutfmt); +void TexDecoder_DecodeTexelRGBA8FromTmem(u8 *dst, const u8 *src_ar, const u8* src_gb, int s, int t, int imageWidth); void TexDecoder_SetTexFmtOverlayOptions(bool enable, bool center); #endif diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/BPMemLoader.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/BPMemLoader.cpp index 3db8c5d493..6a17a40eb1 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/BPMemLoader.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/BPMemLoader.cpp @@ -115,18 +115,39 @@ void SWBPWritten(int address, int newvalue) case BPMEM_PRELOAD_MODE: if (newvalue != 0) { - // NOTE(neobrain): Apparently tmemodd doesn't affect hardware behavior at all (libogc uses it just as a buffe$ - BPS_TmemConfig& tmem_cfg = bpmem.tmem_config; - u8* ram_ptr = Memory::GetPointer(tmem_cfg.preload_addr << 5); - u32 tmem_addr = tmem_cfg.preload_tmem_even * TMEM_LINE_SIZE; - u32 size = tmem_cfg.preload_tile_info.count * 32; - - // Check if the game has overflowed TMEM, and copy up to the limit. - // Paper Mario does this when entering the Great Boogly Tree (Chap 2) - if ((tmem_addr + size) > TMEM_SIZE) - size = TMEM_SIZE - tmem_addr; + // TODO: Not quite sure if this is completely correct (likely not) + // NOTE: libogc's implementation of GX_PreloadEntireTexture seems flawed, so it's not necessarily a good reference for RE'ing this feature. - memcpy(texMem + tmem_addr, ram_ptr, size); + BPS_TmemConfig& tmem_cfg = bpmem.tmem_config; + u8* src_ptr = Memory::GetPointer(tmem_cfg.preload_addr << 5); // TODO: Should we add mask here on GC? + u32 size = tmem_cfg.preload_tile_info.count * TMEM_LINE_SIZE; + u32 tmem_addr_even = tmem_cfg.preload_tmem_even * TMEM_LINE_SIZE; + + if (tmem_cfg.preload_tile_info.type != 3) + { + if (tmem_addr_even + size > TMEM_SIZE) + size = TMEM_SIZE - tmem_addr_even; + + memcpy(texMem + tmem_addr_even, src_ptr, size); + } + else // RGBA8 tiles (and CI14, but that might just be stupid libogc!) + { + // AR and GB tiles are stored in separate TMEM banks => can't use a single memcpy for everything + u32 tmem_addr_odd = tmem_cfg.preload_tmem_odd * TMEM_LINE_SIZE; + + for (int i = 0; i < tmem_cfg.preload_tile_info.count; ++i) + { + if (tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE || + tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE) + break; + + memcpy(texMem + tmem_addr_even, src_ptr, TMEM_LINE_SIZE); + memcpy(texMem + tmem_addr_odd, src_ptr + TMEM_LINE_SIZE, TMEM_LINE_SIZE); + tmem_addr_even += TMEM_LINE_SIZE; + tmem_addr_odd += TMEM_LINE_SIZE; + src_ptr += TMEM_LINE_SIZE * 2; + } + } } break; diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp index 66b6b68e22..56101dc69d 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp @@ -120,10 +120,12 @@ void SampleMip(s32 s, s32 t, s32 mip, bool linear, u8 texmap, u8 *sample) TexImage0& ti0 = texUnit.texImage0[subTexmap]; TexTLUT& texTlut = texUnit.texTlut[subTexmap]; - u8 *imageSrc; + u8 *imageSrc, *imageSrcOdd = NULL; if (texUnit.texImage1[subTexmap].image_type) { imageSrc = &texMem[texUnit.texImage1[subTexmap].tmem_even * TMEM_LINE_SIZE]; + if (ti0.format == GX_TF_RGBA8) + imageSrcOdd = &texMem[texUnit.texImage2[subTexmap].tmem_odd * TMEM_LINE_SIZE]; } else { @@ -190,17 +192,34 @@ void SampleMip(s32 s, s32 t, s32 mip, bool linear, u8 texmap, u8 *sample) WrapCoord(imageSPlus1, tm0.wrap_s, imageWidth); WrapCoord(imageTPlus1, tm0.wrap_t, imageHeight); - TexDecoder_DecodeTexel(sampledTex, imageSrc, imageS, imageT, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); - SetTexel(sampledTex, texel, (128 - fractS) * (128 - fractT)); + if (!(ti0.format == GX_TF_RGBA8 && texUnit.texImage1[subTexmap].image_type)) + { + TexDecoder_DecodeTexel(sampledTex, imageSrc, imageS, imageT, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); + SetTexel(sampledTex, texel, (128 - fractS) * (128 - fractT)); + + TexDecoder_DecodeTexel(sampledTex, imageSrc, imageSPlus1, imageT, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); + AddTexel(sampledTex, texel, (fractS) * (128 - fractT)); - TexDecoder_DecodeTexel(sampledTex, imageSrc, imageSPlus1, imageT, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); - AddTexel(sampledTex, texel, (fractS) * (128 - fractT)); + TexDecoder_DecodeTexel(sampledTex, imageSrc, imageS, imageTPlus1, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); + AddTexel(sampledTex, texel, (128 - fractS) * (fractT)); - TexDecoder_DecodeTexel(sampledTex, imageSrc, imageS, imageTPlus1, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); - AddTexel(sampledTex, texel, (128 - fractS) * (fractT)); + TexDecoder_DecodeTexel(sampledTex, imageSrc, imageSPlus1, imageTPlus1, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); + AddTexel(sampledTex, texel, (fractS) * (fractT)); + } + else + { + TexDecoder_DecodeTexelRGBA8FromTmem(sampledTex, imageSrc, imageSrcOdd, imageS, imageT, imageWidth); + SetTexel(sampledTex, texel, (128 - fractS) * (128 - fractT)); - TexDecoder_DecodeTexel(sampledTex, imageSrc, imageSPlus1, imageTPlus1, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); - AddTexel(sampledTex, texel, (fractS) * (fractT)); + TexDecoder_DecodeTexelRGBA8FromTmem(sampledTex, imageSrc, imageSrcOdd, imageSPlus1, imageT, imageWidth); + AddTexel(sampledTex, texel, (fractS) * (128 - fractT)); + + TexDecoder_DecodeTexelRGBA8FromTmem(sampledTex, imageSrc, imageSrcOdd, imageS, imageTPlus1, imageWidth); + AddTexel(sampledTex, texel, (128 - fractS) * (fractT)); + + TexDecoder_DecodeTexelRGBA8FromTmem(sampledTex, imageSrc, imageSrcOdd, imageSPlus1, imageTPlus1, imageWidth); + AddTexel(sampledTex, texel, (fractS) * (fractT)); + } sample[0] = (u8)(texel[0] >> 14); sample[1] = (u8)(texel[1] >> 14); @@ -217,7 +236,10 @@ void SampleMip(s32 s, s32 t, s32 mip, bool linear, u8 texmap, u8 *sample) WrapCoord(imageS, tm0.wrap_s, imageWidth); WrapCoord(imageT, tm0.wrap_t, imageHeight); - TexDecoder_DecodeTexel(sample, imageSrc, imageS, imageT, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); + if (!(ti0.format == GX_TF_RGBA8 && texUnit.texImage1[subTexmap].image_type)) + TexDecoder_DecodeTexel(sample, imageSrc, imageS, imageT, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format); + else + TexDecoder_DecodeTexelRGBA8FromTmem(sample, imageSrc, imageSrcOdd, imageS, imageT, imageWidth); } } -- cgit v1.2.3 From e7c883d6be5979cc142c942efef354317998fcbc Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Thu, 10 Jan 2013 15:12:21 +0100 Subject: VideoCommon: Implement proper RGBA8 texture loading from tmem. --- Source/Core/VideoCommon/Src/BPStructs.cpp | 39 ++++++++++++++++++------ Source/Core/VideoCommon/Src/TextureCacheBase.cpp | 16 ++++++++-- Source/Core/VideoCommon/Src/TextureDecoder.cpp | 14 ++++++++- Source/Core/VideoCommon/Src/TextureDecoder.h | 1 + 4 files changed, 57 insertions(+), 13 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/BPStructs.cpp b/Source/Core/VideoCommon/Src/BPStructs.cpp index 88556cbee8..c975b12240 100644 --- a/Source/Core/VideoCommon/Src/BPStructs.cpp +++ b/Source/Core/VideoCommon/Src/BPStructs.cpp @@ -497,18 +497,39 @@ void BPWritten(const BPCmd& bp) // if this is different from 0, manual TMEM management is used (GX_PreloadEntireTexture). if (bp.newvalue != 0) { - // NOTE(neobrain): Apparently tmemodd doesn't affect hardware behavior at all (libogc uses it just as a buffer and switches its contents with tmemeven whenever this is called) + // TODO: Not quite sure if this is completely correct (likely not) + // NOTE: libogc's implementation of GX_PreloadEntireTexture seems flawed, so it's not necessarily a good reference for RE'ing this feature. + BPS_TmemConfig& tmem_cfg = bpmem.tmem_config; - u8* ram_ptr = Memory::GetPointer(tmem_cfg.preload_addr << 5); - u32 tmem_addr = tmem_cfg.preload_tmem_even * TMEM_LINE_SIZE; - u32 size = tmem_cfg.preload_tile_info.count * 32; + u8* src_ptr = Memory::GetPointer(tmem_cfg.preload_addr << 5); // TODO: Should we add mask here on GC? + u32 size = tmem_cfg.preload_tile_info.count * TMEM_LINE_SIZE; + u32 tmem_addr_even = tmem_cfg.preload_tmem_even * TMEM_LINE_SIZE; + + if (tmem_cfg.preload_tile_info.type != 3) + { + if (tmem_addr_even + size > TMEM_SIZE) + size = TMEM_SIZE - tmem_addr_even; - // Check if the game has overflowed TMEM, and copy up to the limit. - // Paper Mario does this when entering the Great Boogly Tree (Chap 2) - if ((tmem_addr + size) > TMEM_SIZE) - size = TMEM_SIZE - tmem_addr; + memcpy(texMem + tmem_addr_even, src_ptr, size); + } + else // RGBA8 tiles (and CI14, but that might just be stupid libogc!) + { + // AR and GB tiles are stored in separate TMEM banks => can't use a single memcpy for everything + u32 tmem_addr_odd = tmem_cfg.preload_tmem_odd * TMEM_LINE_SIZE; - memcpy(texMem + tmem_addr, ram_ptr, size); + for (int i = 0; i < tmem_cfg.preload_tile_info.count; ++i) + { + if (tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE || + tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE) + break; + + memcpy(texMem + tmem_addr_even, src_ptr, TMEM_LINE_SIZE); + memcpy(texMem + tmem_addr_odd, src_ptr + TMEM_LINE_SIZE, TMEM_LINE_SIZE); + tmem_addr_even += TMEM_LINE_SIZE; + tmem_addr_odd += TMEM_LINE_SIZE; + src_ptr += TMEM_LINE_SIZE * 2; + } + } } break; diff --git a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp index cfbd4eb6c8..e0fc11fe1b 100644 --- a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp @@ -333,6 +333,7 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, if (from_tmem) src_data = &texMem[bpmem.tex[stage/4].texImage1[stage%4].tmem_even * TMEM_LINE_SIZE]; else src_data = Memory::GetPointer(address); + // TODO: This doesn't hash GB tiles for preloaded RGBA8 textures (instead, it's hashing more data from the low tmem bank than it should) tex_hash = GetHash64(src_data, texture_size, g_ActiveConfig.iSafeTextureCache_ColorSamples); if (isPaletteTexture) { @@ -413,10 +414,19 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, } } - // TODO: RGBA8 textures are stored non-continuously in tmem, that might cause problems here when preloading is enabled if (!using_custom_texture) - pcfmt = TexDecoder_Decode(temp, src_data, expandedWidth, - expandedHeight, texformat, tlutaddr, tlutfmt, g_ActiveConfig.backend_info.bUseRGBATextures); + { + if (!(texformat == GX_TF_RGBA8 && from_tmem)) + { + pcfmt = TexDecoder_Decode(temp, src_data, expandedWidth, + expandedHeight, texformat, tlutaddr, tlutfmt, g_ActiveConfig.backend_info.bUseRGBATextures); + } + else + { + u8* src_data_gb = &texMem[bpmem.tex[stage/4].texImage2[stage%4].tmem_odd * TMEM_LINE_SIZE]; + pcfmt = TexDecoder_DecodeRGBA8FromTmem(temp, src_data, src_data_gb, expandedWidth, expandedHeight); + } + } // TODO: Cleanup. Plus, we still autogenerate mipmaps in certain cases (we shouldn't do that) bool isPow2; diff --git a/Source/Core/VideoCommon/Src/TextureDecoder.cpp b/Source/Core/VideoCommon/Src/TextureDecoder.cpp index 362a42e015..44efcf8bae 100644 --- a/Source/Core/VideoCommon/Src/TextureDecoder.cpp +++ b/Source/Core/VideoCommon/Src/TextureDecoder.cpp @@ -2519,7 +2519,7 @@ void TexDecoder_DecodeTexelRGBA8FromTmem(u8 *dst, const u8 *src_ar, const u8* sr { u16 sBlk = s >> 2; u16 tBlk = t >> 2; - u16 widthBlks = (imageWidth >> 2) + 1; + u16 widthBlks = (imageWidth >> 2) + 1; // TODO: Looks wrong. Shouldn't this be ((imageWidth-1)>>2)+1 ? u32 base_ar = (tBlk * widthBlks + sBlk) << 4; u32 base_gb = (tBlk * widthBlks + sBlk) << 4; u16 blkS = s & 3; @@ -2537,6 +2537,18 @@ void TexDecoder_DecodeTexelRGBA8FromTmem(u8 *dst, const u8 *src_ar, const u8* sr dst[2] = val_addr_gb[1]; // B } +PC_TexFormat TexDecoder_DecodeRGBA8FromTmem(u8* dst, const u8 *src_ar, const u8 *src_gb, int width, int height) +{ + // TODO for someone who cares: Make this less slow! + for (int y = 0; y < height; ++y) + for (int x = 0; x < width; ++x) + { + TexDecoder_DecodeTexelRGBA8FromTmem(dst, src_ar, src_gb, x, y, width-1); + dst += 4; + } + + return PC_TEX_FMT_RGBA32; +} const char* texfmt[] = { // pixel diff --git a/Source/Core/VideoCommon/Src/TextureDecoder.h b/Source/Core/VideoCommon/Src/TextureDecoder.h index dd4b17eea3..fae70897f5 100644 --- a/Source/Core/VideoCommon/Src/TextureDecoder.h +++ b/Source/Core/VideoCommon/Src/TextureDecoder.h @@ -87,6 +87,7 @@ PC_TexFormat TexDecoder_Decode(u8 *dst, const u8 *src, int width, int height, in PC_TexFormat GetPC_TexFormat(int texformat, int tlutfmt); void TexDecoder_DecodeTexel(u8 *dst, const u8 *src, int s, int t, int imageWidth, int texformat, int tlutaddr, int tlutfmt); void TexDecoder_DecodeTexelRGBA8FromTmem(u8 *dst, const u8 *src_ar, const u8* src_gb, int s, int t, int imageWidth); +PC_TexFormat TexDecoder_DecodeRGBA8FromTmem(u8* dst, const u8 *src_ar, const u8 *src_gb, int width, int height); void TexDecoder_SetTexFmtOverlayOptions(bool enable, bool center); #endif -- cgit v1.2.3 From 198d60c56964fc8a9c679cdf9ab9805c684146ef Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Wed, 9 Jan 2013 11:16:35 +0100 Subject: FifoPlayer: Support recording texture preloads --- Source/Core/Core/Src/FifoPlayer/FifoAnalyzer.cpp | 4 ++-- Source/Core/Core/Src/FifoPlayer/FifoDataFile.h | 2 +- Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp | 13 ++++++++++++- Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.h | 1 + 4 files changed, 16 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/FifoPlayer/FifoAnalyzer.cpp b/Source/Core/Core/Src/FifoPlayer/FifoAnalyzer.cpp index f074b6d88b..383fcb555d 100644 --- a/Source/Core/Core/Src/FifoPlayer/FifoAnalyzer.cpp +++ b/Source/Core/Core/Src/FifoPlayer/FifoAnalyzer.cpp @@ -90,9 +90,9 @@ void GetTlutLoadData(u32 &tlutAddr, u32 &memAddr, u32 &tlutXferCount, BPMemory & // TODO - figure out a cleaner way. if (Core::g_CoreStartupParameter.bWii) - memAddr = bpmem.tmem_config.tlut_src << 5; + memAddr = bpMem.tmem_config.tlut_src << 5; else - memAddr = (bpmem.tmem_config.tlut_src & 0xFFFFF) << 5; + memAddr = (bpMem.tmem_config.tlut_src & 0xFFFFF) << 5; } void LoadCPReg(u32 subCmd, u32 value, CPMemory &cpMem) diff --git a/Source/Core/Core/Src/FifoPlayer/FifoDataFile.h b/Source/Core/Core/Src/FifoPlayer/FifoDataFile.h index a95a46c1fd..d1ae9ee886 100644 --- a/Source/Core/Core/Src/FifoPlayer/FifoDataFile.h +++ b/Source/Core/Core/Src/FifoPlayer/FifoDataFile.h @@ -33,7 +33,7 @@ struct MemoryUpdate TEXTURE_MAP = 0x01, XF_DATA = 0x02, VERTEX_STREAM = 0x04, - TLUT = 0x08 + TMEM = 0x08, }; u32 fifoPosition; diff --git a/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp b/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp index 1c0cd7abe1..a6467f0366 100644 --- a/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp +++ b/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp @@ -114,6 +114,8 @@ void FifoRecordAnalyzer::DecodeOpcode(u8 *data) if (bp.address == BPMEM_LOADTLUT1) ProcessLoadTlut1(); + if (bp.address == BPMEM_PRELOAD_MODE) + ProcessPreloadTexture(); } break; @@ -143,7 +145,16 @@ void FifoRecordAnalyzer::ProcessLoadTlut1() GetTlutLoadData(tlutMemAddr, memAddr, tlutXferCount, *m_BpMem); - FifoRecorder::GetInstance().WriteMemory(memAddr, tlutXferCount, MemoryUpdate::TLUT); + FifoRecorder::GetInstance().WriteMemory(memAddr, tlutXferCount, MemoryUpdate::TMEM); +} + +void FifoRecordAnalyzer::ProcessPreloadTexture() +{ + BPS_TmemConfig& tmem_cfg = m_BpMem->tmem_config; + u32 tmem_addr = tmem_cfg.preload_tmem_even * TMEM_LINE_SIZE; + u32 size = tmem_cfg.preload_tile_info.count * TMEM_LINE_SIZE; // TODO: Should this be half size for RGBA8 preloads? + + FifoRecorder::GetInstance().WriteMemory(tmem_cfg.preload_addr << 5, size, MemoryUpdate::TMEM); } void FifoRecordAnalyzer::ProcessLoadIndexedXf(u32 val, int array) diff --git a/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.h b/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.h index 0ffc279bf3..8ef3360ce7 100644 --- a/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.h +++ b/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.h @@ -40,6 +40,7 @@ private: void DecodeOpcode(u8 *data); void ProcessLoadTlut1(); + void ProcessPreloadTexture(); void ProcessLoadIndexedXf(u32 val, int array); void ProcessVertexArrays(u8 *data, u8 vtxAttrGroup); void ProcessTexMaps(); -- cgit v1.2.3 From 2c1c538fda491f97a735902e00987537db1d3487 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Thu, 10 Jan 2013 18:43:15 +0100 Subject: Disable the OpenAL and Pulseaudio audio backends They are currently broken and cause sound issues which are not present in other backends: * OpenAL plays music 2x too fast in Zelda UCode games with HLE * Pulse backend uses a lot of CPU power and slows down emulation significantly Both backends are currently being re-implemented in separate branches of Dolphin, so this should be a temporary removal. --- Source/Core/AudioCommon/Src/AudioCommon.cpp | 4 ---- 1 file changed, 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/AudioCommon.cpp b/Source/Core/AudioCommon/Src/AudioCommon.cpp index 8a568448a3..b21aec45ba 100644 --- a/Source/Core/AudioCommon/Src/AudioCommon.cpp +++ b/Source/Core/AudioCommon/Src/AudioCommon.cpp @@ -102,16 +102,12 @@ namespace AudioCommon backends.push_back(BACKEND_DIRECTSOUND); if (XAudio2::isValid()) backends.push_back(BACKEND_XAUDIO2); - if (OpenALStream::isValid()) - backends.push_back(BACKEND_OPENAL); if (AOSound::isValid()) backends.push_back(BACKEND_AOSOUND); if (AlsaSound::isValid()) backends.push_back(BACKEND_ALSA); if (CoreAudioSound::isValid()) backends.push_back(BACKEND_COREAUDIO); - if (PulseAudio::isValid()) - backends.push_back(BACKEND_PULSEAUDIO); return backends; } -- cgit v1.2.3 From ab24149b1bda34fd8f0f72043f4d94f57d38cf60 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Thu, 10 Jan 2013 13:35:32 -0500 Subject: Retain scroll position after refreshing game list. Fixes issue 5878. --- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index 28051eb390..6ee860c229 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -259,6 +259,7 @@ void CGameListCtrl::BrowseForDirectory() void CGameListCtrl::Update() { + int scrollPos = wxWindow::GetScrollPos(wxVERTICAL); // Don't let the user refresh it while a game is running if (Core::GetState() != Core::CORE_UNINITIALIZED) return; @@ -363,6 +364,7 @@ void CGameListCtrl::Update() Show(); AutomaticColumnWidth(); + ScrollLines(scrollPos); } wxString NiceSizeFormat(s64 _size) -- cgit v1.2.3 From 202c005e61c12e546a69fb290ace57e170196c6a Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 13:00:50 -0600 Subject: Remove commented code. No longer supporting setting volume with PulseAudio. --- Source/Core/AudioCommon/Src/PulseAudioStream.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/PulseAudioStream.cpp b/Source/Core/AudioCommon/Src/PulseAudioStream.cpp index 82b7ee5fa9..923a338190 100644 --- a/Source/Core/AudioCommon/Src/PulseAudioStream.cpp +++ b/Source/Core/AudioCommon/Src/PulseAudioStream.cpp @@ -92,7 +92,6 @@ bool PulseAudio::PulseInit() else { NOTICE_LOG(AUDIO, "Pulse successfully initialized."); - //SetVolume(iVolume); return true; } } -- cgit v1.2.3 From d6b53af115818878b0520f8d91e255351a4f48b8 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Thu, 10 Jan 2013 14:29:48 -0500 Subject: Automatically set focus on game list window. Fixes issue 5880. --- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index 6ee860c229..2e31843ef9 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -365,6 +365,7 @@ void CGameListCtrl::Update() AutomaticColumnWidth(); ScrollLines(scrollPos); + SetFocus(); } wxString NiceSizeFormat(s64 _size) -- cgit v1.2.3 From e1c8bea2f6edc53644fd95d0f4a3f99526439577 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 15:23:42 -0600 Subject: fix crash, but now 100% cpu usage on disconnect --- Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp index b01caf06c8..1fb61f7715 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp @@ -136,10 +136,10 @@ int FindWiimotes(Wiimote** wm, int max_wiimotes) // Connect to a wiimote with a known address. bool Wiimote::Connect() { - struct sockaddr_l2 addr; - - if (IsConnected()) return false; + if (IsConnected()) + return false; + sockaddr_l2 addr; addr.l2_family = AF_BLUETOOTH; addr.l2_bdaddr = bdaddr; addr.l2_cid = 0; @@ -206,17 +206,15 @@ void Wiimote::RealDisconnect() int Wiimote::IORead(unsigned char *buf) { - struct timeval tv; - fd_set fds; - int r; - if (!IsConnected()) return 0; // Block select for 1/2000th of a second + timeval tv; tv.tv_sec = 0; tv.tv_usec = WIIMOTE_DEFAULT_TIMEOUT * 1000; + fd_set fds; FD_ZERO(&fds); FD_SET(in_sock, &fds); @@ -230,7 +228,7 @@ int Wiimote::IORead(unsigned char *buf) return 0; // Read the pending message into the buffer - r = read(in_sock, buf, MAX_PAYLOAD); + int r = read(in_sock, buf, MAX_PAYLOAD); if (r == -1) { // Error reading data @@ -241,17 +239,17 @@ int Wiimote::IORead(unsigned char *buf) // This can happen if the bluetooth dongle is disconnected ERROR_LOG(WIIMOTE, "Bluetooth appears to be disconnected. " "Wiimote %i will be disconnected.", index + 1); - RealDisconnect(); + //RealDisconnect(); } return 0; } - if (!r) + else if (!r) { // Disconnect - RealDisconnect(); - return 0; + //RealDisconnect(); } + return r; } -- cgit v1.2.3 From 1c10d3a1bb9bde6a96c9e1789d7c758a12527f67 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 16:16:49 -0600 Subject: better fix for linux wiimote disconnect crash --- Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp | 30 ++++++++++++++-------- Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp | 5 ++++ Source/Core/Core/Src/HW/WiimoteReal/IOdarwin.mm | 5 ++++ .../Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp | 2 +- Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h | 4 +++ 5 files changed, 35 insertions(+), 11 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp index 1fb61f7715..f56c11e248 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp @@ -195,20 +195,30 @@ void Wiimote::RealDisconnect() if (m_wiimote_thread.joinable()) m_wiimote_thread.join(); - Host_ConnectWiimote(index, false); + Close(); +} + +void Wiimote::Close() +{ + if (IsOpen()) + { + Host_ConnectWiimote(index, false); + + close(out_sock); + close(in_sock); - close(out_sock); - close(in_sock); + out_sock = -1; + in_sock = -1; + } +} - out_sock = -1; - in_sock = -1; +bool Wiimote::IsOpen() const +{ + return out_sock != -1 && in_sock != -1; } int Wiimote::IORead(unsigned char *buf) { - if (!IsConnected()) - return 0; - // Block select for 1/2000th of a second timeval tv; tv.tv_sec = 0; @@ -239,7 +249,7 @@ int Wiimote::IORead(unsigned char *buf) // This can happen if the bluetooth dongle is disconnected ERROR_LOG(WIIMOTE, "Bluetooth appears to be disconnected. " "Wiimote %i will be disconnected.", index + 1); - //RealDisconnect(); + Close(); } return 0; @@ -247,7 +257,7 @@ int Wiimote::IORead(unsigned char *buf) else if (!r) { // Disconnect - //RealDisconnect(); + Close(); } return r; diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp b/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp index c22e1972dc..cc05bc10e1 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp @@ -294,6 +294,11 @@ void Wiimote::RealDisconnect() ResetEvent(&hid_overlap); } +bool Wiimote::IsOpen() const +{ + return IsConnected(); +} + int Wiimote::IORead(unsigned char* buf) { DWORD b, r; diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IOdarwin.mm b/Source/Core/Core/Src/HW/WiimoteReal/IOdarwin.mm index 9ee39e5b92..64de880180 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/IOdarwin.mm +++ b/Source/Core/Core/Src/HW/WiimoteReal/IOdarwin.mm @@ -227,6 +227,11 @@ void Wiimote::RealDisconnect() ichan = NULL; } +bool Wiimote::IsOpen() const +{ + return IsConnected(); +} + int Wiimote::IORead(unsigned char *buf) { int bytes; diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp index 204a1fc698..5ead30bdf8 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp @@ -312,7 +312,7 @@ void Wiimote::ThreadFunc() Rumble(); // main loop - while (IsConnected()) + while (IsOpen()) { #ifdef __APPLE__ while (Write()) {} diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h index cd1080903f..815c23d945 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h @@ -54,6 +54,7 @@ public: bool Write(); bool Connect(); bool IsConnected(); + bool IsOpen() const; void Disconnect(); void DisableDataReporting(); void Rumble(); @@ -72,6 +73,9 @@ public: bdaddr_t bdaddr; // Bluetooth address int out_sock; // Output socket int in_sock; // Input socket + + void Close(); + #elif defined(_WIN32) char devicepath[255]; // Unique wiimote reference //ULONGLONG btaddr; // Bluetooth address -- cgit v1.2.3 From cc0226254dabcbec36936a7c71d61d280168aecf Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 16:23:47 -0600 Subject: Windows/OS X buildfix --- Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp | 2 +- Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp index 5ead30bdf8..1f9285f37e 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp @@ -240,7 +240,7 @@ void Wiimote::Disconnect() DisableDataReporting(); } -bool Wiimote::IsConnected() +bool Wiimote::IsConnected() const { return m_connected; } diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h index 815c23d945..15c8044acd 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h @@ -53,7 +53,7 @@ public: bool Read(); bool Write(); bool Connect(); - bool IsConnected(); + bool IsConnected() const; bool IsOpen() const; void Disconnect(); void DisableDataReporting(); -- cgit v1.2.3 From a693b847f0789e0bcf802ad2d5a61e42be23bfce Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 16:29:16 -0600 Subject: buildfix! --- Source/Core/Core/Src/HW/WiimoteReal/IODummy.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IODummy.cpp b/Source/Core/Core/Src/HW/WiimoteReal/IODummy.cpp index 0b3d16454b..49afee8ad1 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/IODummy.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/IODummy.cpp @@ -36,6 +36,11 @@ void Wiimote::RealDisconnect() return; } +bool Wiimote::IsOpen() const +{ + return IsConnected(); +} + int Wiimote::IORead(unsigned char* buf) { return 0; -- cgit v1.2.3 From cf942450e0aec50ce815e086a9dc277b59b18bae Mon Sep 17 00:00:00 2001 From: lioncash Date: Thu, 10 Jan 2013 17:38:38 -0500 Subject: Very tiny cleanup of ChunkFile.h. Also changed the size parameter from DoVoid to size_t. As far as I know, that should never be negative. Also changed the the count parameter of DoArray to size_t, this also should never be negative. Got rid of some typecasts. --- Source/Core/Common/Src/ChunkFile.h | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/ChunkFile.h b/Source/Core/Common/Src/ChunkFile.h index 38e1b2176c..cc893cc8e7 100644 --- a/Source/Core/Common/Src/ChunkFile.h +++ b/Source/Core/Common/Src/ChunkFile.h @@ -63,13 +63,13 @@ public: Mode GetMode() const {return mode;} u8 **GetPPtr() {return ptr;} - void DoVoid(void *data, int size) + void DoVoid(void *data, size_t size) { switch (mode) { case MODE_READ: memcpy(data, *ptr, size); break; case MODE_WRITE: memcpy(*ptr, data, size); break; case MODE_MEASURE: break; // MODE_MEASURE - don't need to do anything - case MODE_VERIFY: for(int i = 0; i < size; i++) _dbg_assert_msg_(COMMON, ((u8*)data)[i] == (*ptr)[i], "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], (*ptr)[i], (*ptr)[i], &(*ptr)[i]); break; + case MODE_VERIFY: for(size_t i = 0; i < size; i++) _dbg_assert_msg_(COMMON, ((u8*)data)[i] == (*ptr)[i], "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], (*ptr)[i], (*ptr)[i], &(*ptr)[i]); break; default: break; // throw an error? } (*ptr) += size; @@ -78,7 +78,7 @@ public: template void Do(std::map &x) { - unsigned int number = (unsigned int)x.size(); + size_t number = x.size(); Do(number); switch (mode) { case MODE_READ: @@ -126,18 +126,17 @@ public: template void Do(std::deque &x) { - u32 deq_size = (u32)x.size(); + size_t deq_size = x.size(); Do(deq_size); x.resize(deq_size); - u32 i; - for(i = 0; i < deq_size; i++) + for(size_t i = 0; i < deq_size; i++) DoVoid(&x[i],sizeof(T)); } // Store strings. void Do(std::string &x) { - int stringLen = (int)x.length() + 1; + size_t stringLen = (x.length() + 1); Do(stringLen); switch (mode) { @@ -151,7 +150,7 @@ public: void Do(std::wstring &x) { - int stringLen = sizeof(wchar_t)*((int)x.length() + 1); + size_t stringLen = sizeof(wchar_t)*(x.length() + 1); Do(stringLen); switch (mode) { @@ -164,7 +163,7 @@ public: } template - void DoArray(T *x, int count) { + void DoArray(T *x, size_t count) { DoVoid((void *)x, sizeof(T) * count); } -- cgit v1.2.3 From 51a1d4cde73b1d497792504f0b96afff1fc9cc09 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 17:39:07 -0600 Subject: Revert "Very tiny cleanup of ChunkFile.h." int/size_t change without updating the rev# caused crash on Dolphin start This reverts commit cf942450e0aec50ce815e086a9dc277b59b18bae. --- Source/Core/Common/Src/ChunkFile.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/ChunkFile.h b/Source/Core/Common/Src/ChunkFile.h index cc893cc8e7..38e1b2176c 100644 --- a/Source/Core/Common/Src/ChunkFile.h +++ b/Source/Core/Common/Src/ChunkFile.h @@ -63,13 +63,13 @@ public: Mode GetMode() const {return mode;} u8 **GetPPtr() {return ptr;} - void DoVoid(void *data, size_t size) + void DoVoid(void *data, int size) { switch (mode) { case MODE_READ: memcpy(data, *ptr, size); break; case MODE_WRITE: memcpy(*ptr, data, size); break; case MODE_MEASURE: break; // MODE_MEASURE - don't need to do anything - case MODE_VERIFY: for(size_t i = 0; i < size; i++) _dbg_assert_msg_(COMMON, ((u8*)data)[i] == (*ptr)[i], "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], (*ptr)[i], (*ptr)[i], &(*ptr)[i]); break; + case MODE_VERIFY: for(int i = 0; i < size; i++) _dbg_assert_msg_(COMMON, ((u8*)data)[i] == (*ptr)[i], "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], (*ptr)[i], (*ptr)[i], &(*ptr)[i]); break; default: break; // throw an error? } (*ptr) += size; @@ -78,7 +78,7 @@ public: template void Do(std::map &x) { - size_t number = x.size(); + unsigned int number = (unsigned int)x.size(); Do(number); switch (mode) { case MODE_READ: @@ -126,17 +126,18 @@ public: template void Do(std::deque &x) { - size_t deq_size = x.size(); + u32 deq_size = (u32)x.size(); Do(deq_size); x.resize(deq_size); - for(size_t i = 0; i < deq_size; i++) + u32 i; + for(i = 0; i < deq_size; i++) DoVoid(&x[i],sizeof(T)); } // Store strings. void Do(std::string &x) { - size_t stringLen = (x.length() + 1); + int stringLen = (int)x.length() + 1; Do(stringLen); switch (mode) { @@ -150,7 +151,7 @@ public: void Do(std::wstring &x) { - size_t stringLen = sizeof(wchar_t)*(x.length() + 1); + int stringLen = sizeof(wchar_t)*((int)x.length() + 1); Do(stringLen); switch (mode) { @@ -163,7 +164,7 @@ public: } template - void DoArray(T *x, size_t count) { + void DoArray(T *x, int count) { DoVoid((void *)x, sizeof(T) * count); } -- cgit v1.2.3 From 6a13ae280d6093b9653c9b91ebed7151900df45e Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 18:55:53 -0600 Subject: Updated flag images to not have ugly gradient. All images stolen from wikipedia. Added "SDK" flag to separate it from "Unknown" flag. --- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 7 +- Source/Core/DolphinWX/resources/Flag_Europe.png | Bin 795 -> 419 bytes Source/Core/DolphinWX/resources/Flag_Europe.xpm | 125 ++++---- Source/Core/DolphinWX/resources/Flag_France.png | Bin 466 -> 194 bytes Source/Core/DolphinWX/resources/Flag_France.xpm | 84 ++---- Source/Core/DolphinWX/resources/Flag_Germany.png | Bin 795 -> 191 bytes Source/Core/DolphinWX/resources/Flag_Germany.xpm | 84 ++---- Source/Core/DolphinWX/resources/Flag_Italy.png | Bin 485 -> 194 bytes Source/Core/DolphinWX/resources/Flag_Italy.xpm | 84 ++---- Source/Core/DolphinWX/resources/Flag_Japan.png | Bin 908 -> 290 bytes Source/Core/DolphinWX/resources/Flag_Japan.xpm | 114 +++---- Source/Core/DolphinWX/resources/Flag_Korea.png | Bin 0 -> 730 bytes Source/Core/DolphinWX/resources/Flag_Korea.xpm | 362 ++++++++--------------- Source/Core/DolphinWX/resources/Flag_Taiwan.png | Bin 1081 -> 306 bytes Source/Core/DolphinWX/resources/Flag_Taiwan.xpm | 149 +++------- Source/Core/DolphinWX/resources/Flag_USA.png | Bin 726 -> 613 bytes Source/Core/DolphinWX/resources/Flag_USA.xpm | 152 +++++++--- Source/Core/DolphinWX/resources/Flag_Unknown.png | Bin 592 -> 485 bytes Source/Core/DolphinWX/resources/Flag_Unknown.xpm | 128 +++++--- 19 files changed, 524 insertions(+), 765 deletions(-) create mode 100644 Source/Core/DolphinWX/resources/Flag_Korea.png (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index a9dfc2b7a1..8d9815e4cd 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -35,6 +35,8 @@ #include "WxUtils.h" #include "Main.h" +extern "C" +{ #include "../resources/Flag_Europe.xpm" #include "../resources/Flag_Germany.xpm" #include "../resources/Flag_France.xpm" @@ -44,6 +46,9 @@ #include "../resources/Flag_Taiwan.xpm" #include "../resources/Flag_Korea.xpm" #include "../resources/Flag_Unknown.xpm" +#include "../resources/Flag_Sdk.xpm" +} + #include "../resources/Platform_Wad.xpm" #include "../resources/Platform_Wii.xpm" #include "../resources/Platform_Gamecube.xpm" @@ -207,7 +212,7 @@ void CGameListCtrl::InitBitmaps() m_FlagImageIndex[DiscIO::IVolume::COUNTRY_TAIWAN] = m_imageListSmall->Add(wxBitmap(Flag_Taiwan_xpm), wxNullBitmap); m_FlagImageIndex[DiscIO::IVolume::COUNTRY_SDK] = - m_imageListSmall->Add(wxBitmap(Flag_Unknown_xpm), wxNullBitmap); + m_imageListSmall->Add(wxBitmap(Flag_Sdk_xpm), wxNullBitmap); m_FlagImageIndex[DiscIO::IVolume::COUNTRY_UNKNOWN] = m_imageListSmall->Add(wxBitmap(Flag_Unknown_xpm), wxNullBitmap); diff --git a/Source/Core/DolphinWX/resources/Flag_Europe.png b/Source/Core/DolphinWX/resources/Flag_Europe.png index c41352f36a..a0e8c187e2 100644 Binary files a/Source/Core/DolphinWX/resources/Flag_Europe.png and b/Source/Core/DolphinWX/resources/Flag_Europe.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_Europe.xpm b/Source/Core/DolphinWX/resources/Flag_Europe.xpm index def46811a6..1608b2cb78 100644 --- a/Source/Core/DolphinWX/resources/Flag_Europe.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Europe.xpm @@ -1,54 +1,49 @@ /* XPM */ -static const char *const Flag_Europe_xpm[] = { -"96 32 48 1", +static char * Flag_Europe_xpm[] = { +"96 32 43 1", " c None", ". c #000000", -"+ c #0000FD", -"@ c #0000FF", -"# c #0808F7", -"$ c #5C5CA3", -"% c #1717E8", -"& c #767680", -"* c #EDED00", -"= c #A5A54D", -"- c #2E2EB9", -"; c #96961A", -"> c #4A4A8E", -", c #0000FB", -"' c #0000F4", -") c #0808EC", -"! c #5C5C9B", -"~ c #1717DD", -"{ c #0000EE", -"] c #767677", -"^ c #A5A547", -"/ c #0000DD", -"( c #2E2EA0", -"_ c #969616", -": c #4A4A7B", -"< c #0000D2", -"[ c #0000C6", -"} c #0808BF", -"| c #5C5C7E", -"1 c #1717B4", -"2 c #0000B9", -"3 c #76765C", -"4 c #A5A537", -"5 c #0808B3", -"6 c #5C5C76", -"7 c #1717A8", -"8 c #0000A9", -"9 c #2E2E7A", -"0 c #969611", -"a c #4A4A5E", -"b c #767654", -"c c #A5A533", -"d c #000097", -"e c #2E2E6D", -"f c #96960F", -"g c #4A4A54", -"h c #000081", -"i c #000077", +"+ c #003399", +"@ c #043797", +"# c #013498", +"$ c #8F8845", +"% c #8C8645", +"& c #16408C", +"* c #DDB715", +"= c #415972", +"- c #848348", +"; c #84834A", +"> c #425A71", +", c #737754", +"' c #234884", +") c #4D626A", +"! c #B6A02D", +"~ c #0C3B92", +"{ c #B7A12C", +"] c #465E6F", +"^ c #AE9B30", +"/ c #AE9C30", +"( c #3A5676", +"_ c #BBA229", +": c #16418C", +"< c #BAA22A", +"[ c #395577", +"} c #2B4D7F", +"| c #B8A12B", +"1 c #BAA22B", +"2 c #2A4D7F", +"3 c #4D626B", +"4 c #B5A02D", +"5 c #B6A02C", +"6 c #AD9D31", +"7 c #103D8F", +"8 c #6B7358", +"9 c #1B4489", +"0 c #063795", +"a c #E0B912", +"b c #485E6F", +"c c #495D6E", +"d c #E0B913", " ", " ", " ", @@ -56,23 +51,23 @@ static const char *const Flag_Europe_xpm[] = { " ", "................................ ", ".++++++++++++++++++++++++++++++. ", -".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", -".@@@@@@@@@@@@@#$%@@@@@@@@@@@@@@. ", -".@@@@@@@@@#$%@&*=@#$%@@@@@@@@@@. ", -".@@@@@@@@@&*=@-;>@&*=@@@@@@@@@@. ", -".@@@@@@@@@-;>@@@@@-;>@@@@@@@@@@. ", -".,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. ", -".''''''')!~''''''''')!~''''''''. ", -".{{{{{{{]*^{{{{{{{{{]*^{{{{{{{{. ", -".///////(_://///////(_:////////. ", -".<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<. ", -".[[[[[[[[[}|1[[[[[}|1[[[[[[[[[[. ", -".2222222223*4256723*42222222222. ", -".88888888890a8b*c890a8888888888. ", -".dddddddddddddefgdddddddddddddd. ", -".hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh. ", -".iiiiiiiiiiiiiiiiiiiiiiiiiiiiii. ", -".iiiiiiiiiiiiiiiiiiiiiiiiiiiiii. ", +".++++++++++++++++++++++++++++++. ", +".+++++++++++@+#$%#+@+++++++++++. ", +".++++++++++&*=+-;+>*&++++++++++. ", +".+++++++++++,'++++',+++++++++++. ", +".++++++++)!~++++++++~{)++++++++. ", +".++++++++]^++++++++++/]++++++++. ", +".++++++++++++++++++++++++++++++. ", +".+++++++(_:++++++++++:<[+++++++. ", +".+++++++}|++++++++++++12+++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++34~++++++++~53++++++++. ", +".++++++++]/++++++++++6]++++++++. ", +".++++++++++789++++987++++++++++. ", +".++++++++++0ab#$%#cd0++++++++++. ", +".++++++++++++++-;++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", "................................ ", " ", " ", diff --git a/Source/Core/DolphinWX/resources/Flag_France.png b/Source/Core/DolphinWX/resources/Flag_France.png index 3390ee79c2..6aed09aab1 100644 Binary files a/Source/Core/DolphinWX/resources/Flag_France.png and b/Source/Core/DolphinWX/resources/Flag_France.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_France.xpm b/Source/Core/DolphinWX/resources/Flag_France.xpm index 51cde44d8c..6336122380 100644 --- a/Source/Core/DolphinWX/resources/Flag_France.xpm +++ b/Source/Core/DolphinWX/resources/Flag_France.xpm @@ -1,75 +1,35 @@ /* XPM */ -static const char *const Flag_France_xpm[] = { -"96 32 45 1", +static char * Flag_France_xpm[] = { +"96 32 5 1", " c None", ". c #000000", -"+ c #0000FF", +"+ c #002395", "@ c #FFFFFF", -"# c #FF0000", -"$ c #0000FC", -"% c #0000F8", -"& c #FCFCFC", -"* c #FC0000", -"= c #0000F2", -"- c #F8F8F8", -"; c #F80000", -"> c #0000EC", -", c #F2F2F2", -"' c #F20000", -") c #0000E3", -"! c #ECECEC", -"~ c #EC0000", -"{ c #0000DB", -"] c #E3E3E3", -"^ c #E30000", -"/ c #0000D2", -"( c #DBDBDB", -"_ c #DB0000", -": c #0000C8", -"< c #D2D2D2", -"[ c #D20000", -"} c #0000BD", -"| c #C8C8C8", -"1 c #C80000", -"2 c #0000B1", -"3 c #BDBDBD", -"4 c #BD0000", -"5 c #0000A3", -"6 c #B1B1B1", -"7 c #B10000", -"8 c #000093", -"9 c #A3A3A3", -"0 c #A30000", -"a c #000080", -"b c #939393", -"c c #930000", -"d c #000077", -"e c #808080", -"f c #800000", +"# c #ED2939", " ", " ", " ", " ", " ", "................................ ", -".++++++++++@@@@@@@@@@@#########. ", -".++++++++++@@@@@@@@@@@#########. ", -".++++++++++@@@@@@@@@@@#########. ", -".++++++++++@@@@@@@@@@@#########. ", -".$$$$$$$$$$@@@@@@@@@@@#########. ", -".%%%%%%%%%%&&&&&&&&&&&*********. ", -".==========-----------;;;;;;;;;. ", -".>>>>>>>>>>,,,,,,,,,,,'''''''''. ", -".))))))))))!!!!!!!!!!!~~~~~~~~~. ", -".{{{{{{{{{{]]]]]]]]]]]^^^^^^^^^. ", -".//////////(((((((((((_________. ", -".::::::::::<<<<<<<<<<<[[[[[[[[[. ", -".}}}}}}}}}}|||||||||||111111111. ", -".222222222233333333333444444444. ", -".555555555566666666666777777777. ", -".888888888899999999999000000000. ", -".aaaaaaaaaabbbbbbbbbbbccccccccc. ", -".ddddddddddeeeeeeeeeeefffffffff. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", "................................ ", " ", " ", diff --git a/Source/Core/DolphinWX/resources/Flag_Germany.png b/Source/Core/DolphinWX/resources/Flag_Germany.png index c41352f36a..f803d4ed13 100644 Binary files a/Source/Core/DolphinWX/resources/Flag_Germany.png and b/Source/Core/DolphinWX/resources/Flag_Germany.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_Germany.xpm b/Source/Core/DolphinWX/resources/Flag_Germany.xpm index f0ca5a0934..4e4c69324d 100644 --- a/Source/Core/DolphinWX/resources/Flag_Germany.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Germany.xpm @@ -1,78 +1,34 @@ /* XPM */ -static const char *const Flag_Germany_xpm[] = { -"96 32 48 1", +static char * Flag_Germany_xpm[] = { +"96 32 4 1", " c None", ". c #000000", -"+ c #0000FD", -"@ c #0000FF", -"# c #0808F7", -"$ c #5C5CA3", -"% c #1717E8", -"& c #767680", -"* c #EDED00", -"= c #A5A54D", -"- c #2E2EB9", -"; c #96961A", -"> c #4A4A8E", -", c #0000FB", -"' c #0000F4", -") c #0808EC", -"! c #5C5C9B", -"~ c #1717DD", -"{ c #0000EE", -"] c #767677", -"^ c #A5A547", -"/ c #0000DD", -"( c #2E2EA0", -"_ c #969616", -": c #4A4A7B", -"< c #0000D2", -"[ c #0000C6", -"} c #0808BF", -"| c #5C5C7E", -"1 c #1717B4", -"2 c #0000B9", -"3 c #76765C", -"4 c #A5A537", -"5 c #0808B3", -"6 c #5C5C76", -"7 c #1717A8", -"8 c #0000A9", -"9 c #2E2E7A", -"0 c #969611", -"a c #4A4A5E", -"b c #767654", -"c c #A5A533", -"d c #000097", -"e c #2E2E6D", -"f c #96960F", -"g c #4A4A54", -"h c #000081", -"i c #000077", +"+ c #DD0000", +"@ c #FFCE00", " ", " ", " ", " ", " ", "................................ ", +"................................ ", +"................................ ", +"................................ ", +"................................ ", +"................................ ", +"................................ ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", -".@@@@@@@@@@@@@#$%@@@@@@@@@@@@@@. ", -".@@@@@@@@@#$%@&*=@#$%@@@@@@@@@@. ", -".@@@@@@@@@&*=@-;>@&*=@@@@@@@@@@. ", -".@@@@@@@@@-;>@@@@@-;>@@@@@@@@@@. ", -".,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. ", -".''''''')!~''''''''')!~''''''''. ", -".{{{{{{{]*^{{{{{{{{{]*^{{{{{{{{. ", -".///////(_://///////(_:////////. ", -".<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<. ", -".[[[[[[[[[}|1[[[[[}|1[[[[[[[[[[. ", -".2222222223*4256723*42222222222. ", -".88888888890a8b*c890a8888888888. ", -".dddddddddddddefgdddddddddddddd. ", -".hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh. ", -".iiiiiiiiiiiiiiiiiiiiiiiiiiiiii. ", -".iiiiiiiiiiiiiiiiiiiiiiiiiiiiii. ", "................................ ", " ", " ", diff --git a/Source/Core/DolphinWX/resources/Flag_Italy.png b/Source/Core/DolphinWX/resources/Flag_Italy.png index aa0ea79d31..2b2a8ef1e2 100644 Binary files a/Source/Core/DolphinWX/resources/Flag_Italy.png and b/Source/Core/DolphinWX/resources/Flag_Italy.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_Italy.xpm b/Source/Core/DolphinWX/resources/Flag_Italy.xpm index c47c87791a..f81cc4bc94 100644 --- a/Source/Core/DolphinWX/resources/Flag_Italy.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Italy.xpm @@ -1,75 +1,35 @@ /* XPM */ -static const char *const Flag_Italy_xpm[] = { -"96 32 45 1", +static char * Flag_Italy_xpm[] = { +"96 32 5 1", " c None", ". c #000000", -"+ c #006F00", +"+ c #009246", "@ c #FFFFFF", -"# c #FF0000", -"$ c #006C00", -"% c #006800", -"& c #FCFCFC", -"* c #FC0000", -"= c #006200", -"- c #F8F8F8", -"; c #F80000", -"> c #005C00", -", c #F2F2F2", -"' c #F20000", -") c #005300", -"! c #ECECEC", -"~ c #EC0000", -"{ c #004B00", -"] c #E3E3E3", -"^ c #E30000", -"/ c #004200", -"( c #DBDBDB", -"_ c #DB0000", -": c #003800", -"< c #D2D2D2", -"[ c #D20000", -"} c #002D00", -"| c #C8C8C8", -"1 c #C80000", -"2 c #002100", -"3 c #BDBDBD", -"4 c #BD0000", -"5 c #001C00", -"6 c #B1B1B1", -"7 c #B10000", -"8 c #001500", -"9 c #A3A3A3", -"0 c #A30000", -"a c #001200", -"b c #939393", -"c c #930000", -"d c #000F00", -"e c #808080", -"f c #800000", +"# c #CE2B37", " ", " ", " ", " ", " ", "................................ ", -".++++++++++@@@@@@@@@@@#########. ", -".++++++++++@@@@@@@@@@@#########. ", -".++++++++++@@@@@@@@@@@#########. ", -".++++++++++@@@@@@@@@@@#########. ", -".$$$$$$$$$$@@@@@@@@@@@#########. ", -".%%%%%%%%%%&&&&&&&&&&&*********. ", -".==========-----------;;;;;;;;;. ", -".>>>>>>>>>>,,,,,,,,,,,'''''''''. ", -".))))))))))!!!!!!!!!!!~~~~~~~~~. ", -".{{{{{{{{{{]]]]]]]]]]]^^^^^^^^^. ", -".//////////(((((((((((_________. ", -".::::::::::<<<<<<<<<<<[[[[[[[[[. ", -".}}}}}}}}}}|||||||||||111111111. ", -".222222222233333333333444444444. ", -".555555555566666666666777777777. ", -".888888888899999999999000000000. ", -".aaaaaaaaaabbbbbbbbbbbccccccccc. ", -".ddddddddddeeeeeeeeeeefffffffff. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", "................................ ", " ", " ", diff --git a/Source/Core/DolphinWX/resources/Flag_Japan.png b/Source/Core/DolphinWX/resources/Flag_Japan.png index 183275cd85..d68affd972 100644 Binary files a/Source/Core/DolphinWX/resources/Flag_Japan.png and b/Source/Core/DolphinWX/resources/Flag_Japan.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_Japan.xpm b/Source/Core/DolphinWX/resources/Flag_Japan.xpm index 47be025c6b..556dd9fa36 100644 --- a/Source/Core/DolphinWX/resources/Flag_Japan.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Japan.xpm @@ -1,73 +1,25 @@ /* XPM */ -static const char * const Flag_Japan_xpm[] = { -"96 32 67 1", +static char * Flag_Japan_xpm[] = { +"96 32 19 1", " c None", ". c #000000", "+ c #FFFFFF", -"@ c #FECACA", -"# c #FD8080", -"$ c #FD6161", -"% c #FD7676", -"& c #FEB6B6", -"* c #FEFEFE", -"= c #FFEDED", -"- c #FF4C4C", -"; c #FF0000", -"> c #FF2F2F", -", c #FFD7D7", -"' c #FEF5F5", -") c #FE2E2E", -"! c #FE1313", -"~ c #FEDDDD", -"{ c #F9F9F9", -"] c #FC7777", -"^ c #FD4545", -"/ c #F4F4F4", -"( c #F4F3F3", -"_ c #FA1313", -": c #FB0000", -"< c #FA0000", -"[ c #F4D4D4", -"} c #EFEFEF", -"| c #EFCFCF", -"1 c #F10000", -"2 c #EF9F9F", -"3 c #E4E4E4", -"4 c #E2BEBE", -"5 c #DD0000", -"6 c #E19090", -"7 c #D9D9D9", -"8 c #D8D0D0", -"9 c #CA0404", -"0 c #CA0000", -"a c #D5A9A9", -"b c #D0D0D0", -"c c #BC4242", -"d c #B40000", -"e c #B71A1A", -"f c #CFCFCF", -"g c #C6C6C6", -"h c #BEA7A7", -"i c #990808", -"j c #980000", -"k c #B78787", -"l c #BBBBBB", -"m c #A88989", -"n c #7B0B0B", -"o c #770000", -"p c #780202", -"q c #9E6B6B", -"r c #AEAEAE", -"s c #A89C9C", -"t c #8F4E4E", -"u c #7F1B1B", -"v c #7A0A0A", -"w c #7D1515", -"x c #8B4242", -"y c #A48F8F", -"z c #A0A0A0", -"A c #8F8F8F", -"B c #7C7C7C", +"@ c #FEFDFD", +"# c #F1C9D3", +"$ c #E9AAB9", +"% c #E69FB0", +"& c #C41F47", +"* c #BC002D", +"= c #C42047", +"- c #E6A1B2", +"; c #DA748D", +"> c #DB758D", +", c #EBB4C1", +"' c #ECB6C3", +") c #CD4263", +"! c #CE4465", +"~ c #BF0D38", +"{ c #C00E39", " ", " ", " ", @@ -77,21 +29,21 @@ static const char * const Flag_Japan_xpm[] = { ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", -".++++++++++++@#$%&*++++++++++++. ", -".++++++++++=-;;;;;>,+++++++++++. ", -".*********');;;;;;;!~**********. ", -".{{{{{{{{{];;;;;;;;;^{{{{{{{{{{. ", -".////////(_:::::::::<[/////////. ", -".}}}}}}}}|111111111112}}}}}}}}}. ", -".333333334555555555556333333333. ", -".77777777890000000000a777777777. ", -".bbbbbbbbbcdddddddddefbbbbbbbbb. ", -".ggggggggghijjjjjjjjkgggggggggg. ", -".llllllllllmnooooopqlllllllllll. ", -".rrrrrrrrrrrstuvwxyrrrrrrrrrrrr. ", -".zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz. ", -".AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA. ", -".BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB. ", +".++++++++++++@#$$#@++++++++++++. ", +".+++++++++++%&****=-+++++++++++. ", +".++++++++++;********>++++++++++. ", +".+++++++++,**********'+++++++++. ", +".+++++++++)**********!+++++++++. ", +".+++++++++~**********{+++++++++. ", +".+++++++++~**********{+++++++++. ", +".+++++++++)**********!+++++++++. ", +".+++++++++,**********'+++++++++. ", +".++++++++++;********>++++++++++. ", +".+++++++++++%&****=-+++++++++++. ", +".++++++++++++@#$$#@++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", "................................ ", " ", " ", diff --git a/Source/Core/DolphinWX/resources/Flag_Korea.png b/Source/Core/DolphinWX/resources/Flag_Korea.png new file mode 100644 index 0000000000..ff63df146c Binary files /dev/null and b/Source/Core/DolphinWX/resources/Flag_Korea.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_Korea.xpm b/Source/Core/DolphinWX/resources/Flag_Korea.xpm index 7b51bc78ef..857f82e721 100644 --- a/Source/Core/DolphinWX/resources/Flag_Korea.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Korea.xpm @@ -1,242 +1,137 @@ /* XPM */ -static const char *const Flag_Korea_xpm[] = { -/* columns rows colors chars-per-pixel */ -"96 32 210 2", -". c Black", -"p c #CACACA", -"= c #D9D9D9", -"a c #EED0D6", -">. c #770730", -"e c #F7F7F7", -"^ c #4B4B4B", -"}. c #5A5A5A", -"OX c #A0A4A8", -"k. c #878787", -"P c #D38494", -"u. c #161951", -"@ c #E1E1E1", -"{. c #353535", -"X c #FFFFFF", -"-. c #71163F", -"g c #E3A3AE", -"0 c #444444", -"t c #535353", -"%X c #626262", -"g. c #011F5A", -"x. c #3D557C", -"P. c #475D7F", -"C. c #8F8F8F", -"B c #B80020", -"$. c #949CB0", -"# c #9E9E9E", -".. c #B60323", -"N c #B6001A", -"C c #B6001B", -"k c #5B5B5B", -"`. c #6A6A6A", -"/ c #797979", -"*. c #AD0B2A", -"6 c #888888", -"2X c #979797", -"f c #D5667A", -"w. c #843656", -"Q c #BD2D47", -"y. c #16396E", -"+. c #D3D3D3", -"9. c #002F6C", -"$ c #E2E2E2", -"s. c #002C65", -"` c #D0C6CD", -"x c #F1F1F1", -"S. c #363636", -"=. c #B20927", -"F c #454545", -"W. c #959DA6", -"n. c #00295F", -"l c #545454", -"v. c #002962", -",. c #C0344C", -"J. c #00265A", -"2. c #7394AE", -"Z c #C53851", -"Q. c #3E5375", -";X c #9F9F9F", -"H. c #002358", -"z. c #C2C4C6", -"j c #AEAEAE", -"V. c #BDBDBD", -"e. c #D7B8BA", -"( c #CCCCCC", -"U c #B2001E", -"$X c #2F2F2F", -"; c #F9F9F9", -"! c #E1C0C6", -"v c #4D4D4D", -"@X c #6B6B6B", -"< c #7A7A7A", -"3. c #412554", -"c. c #001D59", -"q c #898989", -" c #656565", -"6X c #838383", -"1X c #929292", -"F. c #223A67", -"B. c #747D96", -"i. c #471E4A", -"Z. c #A1A1A1", -"N. c #0E275D", -"n c #B0B0B0", -"8. c #072C66", -"| c #B90928", -"!. c #072657", -"'. c #313131", -"b. c #002B62", -":X c #404040", -"y c #4F4F4F", -"2 c #6D6D6D", -"R c #B70C2D", -"3X c #8B8B8A", -"q. c #151C56", -"{ c #B00B2B", -"w c #C7C7C7", -"4. c #930326", -"z c #D6D6D6", -"^. c #001F53", -", c #484848", -"D. c #939CA9", -"% c #575757", -"p. c #302152", -"s c #DC8696", -"V c #B7001E", -"X. c #B7001F", -"d c #D35C72", -"H c #B1B1B1", -"#. c #DEDEDE", -"G. c #00164F", -"R. c #323232", -"1 c #FCFCFC", -"<. c #DBCBCE", -" . c #B80A29", -"D c #9B9B9B", -"T. c #B9B9B9", -"a. c #062A62", -"W c #B30018", -"O. c #E1E2E2", -"m c #D88695", -"1. c #D7D7D7", -"XX c #808A97", -"A c #E4BAC2", -"oX c #858E99", -"]. c #3A3A3A", -"+X c #585858", -"r c #949494", -" X c #ADAEAE", -"o. c #C66174", -"~ c #C1C1C1", -"L c #DADBDB", -"8 c #D0D0D0", -"t. c #92A0B1", -"=X c #333333", -"- c #FDFDFD", -"*X c #424242", -"u c #515151", -"#X c #606060", -"6. c #B40723", -"K c #7E7E7E", -"* c #8D8D8D", -"h. c #5A4F73", -"Y. c #BABABA", -"0. c #00306C", -"@. c #D8D8D8", -"S c #E7E7E7", -"|. c #2C2C2C", -">X c #3B3B3B", -"m. c #002A60", -"[ c #B20A2B", -"d. c #002A62", -"f. c #002A63", -"/. c #16315F", -"M c #BC1231", -"4 c #595959", -".X c #959BA2", -"] c #AD001C", -"h c #F3E6E9", -"7X c #959594", -"4X c #959595", -"Y c #B70B2E", -"o c #B3B3B3", -"A. c #C2C2C2", -"E c #B7082A", -"I c #B50E29", -"r. c #D1D1D1", -"U. c #252525", -"M. c #00215A", -"~. c #001E52", -"K. c #001E55", -"9 c #525252", -"G c #616161", -"[. c #7F7F7F", -"&X c #8E8E8E", -"j. c #D1C8C7", -"(. c #5F7088", -/* pixels */ +static char * Flag_Korea_xpm[] = { +"96 32 107 2", +" c None", +". c #000000", +"+ c #FFFFFF", +"@ c #E4E4E4", +"# c #BABABA", +"$ c #3A3A3A", +"% c #7F7F7F", +"& c #E8E8E8", +"* c #393939", +"= c #BBBBBB", +"- c #EBEBEB", +"; c #2F2F2F", +"> c #6A6A6A", +", c #616161", +"' c #373737", +") c #FAFAFA", +"! c #F9F9F9", +"~ c #363636", +"{ c #6E6E6E", +"] c #EFEFEF", +"^ c #FCFCFC", +"/ c #424242", +"( c #757575", +"_ c #3C3C3C", +": c #454545", +"< c #B7B7B7", +"[ c #FEFBFC", +"} c #EFBAC5", +"| c #E48E9E", +"1 c #E58F9F", +"2 c #F0BDC7", +"3 c #FEFCFD", +"4 c #676767", +"5 c #3E3E3E", +"6 c #878787", +"7 c #D7D7D7", +"8 c #707070", +"9 c #2C2C2C", +"0 c #717171", +"a c #F1C5CD", +"b c #CE2C4C", +"c c #C60C30", +"d c #F2CAD2", +"e c #9D9D9D", +"f c #D8D8D8", +"g c #F6F6F6", +"h c #B6B6B6", +"i c #474747", +"j c #FBFBFB", +"k c #F1D4DB", +"l c #C81639", +"m c #C9173A", +"n c #F5D5DB", +"o c #484848", +"p c #B35172", +"q c #D85A73", +"r c #56285E", +"s c #731D4E", +"t c #113172", +"u c #0B3274", +"v c #5C2256", +"w c #C81B3E", +"x c #0C3274", +"y c #6B1E51", +"z c #B41037", +"A c #AF1139", +"B c #572258", +"C c #003478", +"D c #7F2453", +"E c #423E75", +"F c #6C4675", +"G c #ECECEC", +"H c #A3A3A3", +"I c #343434", +"J c #C9B6C9", +"K c #093375", +"L c #D2C0CE", +"M c #353535", +"N c #6C6C6C", +"O c #303030", +"P c #BBA7BC", +"Q c #1B3372", +"R c #1D3372", +"S c #C3AFC3", +"T c #515151", +"U c #888888", +"V c #8C8C8C", +"W c #565656", +"X c #A6A6A6", +"Y c #FAF8FA", +"Z c #AD96B1", +"` c #7B658D", +" . c #7A648C", +".. c #AC95AF", +"+. c #646464", +"@. c #8A8A8A", +"#. c #949494", +"$. c #525252", +"%. c #5D5D5D", +"&. c #3F3F3F", +"*. c #434343", +"=. c #5F5F5F", +"-. c #696969", +";. c #CACACA", +">. c #969696", +",. c #F3F3F3", +"'. c #989898", " ", " ", " ", " ", " ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X . ", -". X X X X X X o O + X X X X X X X X X X X X @ # $ X X X X X X . ", -". X X X X X @ % & * = - X X X X X X X X ; : > , < X X X X X X . ", -". 1 1 1 1 1 2 3 4 5 6 7 1 1 1 1 1 1 1 1 8 9 0 3 q w 1 1 1 1 1 . ", -". e e e e r t y u i p e e a s d f g h e + j k 2 3 l z e e e e . ", -". x x x x c v l b n x x m M N B V C Z A x S D F & G H x x x x . ", -". 7 7 7 7 7 O J K L 7 P I U Y T R E W Q ! 7 ~ ^ / ( 7 7 7 7 7 . ", -". ) ) ) ) ) ) ( _ ) ` ' ] [ { } | ...X.o.) O.+.@.) ) ) ) ) ) . ", -". #.#.#.#.#.#.#.#.#.$.%.&.*.=.=.-.;.:.>.,.<.#.#.#.#.#.#.#.#.#.. ", -". 1.1.1.1.1.1.1.1.1.2.3.4.5.6.7.8.9.0.q.w.e.1.1.1.1.1.1.1.1.1.. ", -". r.r.r.r.r.r.r.r.r.t.y.u.i.p.a.s.d.f.g.h.j.r.r.r.r.r.r.r.r.r.. ", -". p p p p p p k.l.p z.x.c.v.b.n.n.m.M.N.B.p V.C.Z.p p p p p p . ", -". A.A.A.A.H 2 S.& l.A.D.F.G.H.J.J.K.L.P.I.A.C.U.y k.Y.A.A.A.A.. ", -". T.T.T.T.9 5 , R.2 E.T.W.Q.!.~.^./.(.).T._.`.u '.].[.T.T.T.T.. ", -". n n n n C.{.}.4 |./ n n X.XXXoXOXn n Z.+Xb @X#Xv n n n n n . ", -". l.l.l.l.l.G 5 $X'.%XD l.l.l.l.l.l.l.l.&X*X$X=X9 -Xl.l.l.l.l.. ", -". ;X;X;X;X;X;X:X>X,X , ' ) + + + + + + + + ! ~ , > { ] + + + + + . ", +". + + + + ^ / ( _ : < + + [ } | 1 2 3 + + < 4 5 6 / ^ + + + + . ", +". + + + + 7 8 9 8 0 + + a b c c c c b d + + e 8 9 8 f + + + + . ", +". + + + + + g h i j + k l c c c c c c m n + j o h g + + + + + . ", +". + + + + + + + ^ + + p c c c c c c c c q + + ^ + + + + + + + . ", +". + + + + + + + + + + r c c c c s t u v w + + + + + + + + + + . ", +". + + + + + + + + + + x y z A B C C C C D + + + + + + + + + + . ", +". + + + + + + + ^ + + E C C C C C C C C F + + ^ + + + + + + + . ", +". + + + + + G H I g + J K C C C C C C u L + g M H G + + + + + . ", +". + + + + 7 N O 8 0 + + P Q C C C C R S + + e 0 O N f + + + + . ", +". + + + + + T U V W X + + Y Z ` ...Y + + X +.@.#.$.+ + + + + . ", +". + + + + + - ; N %.&.) + + + + + + + + ! *.=.N -.] + + + + + . ", +". + + + + + + ;.&.>.,.+ + + + + + + + + + ,.'.5 ;.+ + + + + + . ", +". + + + + + + + @ + + + + + + + + + + + + + + @ + + + + + + + . ", +". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", " ", " ", @@ -244,5 +139,4 @@ static const char *const Flag_Korea_xpm[] = { " ", " ", " ", -" " -}; +" "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Taiwan.png b/Source/Core/DolphinWX/resources/Flag_Taiwan.png index c71920f92c..d5bb1007f1 100644 Binary files a/Source/Core/DolphinWX/resources/Flag_Taiwan.png and b/Source/Core/DolphinWX/resources/Flag_Taiwan.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm b/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm index f0670e4bc4..3f092d6149 100644 --- a/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm @@ -1,119 +1,54 @@ /* XPM */ -static const char *const Flag_Taiwan_xpm[] = { -"96 32 89 1", +static char * Flag_Taiwan_xpm[] = { +"96 32 24 1", " c None", ". c #000000", -"# c #000099", -"$ c #000098", -"% c #03039A", -"& c #000094", -"' c #05059B", -"( c #050095", -") c #DC0014", -"* c #FF0000", -"+ c #FD0001", -", c #04049B", -"- c #000096", -"! c #020299", -"0 c #2424A7", -"1 c #04049A", -"2 c #000097", -"3 c #000093", -"4 c #6262BF", -"5 c #2828A8", -"6 c #6C6CC1", -"7 c #3E3EB1", -"8 c #3B3BB0", -"9 c #00008F", -": c #01019A", -"; c #1919A3", -"< c #4040B0", -"= c #6363C0", -"> c #D6D6EE", -"? c #D9D9ED", -"@ c #C5C5E7", -"A c #3F3FB0", -"B c #3D3DAF", -"C c #020297", -"D c #010199", -"E c #5E5EBE", -"F c #DFDFF2", -"G c white", -"H c #BFBFE5", -"I c #2626A7", -"J c #4242B0", -"K c #7D7DCA", -"L c #FAFAFD", -"M c #FBFBFD", -"N c #FCFCFD", -"O c #FCFCFE", -"P c #DADAF0", -"Q c #6A6AC2", -"R c #1B1BA3", -"S c #000199", -"T c #0E0E9B", -"U c #5858BC", -"V c #D3D3ED", -"W c #2727A6", -"X c #060699", -"Y c #1212A0", -"Z c #6464C0", -"[ c #8080CC", -"] c #F4F4FA", -"^ c #F8F8FB", -"_ c #7070C4", -"` c #4949B5", -"a c #000095", -"b c #040499", -"c c #000092", -"d c #6767C2", -"e c #8686CA", -"f c #7070C5", -"g c #2B2BA9", -"h c #00009A", -"i c #01049C", -"j c #1619A4", -"k c #393CB3", -"l c #00029A", -"m c #1619A5", -"n c #020096", -"o c #DB0014", -"p c #FC0001", -"q c #0A0092", -"r c #060090", -"s c #0B0092", -"t c #0F008E", -"u c #DD0013", -"v c #FD0000", -"w c #E5000F", -"x c #E6010F", -"y c #E60110", -"z c #FB0002", -"{ c #FE0000", +"+ c #000095", +"@ c #FE0000", +"# c #12129C", +"$ c #010195", +"% c #3D3DAE", +"& c #0B0B9A", +"* c #1B1BA0", +"= c #8F8FD0", +"- c #9696D3", +"; c #9090D1", +"> c #1A1AA0", +", c #2424A4", +"' c #9696D4", +") c #DADAEF", +"! c #FFFFFF", +"~ c #D9D9EF", +"{ c #9797D4", +"] c #040497", +"^ c #5959BA", +"/ c #8E8ECF", +"( c #8E8ED1", +"_ c #8F8FD1", " ", " ", " ", " ", " ", "................................ ", -".#####$%#&'$$$##()*+***********. ", -".###$$,-!0&1!$##()*+***********. ", -".##$#23456789:$#()*+***********. ", -".###2;<=>?@ABCD#()*+***********. ", -".###$CEFGGGHI&D$()*+***********. ", -".##D-JKLMNOPQR-S()*+***********. ", -".###$TUGGNGVWX$#()*+***********. ", -".###2YZ[]^P_`aD$()*+***********. ", -".###$bcdEefg3D$#()*+***********. ", -".hhhhhijiklm#hhhno*p***********. ", -".qqqqqqrsrqrqqqqtu*v***********. ", -".wwwwwwxwywxwwwwwz*{***********. ", -".******************************. ", -".{{{{{{{{{{{{{{{{{*{***********. ", -".******************************. ", -".******************************. ", -".******************************. ", -".******************************. ", +".+++++++++++++++@@@@@@@@@@@@@@@. ", +".+++++#$%$#+++++@@@@@@@@@@@@@@@. ", +".++++&*=-;>&++++@@@@@@@@@@@@@@@. ", +".++++,')!~{,++++@@@@@@@@@@@@@@@. ", +".+++]^;!!!;^]+++@@@@@@@@@@@@@@@. ", +".++++,')!~{,++++@@@@@@@@@@@@@@@. ", +".++++&*/(_>&++++@@@@@@@@@@@@@@@. ", +".+++++#$%$#+++++@@@@@@@@@@@@@@@. ", +".+++++++++++++++@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", "................................ ", " ", " ", diff --git a/Source/Core/DolphinWX/resources/Flag_USA.png b/Source/Core/DolphinWX/resources/Flag_USA.png index 2803a73a3d..e34f11c274 100644 Binary files a/Source/Core/DolphinWX/resources/Flag_USA.png and b/Source/Core/DolphinWX/resources/Flag_USA.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_USA.xpm b/Source/Core/DolphinWX/resources/Flag_USA.xpm index 0a991bd02e..eca9509e16 100644 --- a/Source/Core/DolphinWX/resources/Flag_USA.xpm +++ b/Source/Core/DolphinWX/resources/Flag_USA.xpm @@ -1,60 +1,118 @@ /* XPM */ -static const char * Flag_USA_xpm[] = { -"96 32 30 1", +static char * Flag_USA_xpm[] = { +"96 32 88 1", " c None", ". c #000000", -"+ c #0000FF", -"@ c #CE7070", -"# c #B0BF99", -"$ c #F1F1F1", -"% c #FFFFFF", -"& c #0000FD", -"* c #CF8484", -"= c #DA9090", -"- c #0000F3", -"; c #B0BF96", -"> c #0000DF", -", c #0000CB", -"' c #B0BF8C", -") c #D98E8E", -"! c #0000B5", -"~ c #CA6C6C", -"{ c #000098", -"] c #B0BF80", -"^ c #000077", -"/ c #C26464", -"( c #DBDBDB", -"_ c #C17676", -": c #B55757", -"< c #BBBBBB", -"[ c #AC6161", -"} c #A34545", -"| c #8B8B8B", -"1 c #8E4343", +"+ c #545380", +"@ c #5C5B87", +"# c #565580", +"$ c #5B5A85", +"% c #585782", +"& c #5B5A84", +"* c #5A5984", +"= c #585783", +"- c #5C5B85", +"; c #555481", +"> c #5D5C85", +", c #54537F", +"' c #B22234", +") c #494878", +"! c #64638A", +"~ c #686891", +"{ c #66658B", +"] c #66668F", +"^ c #67668D", +"/ c #65658E", +"( c #68678E", +"_ c #65648D", +": c #6A6A8F", +"< c #62628C", +"[ c #4A4A78", +"} c #E1AAB1", +"| c #5B5A83", +"1 c #6B6A92", +"2 c #68678D", +"3 c #6A698E", +"4 c #696890", +"5 c #6A6990", +"6 c #676790", +"7 c #6D6C91", +"8 c #68678F", +"9 c #6C6B92", +"0 c #595883", +"a c #EDCCD0", +"b c #484777", +"c c #66668E", +"d c #69688F", +"e c #6B6A91", +"f c #6A6991", +"g c #6A6A91", +"h c #686790", +"i c #6E6D92", +"j c #67678E", +"k c #494877", +"l c #585784", +"m c #69698F", +"n c #61618A", +"o c #676690", +"p c #65648B", +"q c #65648E", +"r c #66658D", +"s c #64638D", +"t c #605F8A", +"u c #68688F", +"v c #F3DDE0", +"w c #434273", +"x c #64638B", +"y c #686890", +"z c #66658E", +"A c #63628C", +"B c #DB99A1", +"C c #6A698F", +"D c #626188", +"E c #67668E", +"F c #636289", +"G c #66658C", +"H c #63628B", +"I c #606089", +"J c #B83243", +"K c #414071", +"L c #65648A", +"M c #67668F", +"N c #6B6A90", +"O c #6E6D94", +"P c #64638C", +"Q c #FFFFFF", +"R c #5D5C86", +"S c #6D6C92", +"T c #65648C", +"U c #67678F", +"V c #CA6672", +"W c #6A4A71", " ", " ", " ", " ", " ", "................................ ", -".++++++++++++++@@@@@@@@@@@@@@@@. ", -".+#+#+#+#+#+#++$%%%%%%%%%%%%%%%. ", -".&&&&&&&&&&&&&&*===============. ", -".-;-;-;-;-;-;--@@@@@@@@@@@@@@@@. ", -".>>>>>>>>>>>>>>$%%%%%%%%%%%%%%%. ", -".,',',',',',',,*))))))))))))))). ", -".!!!!!!!!!!!!!!@~~~~~~~~~~~~~~~. ", -".{]{]{]{]{]{]{{$$$$$$$$$$$$$$$$. ", -".^^^^^^^^^^^^^^****************. ", -".^^^^^^^^^^^^^^@///////////////. ", -".((((((((((((((((((((((((((((((. ", -".______________________________. ", -".::::::::::::::::::::::::::::::. ", -".<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<. ", -".[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[. ", +".+@#$%&*=-;>,''''''''''''''''''. ", +".)!~{]^/(_:<[}}}}}}}}}}}}}}}}}}. ", +".|12134567890aaaaaaaaaaaaaaaaaa. ", +".bc9d1efghijk''''''''''''''''''. ", +".lmnopqrs2tu0vvvvvvvvvvvvvvvvvv. ", +".wx9^5y8fziAwBBBBBBBBBBBBBBBBBB. ", +".$CDEFGqH2IC&JJJJJJJJJJJJJJJJJJ. ", +".KLiMeudNrOPKQQQQQQQQQQQQQQQQQQ. ", +".RST4_U4qNASRVVVVVVVVVVVVVVVVVV. ", +".WWWWWWWWWWWWVVVVVVVVVVVVVVVVVV. ", +".QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ. ", +".JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ. ", +".BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB. ", +".vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv. ", +".''''''''''''''''''''''''''''''. ", +".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. ", ".}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}. ", -".||||||||||||||||||||||||||||||. ", -".111111111111111111111111111111. ", +".''''''''''''''''''''''''''''''. ", "................................ ", " ", " ", diff --git a/Source/Core/DolphinWX/resources/Flag_Unknown.png b/Source/Core/DolphinWX/resources/Flag_Unknown.png index 44cd41bafb..73e2651bd2 100644 Binary files a/Source/Core/DolphinWX/resources/Flag_Unknown.png and b/Source/Core/DolphinWX/resources/Flag_Unknown.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_Unknown.xpm b/Source/Core/DolphinWX/resources/Flag_Unknown.xpm index 3d95beb102..5c8c19968d 100644 --- a/Source/Core/DolphinWX/resources/Flag_Unknown.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Unknown.xpm @@ -1,46 +1,90 @@ -/* XPM */ -static const char *const Flag_Unknown_xpm[] = { -"96 32 15 1", +/* XPM */ +static char * Flag_Unknown_xpm[] = { +"96 32 59 1", " c None", -"! c black", -"# c #360000", -"$ c #D60000", -"% c #1B0000", -"& c #6B0000", -"' c #510000", -"( c #280000", -") c #BB0000", -"* c #780000", -"+ c #A00000", -", c #0D0000", -"- c #C90000", -". c #AE0000", -"0 c #430000", -" ", -" ", -" ", -" ", -" ", -"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", -"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", -"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", -"!!!!!!!!!!!!!!!!!!!!!!!####!!!!! ", -"!!!!!!!!!!!!!!!!!!!!!!!#$$#!###! ", -"!!!%&'!!!!%&'!()$$$$$*!#$$##$$#! ", -"!!!#$+!!!!#$+,-$$$$$$$&#$$#))$#! ", -"!!!#$+!!!!#$+#$.!!!!0$+#$$)))#!! ", -"!!!#$+!!!!#$+#$+!!!!#$+#$$))#!!! ", -"!!!#$+!!!!#$+#$+!!!!#$+#$$))#!!! ", -"!!!#$+!!!!#$+#$+!!!!#$+#$$)))#!! ", -"!!!#$.!!!!0$+#$+!!!!#$+#))#))$#! ", -"!!!,-$$$$$$$&#$+!!!!#$+#$$!#$$#! ", -"!!!!()$$$$$*!%&'!!!!%&'!##!!##!! ", -"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", -"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", -"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", -"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", -"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", -"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", +". c #000000", +"+ c #FFFFFF", +"@ c #FF0000", +"# c #FE3434", +"$ c #FED4D4", +"% c #FE1C1C", +"& c #FE0303", +"* c #FE9292", +"= c #FEB3B3", +"- c #FEC2C2", +"; c #FE1010", +"> c #FE0D0D", +", c #FEB6B6", +"' c #FE3333", +") c #FEACAC", +"! c #FE0808", +"~ c #FE1E1E", +"{ c #FED2D2", +"] c #FEB8B8", +"^ c #FEB1B1", +"/ c #FE9494", +"( c #FE0202", +"_ c #FE3636", +": c #FEE7E7", +"< c #FE3D3D", +"[ c #FE3131", +"} c #FEB0B0", +"| c #FE0101", +"1 c #FEAFAF", +"2 c #FE9393", +"3 c #FE0606", +"4 c #FEAEAE", +"5 c #FE1F1F", +"6 c #FEE9E9", +"7 c #FEE8E8", +"8 c #FE2020", +"9 c #FE4747", +"0 c #FE2F2F", +"a c #FEA4A4", +"b c #FE0404", +"c c #FEA2A2", +"d c #FE7A7A", +"e c #FE6868", +"f c #FEEDED", +"g c #FE6767", +"h c #FE7C7C", +"i c #FECBCB", +"j c #FEB4B4", +"k c #FE0909", +"l c #FE9696", +"m c #FEFBFB", +"n c #FE8080", +"o c #FE2727", +"p c #FE8282", +"q c #FEFCFC", +"r c #FE5151", +"s c #FE0F0F", +"t c #FE8787", +" ", +" ", +" ", +" ", +" ", +"................................ ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".+@@++++@@++@@#+++@@++@@+++$%&*. ", +".+@@++++@@++@@@=++@@++@@++-;>,+. ", +".+@@++++@@++@@#'++@@++@@+)!~{++. ", +".+@@++++@@++@@]@^+@@++@@/(_:+++. ", +".+@@++++@@++@@+<[+@@++@@@@}++++. ", +".+@@++++@|++@@+-@1@@++@@2|34+++. ", +".+5@6++7@8++@@++90@@++@@+ab&c++. ", +".+d@effg@h++@@++i@@@++@@++jk|l+. ", +".+mno33opq++@@+++r@@++@@+++-s@t. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +"................................ ", " ", " ", " ", -- cgit v1.2.3 From a167bccb035e38c593472d4490a7e369af6d04c7 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 18:59:15 -0600 Subject: Apparently the order here was important, cached somewhere I guess. --- Source/Core/DiscIO/Src/Volume.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/DiscIO/Src/Volume.h b/Source/Core/DiscIO/Src/Volume.h index 47cbc4f302..c90ee4a381 100644 --- a/Source/Core/DiscIO/Src/Volume.h +++ b/Source/Core/DiscIO/Src/Volume.h @@ -47,7 +47,6 @@ public: enum ECountry { COUNTRY_EUROPE = 0, - COUNTRY_GERMANY, COUNTRY_FRANCE, COUNTRY_RUSSIA, COUNTRY_USA, @@ -57,6 +56,7 @@ public: COUNTRY_TAIWAN, COUNTRY_SDK, COUNTRY_UNKNOWN, + COUNTRY_GERMANY, NUMBER_OF_COUNTRIES }; -- cgit v1.2.3 From 561b09457c7a1f34a8183e3464b6a1def3fa8ccc Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 19:01:58 -0600 Subject: Fix warnings. Forgot to add Sdk flags. --- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 3 - Source/Core/DolphinWX/resources/Flag_Europe.xpm | 2 +- Source/Core/DolphinWX/resources/Flag_France.xpm | 2 +- Source/Core/DolphinWX/resources/Flag_Germany.xpm | 2 +- Source/Core/DolphinWX/resources/Flag_Italy.xpm | 2 +- Source/Core/DolphinWX/resources/Flag_Japan.xpm | 2 +- Source/Core/DolphinWX/resources/Flag_Korea.xpm | 2 +- Source/Core/DolphinWX/resources/Flag_Sdk.png | Bin 0 -> 588 bytes Source/Core/DolphinWX/resources/Flag_Sdk.xpm | 114 +++++++++++++++++++++++ Source/Core/DolphinWX/resources/Flag_Taiwan.xpm | 2 +- Source/Core/DolphinWX/resources/Flag_USA.xpm | 2 +- Source/Core/DolphinWX/resources/Flag_Unknown.xpm | 2 +- 12 files changed, 123 insertions(+), 12 deletions(-) create mode 100644 Source/Core/DolphinWX/resources/Flag_Sdk.png create mode 100644 Source/Core/DolphinWX/resources/Flag_Sdk.xpm (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index 8d9815e4cd..1b35e06c29 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -35,8 +35,6 @@ #include "WxUtils.h" #include "Main.h" -extern "C" -{ #include "../resources/Flag_Europe.xpm" #include "../resources/Flag_Germany.xpm" #include "../resources/Flag_France.xpm" @@ -47,7 +45,6 @@ extern "C" #include "../resources/Flag_Korea.xpm" #include "../resources/Flag_Unknown.xpm" #include "../resources/Flag_Sdk.xpm" -} #include "../resources/Platform_Wad.xpm" #include "../resources/Platform_Wii.xpm" diff --git a/Source/Core/DolphinWX/resources/Flag_Europe.xpm b/Source/Core/DolphinWX/resources/Flag_Europe.xpm index 1608b2cb78..ea966ec317 100644 --- a/Source/Core/DolphinWX/resources/Flag_Europe.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Europe.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * Flag_Europe_xpm[] = { +static const char * Flag_Europe_xpm[] = { "96 32 43 1", " c None", ". c #000000", diff --git a/Source/Core/DolphinWX/resources/Flag_France.xpm b/Source/Core/DolphinWX/resources/Flag_France.xpm index 6336122380..f53abf6822 100644 --- a/Source/Core/DolphinWX/resources/Flag_France.xpm +++ b/Source/Core/DolphinWX/resources/Flag_France.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * Flag_France_xpm[] = { +static const char * Flag_France_xpm[] = { "96 32 5 1", " c None", ". c #000000", diff --git a/Source/Core/DolphinWX/resources/Flag_Germany.xpm b/Source/Core/DolphinWX/resources/Flag_Germany.xpm index 4e4c69324d..cd925bd2c8 100644 --- a/Source/Core/DolphinWX/resources/Flag_Germany.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Germany.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * Flag_Germany_xpm[] = { +static const char * Flag_Germany_xpm[] = { "96 32 4 1", " c None", ". c #000000", diff --git a/Source/Core/DolphinWX/resources/Flag_Italy.xpm b/Source/Core/DolphinWX/resources/Flag_Italy.xpm index f81cc4bc94..78d39a848c 100644 --- a/Source/Core/DolphinWX/resources/Flag_Italy.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Italy.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * Flag_Italy_xpm[] = { +static const char * Flag_Italy_xpm[] = { "96 32 5 1", " c None", ". c #000000", diff --git a/Source/Core/DolphinWX/resources/Flag_Japan.xpm b/Source/Core/DolphinWX/resources/Flag_Japan.xpm index 556dd9fa36..baf2c5982c 100644 --- a/Source/Core/DolphinWX/resources/Flag_Japan.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Japan.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * Flag_Japan_xpm[] = { +static const char * Flag_Japan_xpm[] = { "96 32 19 1", " c None", ". c #000000", diff --git a/Source/Core/DolphinWX/resources/Flag_Korea.xpm b/Source/Core/DolphinWX/resources/Flag_Korea.xpm index 857f82e721..32ce1a5289 100644 --- a/Source/Core/DolphinWX/resources/Flag_Korea.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Korea.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * Flag_Korea_xpm[] = { +static const char * Flag_Korea_xpm[] = { "96 32 107 2", " c None", ". c #000000", diff --git a/Source/Core/DolphinWX/resources/Flag_Sdk.png b/Source/Core/DolphinWX/resources/Flag_Sdk.png new file mode 100644 index 0000000000..803aab2b9a Binary files /dev/null and b/Source/Core/DolphinWX/resources/Flag_Sdk.png differ diff --git a/Source/Core/DolphinWX/resources/Flag_Sdk.xpm b/Source/Core/DolphinWX/resources/Flag_Sdk.xpm new file mode 100644 index 0000000000..0df81bf81f --- /dev/null +++ b/Source/Core/DolphinWX/resources/Flag_Sdk.xpm @@ -0,0 +1,114 @@ +/* XPM */ +static const char * Flag_Sdk_xpm[] = { +"96 32 79 1", +" c None", +". c #000000", +"+ c #FFFFFF", +"@ c #E9E9FE", +"# c #5959FE", +"$ c #1515FE", +"% c #0505FE", +"& c #1313FE", +"* c #3232FE", +"= c #0000FF", +"- c #0202FE", +"; c #0C0CFE", +"> c #2B2BFE", +", c #7676FE", +"' c #EEEEFE", +") c #D4D4FE", +"! c #1C1CFE", +"~ c #0303FE", +"{ c #9292FE", +"] c #5151FE", +"^ c #B1B1FE", +"/ c #F8F8FE", +"( c #CCCCFE", +"_ c #E5E5FE", +": c #9393FE", +"< c #0A0AFE", +"[ c #2424FE", +"} c #EAEAFE", +"| c #C2C2FE", +"1 c #1010FE", +"2 c #0D0DFE", +"3 c #B6B6FE", +"4 c #0F0FFE", +"5 c #8989FE", +"6 c #6767FE", +"7 c #ACACFE", +"8 c #0808FE", +"9 c #1E1EFE", +"0 c #D2D2FE", +"a c #5F5FFE", +"b c #9C9CFE", +"c c #E8E8FE", +"d c #DDDDFE", +"e c #1A1AFE", +"f c #9494FE", +"g c #3636FE", +"h c #E7E7FE", +"i c #B7B7FE", +"j c #0707FE", +"k c #A4A4FE", +"l c #F7F7FE", +"m c #B0B0FE", +"n c #FCFCFE", +"o c #C4C4FE", +"p c #8181FE", +"q c #2020FE", +"r c #1B1BFE", +"s c #0101FE", +"t c #0606FE", +"u c #AEAEFE", +"v c #E2E2FE", +"w c #8787FE", +"x c #0404FE", +"y c #A2A2FE", +"z c #3E3EFE", +"A c #A8A8FE", +"B c #F9F9FE", +"C c #5656FE", +"D c #E6E6FE", +"E c #B4B4FE", +"F c #0909FE", +"G c #9696FE", +"H c #4D4DFE", +"I c #2222FE", +"J c #1D1DFE", +"K c #6969FE", +"L c #0E0EFE", +"M c #2D2DFE", +"N c #7575FE", +" ", +" ", +" ", +" ", +" ", +"................................ ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".+@#$%&*+++==-;>,'+++==+++)!~{+. ", +".+]=^/(]+++==+_:<[}++==++|123++. ", +".+4=_++++++==+++5=6++==+7890+++. ", +".+9=&abc+++==+++d=e++==f-gh++++. ", +".+ie===jk++==+++l=%++====m+++++. ", +".++nopq=!++==+++d=r++==:stu++++. ", +".+++++v=1++==+++w=6++==+kx~y+++. ", +".+zAcB7=C++==+D:<[}++==++EFsG++. ", +".+HI;%JK'++==~LMN'+++==+++|4=w+. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +"................................ ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm b/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm index 3f092d6149..da0f13de47 100644 --- a/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * Flag_Taiwan_xpm[] = { +static const char * Flag_Taiwan_xpm[] = { "96 32 24 1", " c None", ". c #000000", diff --git a/Source/Core/DolphinWX/resources/Flag_USA.xpm b/Source/Core/DolphinWX/resources/Flag_USA.xpm index eca9509e16..44260eca52 100644 --- a/Source/Core/DolphinWX/resources/Flag_USA.xpm +++ b/Source/Core/DolphinWX/resources/Flag_USA.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * Flag_USA_xpm[] = { +static const char * Flag_USA_xpm[] = { "96 32 88 1", " c None", ". c #000000", diff --git a/Source/Core/DolphinWX/resources/Flag_Unknown.xpm b/Source/Core/DolphinWX/resources/Flag_Unknown.xpm index 5c8c19968d..381d43f304 100644 --- a/Source/Core/DolphinWX/resources/Flag_Unknown.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Unknown.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * Flag_Unknown_xpm[] = { +static const char * Flag_Unknown_xpm[] = { "96 32 59 1", " c None", ". c #000000", -- cgit v1.2.3 From 34a82738017ba05bb05561c687ad69f06e821ce5 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 19:11:03 -0600 Subject: we don't need PNGs of the flags --- Source/Core/DolphinWX/resources/Flag_Europe.png | Bin 419 -> 0 bytes Source/Core/DolphinWX/resources/Flag_France.png | Bin 194 -> 0 bytes Source/Core/DolphinWX/resources/Flag_Germany.png | Bin 191 -> 0 bytes Source/Core/DolphinWX/resources/Flag_Italy.png | Bin 194 -> 0 bytes Source/Core/DolphinWX/resources/Flag_Japan.png | Bin 290 -> 0 bytes Source/Core/DolphinWX/resources/Flag_Korea.png | Bin 730 -> 0 bytes Source/Core/DolphinWX/resources/Flag_Sdk.png | Bin 588 -> 0 bytes Source/Core/DolphinWX/resources/Flag_Taiwan.png | Bin 306 -> 0 bytes Source/Core/DolphinWX/resources/Flag_USA.png | Bin 613 -> 0 bytes Source/Core/DolphinWX/resources/Flag_Unknown.png | Bin 485 -> 0 bytes 10 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Source/Core/DolphinWX/resources/Flag_Europe.png delete mode 100644 Source/Core/DolphinWX/resources/Flag_France.png delete mode 100644 Source/Core/DolphinWX/resources/Flag_Germany.png delete mode 100644 Source/Core/DolphinWX/resources/Flag_Italy.png delete mode 100644 Source/Core/DolphinWX/resources/Flag_Japan.png delete mode 100644 Source/Core/DolphinWX/resources/Flag_Korea.png delete mode 100644 Source/Core/DolphinWX/resources/Flag_Sdk.png delete mode 100644 Source/Core/DolphinWX/resources/Flag_Taiwan.png delete mode 100644 Source/Core/DolphinWX/resources/Flag_USA.png delete mode 100644 Source/Core/DolphinWX/resources/Flag_Unknown.png (limited to 'Source') diff --git a/Source/Core/DolphinWX/resources/Flag_Europe.png b/Source/Core/DolphinWX/resources/Flag_Europe.png deleted file mode 100644 index a0e8c187e2..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_Europe.png and /dev/null differ diff --git a/Source/Core/DolphinWX/resources/Flag_France.png b/Source/Core/DolphinWX/resources/Flag_France.png deleted file mode 100644 index 6aed09aab1..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_France.png and /dev/null differ diff --git a/Source/Core/DolphinWX/resources/Flag_Germany.png b/Source/Core/DolphinWX/resources/Flag_Germany.png deleted file mode 100644 index f803d4ed13..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_Germany.png and /dev/null differ diff --git a/Source/Core/DolphinWX/resources/Flag_Italy.png b/Source/Core/DolphinWX/resources/Flag_Italy.png deleted file mode 100644 index 2b2a8ef1e2..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_Italy.png and /dev/null differ diff --git a/Source/Core/DolphinWX/resources/Flag_Japan.png b/Source/Core/DolphinWX/resources/Flag_Japan.png deleted file mode 100644 index d68affd972..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_Japan.png and /dev/null differ diff --git a/Source/Core/DolphinWX/resources/Flag_Korea.png b/Source/Core/DolphinWX/resources/Flag_Korea.png deleted file mode 100644 index ff63df146c..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_Korea.png and /dev/null differ diff --git a/Source/Core/DolphinWX/resources/Flag_Sdk.png b/Source/Core/DolphinWX/resources/Flag_Sdk.png deleted file mode 100644 index 803aab2b9a..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_Sdk.png and /dev/null differ diff --git a/Source/Core/DolphinWX/resources/Flag_Taiwan.png b/Source/Core/DolphinWX/resources/Flag_Taiwan.png deleted file mode 100644 index d5bb1007f1..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_Taiwan.png and /dev/null differ diff --git a/Source/Core/DolphinWX/resources/Flag_USA.png b/Source/Core/DolphinWX/resources/Flag_USA.png deleted file mode 100644 index e34f11c274..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_USA.png and /dev/null differ diff --git a/Source/Core/DolphinWX/resources/Flag_Unknown.png b/Source/Core/DolphinWX/resources/Flag_Unknown.png deleted file mode 100644 index 73e2651bd2..0000000000 Binary files a/Source/Core/DolphinWX/resources/Flag_Unknown.png and /dev/null differ -- cgit v1.2.3 From 7fdfd1ef655e95a8c4f17480e4789f005a68848e Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 10 Jan 2013 19:20:47 -0600 Subject: Make all flags 2 pixels taller. Aspect-ratio is now correct for nearly all flags. --- Source/Core/DolphinWX/resources/Flag_Europe.xpm | 129 +++++++----- Source/Core/DolphinWX/resources/Flag_France.xpm | 4 +- Source/Core/DolphinWX/resources/Flag_Germany.xpm | 22 +- Source/Core/DolphinWX/resources/Flag_Italy.xpm | 4 +- Source/Core/DolphinWX/resources/Flag_Japan.xpm | 71 ++++--- Source/Core/DolphinWX/resources/Flag_Korea.xpm | 234 +++++++++++---------- Source/Core/DolphinWX/resources/Flag_Sdk.xpm | 4 +- Source/Core/DolphinWX/resources/Flag_Taiwan.xpm | 68 ++++--- Source/Core/DolphinWX/resources/Flag_USA.xpm | 247 ++++++++++++----------- Source/Core/DolphinWX/resources/Flag_Unknown.xpm | 4 +- 10 files changed, 410 insertions(+), 377 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/resources/Flag_Europe.xpm b/Source/Core/DolphinWX/resources/Flag_Europe.xpm index ea966ec317..3ab8534066 100644 --- a/Source/Core/DolphinWX/resources/Flag_Europe.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Europe.xpm @@ -1,50 +1,66 @@ /* XPM */ static const char * Flag_Europe_xpm[] = { -"96 32 43 1", +"96 32 60 1", " c None", ". c #000000", "+ c #003399", -"@ c #043797", -"# c #013498", -"$ c #8F8845", -"% c #8C8645", -"& c #16408C", -"* c #DDB715", -"= c #415972", -"- c #848348", -"; c #84834A", -"> c #425A71", -", c #737754", -"' c #234884", -") c #4D626A", -"! c #B6A02D", -"~ c #0C3B92", -"{ c #B7A12C", -"] c #465E6F", -"^ c #AE9B30", -"/ c #AE9C30", -"( c #3A5676", -"_ c #BBA229", -": c #16418C", -"< c #BAA22A", -"[ c #395577", -"} c #2B4D7F", -"| c #B8A12B", -"1 c #BAA22B", -"2 c #2A4D7F", -"3 c #4D626B", -"4 c #B5A02D", -"5 c #B6A02C", -"6 c #AD9D31", -"7 c #103D8F", -"8 c #6B7358", -"9 c #1B4489", -"0 c #063795", -"a c #E0B912", -"b c #485E6F", -"c c #495D6E", -"d c #E0B913", -" ", +"@ c #013498", +"# c #33527A", +"$ c #32527B", +"% c #103D90", +"& c #707555", +"* c #1B4389", +"= c #C9AC20", +"- c #C9AC21", +"; c #6F7556", +"> c #083994", +", c #E6BB0F", +"' c #4D606B", +") c #0B3A92", +"! c #4F616A", +"~ c #E5BB0F", +"{ c #16408C", +"] c #023597", +"^ c #737954", +"/ c #E7BE0F", +"( c #0D3A91", +"_ c #E8BE0E", +": c #727854", +"< c #2F4F7D", +"[ c #445B70", +"} c #455C6F", +"| c #2E4E7D", +"1 c #465D6F", +"2 c #CCAD1E", +"3 c #18418B", +"4 c #CBAD1E", +"5 c #2D4F7E", +"6 c #C0A626", +"7 c #C0A625", +"8 c #0E3B91", +"9 c #50636A", +"0 c #053696", +"a c #506369", +"b c #80804D", +"c c #E6BE0E", +"d c #083794", +"e c #E7BE0E", +"f c #7F7F4D", +"g c #103B8F", +"h c #17408B", +"i c #E5BB10", +"j c #485D6E", +"k c #0C3992", +"l c #0B3892", +"m c #495E6D", +"n c #E4BB10", +"o c #777B51", +"p c #264982", +"q c #C7AA21", +"r c #C6A923", +"s c #767A52", +"t c #3B5675", +"u c #3A5576", " ", " ", " ", @@ -52,20 +68,22 @@ static const char * Flag_Europe_xpm[] = { "................................ ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", -".+++++++++++@+#$%#+@+++++++++++. ", -".++++++++++&*=+-;+>*&++++++++++. ", -".+++++++++++,'++++',+++++++++++. ", -".++++++++)!~++++++++~{)++++++++. ", -".++++++++]^++++++++++/]++++++++. ", -".++++++++++++++++++++++++++++++. ", -".+++++++(_:++++++++++:<[+++++++. ", -".+++++++}|++++++++++++12+++++++. ", +".+++++++++++++@#$@+++++++++++++. ", +".++++++++++%&*+=-+*;%++++++++++. ", +".++++++++++>,'+))+!~>++++++++++. ", +".+++++++++{+]]++++]]+{+++++++++. ", +".++++++++^/(++++++++(_:++++++++. ", +".++++++++<[++++++++++}|++++++++. ", +".++++++++]++++++++++++]++++++++. ", +".+++++++123++++++++++341+++++++. ", +".+++++++56++++++++++++75+++++++. ", ".++++++++++++++++++++++++++++++. ", -".++++++++34~++++++++~53++++++++. ", -".++++++++]/++++++++++6]++++++++. ", -".++++++++++789++++987++++++++++. ", -".++++++++++0ab#$%#cd0++++++++++. ", -".++++++++++++++-;++++++++++++++. ", +".++++++++890++++++++0a8++++++++. ", +".++++++++bcd++++++++def++++++++. ", +".++++++++))+g++++++g+))++++++++. ", +".++++++++++hij+kl+mnh++++++++++. ", +".+++++++++++op@qr@ps+++++++++++. ", +".++++++++++++++tu++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", "................................ ", @@ -74,5 +92,4 @@ static const char * Flag_Europe_xpm[] = { " ", " ", " ", -" ", " "}; diff --git a/Source/Core/DolphinWX/resources/Flag_France.xpm b/Source/Core/DolphinWX/resources/Flag_France.xpm index f53abf6822..1d71b3430d 100644 --- a/Source/Core/DolphinWX/resources/Flag_France.xpm +++ b/Source/Core/DolphinWX/resources/Flag_France.xpm @@ -10,7 +10,6 @@ static const char * Flag_France_xpm[] = { " ", " ", " ", -" ", "................................ ", ".++++++++++@@@@@@@@@@##########. ", ".++++++++++@@@@@@@@@@##########. ", @@ -30,11 +29,12 @@ static const char * Flag_France_xpm[] = { ".++++++++++@@@@@@@@@@##########. ", ".++++++++++@@@@@@@@@@##########. ", ".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", "................................ ", " ", " ", " ", " ", " ", -" ", " "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Germany.xpm b/Source/Core/DolphinWX/resources/Flag_Germany.xpm index cd925bd2c8..e178b30edf 100644 --- a/Source/Core/DolphinWX/resources/Flag_Germany.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Germany.xpm @@ -1,11 +1,12 @@ /* XPM */ static const char * Flag_Germany_xpm[] = { -"96 32 4 1", +"96 32 6 1", " c None", ". c #000000", -"+ c #DD0000", -"@ c #FFCE00", -" ", +"+ c #4A0000", +"@ c #DD0000", +"# c #F48A00", +"$ c #FFCE00", " ", " ", " ", @@ -18,22 +19,23 @@ static const char * Flag_Germany_xpm[] = { "................................ ", "................................ ", ".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".##############################. ", +".$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", +".$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", +".$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", +".$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", +".$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", +".$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ", "................................ ", " ", " ", " ", " ", " ", -" ", " "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Italy.xpm b/Source/Core/DolphinWX/resources/Flag_Italy.xpm index 78d39a848c..d0832f2d8a 100644 --- a/Source/Core/DolphinWX/resources/Flag_Italy.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Italy.xpm @@ -10,7 +10,6 @@ static const char * Flag_Italy_xpm[] = { " ", " ", " ", -" ", "................................ ", ".++++++++++@@@@@@@@@@##########. ", ".++++++++++@@@@@@@@@@##########. ", @@ -30,11 +29,12 @@ static const char * Flag_Italy_xpm[] = { ".++++++++++@@@@@@@@@@##########. ", ".++++++++++@@@@@@@@@@##########. ", ".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", +".++++++++++@@@@@@@@@@##########. ", "................................ ", " ", " ", " ", " ", " ", -" ", " "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Japan.xpm b/Source/Core/DolphinWX/resources/Flag_Japan.xpm index baf2c5982c..bdd86a6882 100644 --- a/Source/Core/DolphinWX/resources/Flag_Japan.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Japan.xpm @@ -1,26 +1,34 @@ /* XPM */ static const char * Flag_Japan_xpm[] = { -"96 32 19 1", +"96 32 28 1", " c None", ". c #000000", "+ c #FFFFFF", -"@ c #FEFDFD", -"# c #F1C9D3", -"$ c #E9AAB9", -"% c #E69FB0", -"& c #C41F47", -"* c #BC002D", -"= c #C42047", -"- c #E6A1B2", -"; c #DA748D", -"> c #DB758D", -", c #EBB4C1", -"' c #ECB6C3", -") c #CD4263", -"! c #CE4465", -"~ c #BF0D38", -"{ c #C00E39", -" ", +"@ c #FDF9FA", +"# c #E497A9", +"$ c #CA3458", +"% c #C0113B", +"& c #CA3559", +"* c #E498AA", +"= c #FEFAFB", +"- c #F8E4E9", +"; c #C93155", +"> c #BC002D", +", c #C93256", +"' c #F8E5EA", +") c #FDF7F8", +"! c #C82E53", +"~ c #C93055", +"{ c #FDF8F9", +"] c #E18EA2", +"^ c #E290A4", +"/ c #CA375A", +"( c #BF0B36", +"_ c #BF0D38", +": c #CB385B", +"< c #E394A7", +"[ c #E396A9", +"} c #BE0733", " ", " ", " ", @@ -29,18 +37,20 @@ static const char * Flag_Japan_xpm[] = { ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", -".++++++++++++@#$$#@++++++++++++. ", -".+++++++++++%&****=-+++++++++++. ", -".++++++++++;********>++++++++++. ", -".+++++++++,**********'+++++++++. ", -".+++++++++)**********!+++++++++. ", -".+++++++++~**********{+++++++++. ", -".+++++++++~**********{+++++++++. ", -".+++++++++)**********!+++++++++. ", -".+++++++++,**********'+++++++++. ", -".++++++++++;********>++++++++++. ", -".+++++++++++%&****=-+++++++++++. ", -".++++++++++++@#$$#@++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".+++++++++++@#$%%&*=+++++++++++. ", +".++++++++++-;>>>>>>,'++++++++++. ", +".+++++++++)!>>>>>>>>~{+++++++++. ", +".+++++++++]>>>>>>>>>>^+++++++++. ", +".+++++++++$>>>>>>>>>>/+++++++++. ", +".+++++++++(>>>>>>>>>>_+++++++++. ", +".+++++++++(>>>>>>>>>>_+++++++++. ", +".+++++++++&>>>>>>>>>>:+++++++++. ", +".+++++++++<>>>>>>>>>>[+++++++++. ", +".+++++++++{!>>>>>>>>~@+++++++++. ", +".++++++++++-;>>>>>>,'++++++++++. ", +".+++++++++++@#$}}&*=+++++++++++. ", +".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", @@ -50,5 +60,4 @@ static const char * Flag_Japan_xpm[] = { " ", " ", " ", -" ", " "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Korea.xpm b/Source/Core/DolphinWX/resources/Flag_Korea.xpm index 32ce1a5289..26ebd9fa24 100644 --- a/Source/Core/DolphinWX/resources/Flag_Korea.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Korea.xpm @@ -1,114 +1,105 @@ /* XPM */ static const char * Flag_Korea_xpm[] = { -"96 32 107 2", +"96 32 99 2", " c None", ". c #000000", "+ c #FFFFFF", -"@ c #E4E4E4", -"# c #BABABA", -"$ c #3A3A3A", -"% c #7F7F7F", -"& c #E8E8E8", -"* c #393939", -"= c #BBBBBB", -"- c #EBEBEB", -"; c #2F2F2F", -"> c #6A6A6A", -", c #616161", -"' c #373737", -") c #FAFAFA", -"! c #F9F9F9", -"~ c #363636", -"{ c #6E6E6E", -"] c #EFEFEF", -"^ c #FCFCFC", -"/ c #424242", -"( c #757575", -"_ c #3C3C3C", -": c #454545", -"< c #B7B7B7", -"[ c #FEFBFC", -"} c #EFBAC5", -"| c #E48E9E", -"1 c #E58F9F", -"2 c #F0BDC7", -"3 c #FEFCFD", -"4 c #676767", -"5 c #3E3E3E", -"6 c #878787", -"7 c #D7D7D7", -"8 c #707070", -"9 c #2C2C2C", -"0 c #717171", -"a c #F1C5CD", -"b c #CE2C4C", -"c c #C60C30", -"d c #F2CAD2", -"e c #9D9D9D", -"f c #D8D8D8", -"g c #F6F6F6", -"h c #B6B6B6", -"i c #474747", -"j c #FBFBFB", -"k c #F1D4DB", -"l c #C81639", -"m c #C9173A", -"n c #F5D5DB", -"o c #484848", -"p c #B35172", -"q c #D85A73", -"r c #56285E", -"s c #731D4E", -"t c #113172", -"u c #0B3274", -"v c #5C2256", -"w c #C81B3E", -"x c #0C3274", -"y c #6B1E51", -"z c #B41037", -"A c #AF1139", -"B c #572258", -"C c #003478", -"D c #7F2453", -"E c #423E75", -"F c #6C4675", -"G c #ECECEC", -"H c #A3A3A3", -"I c #343434", -"J c #C9B6C9", -"K c #093375", -"L c #D2C0CE", -"M c #353535", -"N c #6C6C6C", -"O c #303030", -"P c #BBA7BC", -"Q c #1B3372", -"R c #1D3372", -"S c #C3AFC3", -"T c #515151", -"U c #888888", -"V c #8C8C8C", -"W c #565656", -"X c #A6A6A6", -"Y c #FAF8FA", -"Z c #AD96B1", -"` c #7B658D", -" . c #7A648C", -".. c #AC95AF", -"+. c #646464", -"@. c #8A8A8A", -"#. c #949494", -"$. c #525252", -"%. c #5D5D5D", -"&. c #3F3F3F", -"*. c #434343", -"=. c #5F5F5F", -"-. c #696969", -";. c #CACACA", -">. c #969696", -",. c #F3F3F3", -"'. c #989898", -" ", +"@ c #FDFDFD", +"# c #E2E2E2", +"$ c #313131", +"% c #BABABA", +"& c #BBBBBB", +"* c #505050", +"= c #777777", +"- c #3F3F3F", +"; c #868686", +"> c #F9F9F9", +", c #3E3E3E", +"' c #5B5B5B", +") c #A1A1A1", +"! c #545454", +"~ c #2E2E2E", +"{ c #7D7D7D", +"] c #5F5F5F", +"^ c #5E5E5E", +"/ c #7E7E7E", +"( c #434343", +"_ c #9C9C9C", +": c #A5A5A5", +"< c #E4E4E4", +"[ c #292929", +"} c #636363", +"| c #717171", +"1 c #2B2B2B", +"2 c #F0F0F0", +"3 c #EEB6C0", +"4 c #D44964", +"5 c #C81537", +"6 c #C81638", +"7 c #D54C66", +"8 c #EEB7C1", +"9 c #F1F1F1", +"0 c #8D8D8D", +"a c #626262", +"b c #E8E8E8", +"c c #A0A0A0", +"d c #4B4B4B", +"e c #B0B0B0", +"f c #E17E91", +"g c #C60C30", +"h c #E28395", +"i c #B2B2B2", +"j c #C9C9C9", +"k c #E4B0BD", +"l c #707070", +"m c #A54367", +"n c #C10D32", +"o c #BD0D34", +"p c #D54D67", +"q c #52285E", +"r c #6A1E52", +"s c #093374", +"t c #023378", +"u c #50245B", +"v c #C7193C", +"w c #0A3275", +"x c #761C4D", +"y c #602155", +"z c #003478", +"A c #812351", +"B c #353973", +"C c #653E6F", +"D c #A38BA8", +"E c #B196B0", +"F c #323232", +"G c #555555", +"H c #6D5985", +"I c #6C5885", +"J c #565656", +"K c #ECECEC", +"L c #282828", +"M c #666666", +"N c #939393", +"O c #A68FAA", +"P c #373A73", +"Q c #0E3274", +"R c #0D3374", +"S c #363A73", +"T c #A891AC", +"U c #E9E9E9", +"V c #949494", +"W c #676767", +"X c #B1B1B1", +"Y c #646464", +"Z c #808080", +"` c #4F4F4F", +" . c #A6A6A6", +".. c #B7B7B7", +"+. c #787878", +"@. c #333333", +"#. c #EBEBEB", +"$. c #444444", +"%. c #CECECE", " ", " ", " ", @@ -116,20 +107,22 @@ static const char * Flag_Korea_xpm[] = { ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ", ". + + + + + + + @ + + + + + + + + + + + + + + @ + + + + + + + . ", -". + + + + + + # $ % & + + + + + + + + + + & % * = + + + + + + . ", -". + + + + + - ; > , ' ) + + + + + + + + ! ~ , > { ] + + + + + . ", -". + + + + ^ / ( _ : < + + [ } | 1 2 3 + + < 4 5 6 / ^ + + + + . ", -". + + + + 7 8 9 8 0 + + a b c c c c b d + + e 8 9 8 f + + + + . ", -". + + + + + g h i j + k l c c c c c c m n + j o h g + + + + + . ", -". + + + + + + + ^ + + p c c c c c c c c q + + ^ + + + + + + + . ", -". + + + + + + + + + + r c c c c s t u v w + + + + + + + + + + . ", -". + + + + + + + + + + x y z A B C C C C D + + + + + + + + + + . ", -". + + + + + + + ^ + + E C C C C C C C C F + + ^ + + + + + + + . ", -". + + + + + G H I g + J K C C C C C C u L + g M H G + + + + + . ", -". + + + + 7 N O 8 0 + + P Q C C C C R S + + e 0 O N f + + + + . ", -". + + + + + T U V W X + + Y Z ` ...Y + + X +.@.#.$.+ + + + + . ", -". + + + + + - ; N %.&.) + + + + + + + + ! *.=.N -.] + + + + + . ", -". + + + + + + ;.&.>.,.+ + + + + + + + + + ,.'.5 ;.+ + + + + + . ", +". + + + + + + # $ % + + + + + + + + + + + + & $ # + + + + + + . ", +". + + + + + + * = - ; > + + + + + + + + > ; , = ' + + + + + + . ", +". + + + + + ) ! ~ { ] + + + + + + + + + + ^ / ( _ : + + + + + . ", +". + + + + < [ } | 1 2 + + 3 4 5 6 7 8 + + 9 0 | a [ < + + + + . ", +". + + + + b c - d e + + f g g g g g g h + + i d - c b + + + + . ", +". + + + + + + j | + + k g g g g g g g g 8 + + l j + + + + + + . ", +". + + + + + + + + + + m g g g g g n o g p + + + + + + + + + + . ", +". + + + + + + + + + + q g g g g r s t u v + + + + + + + + + + . ", +". + + + + + + + + + + w x n o y z z z z A + + + + + + + + + + . ", +". + + + + + + + + + + B z z z z z z z z C + + + + + + + + + + . ", +". + + + + + + j | + + D z z z z z z z z E + + l j + + + + + + . ", +". + + + + b c F G e + + H z z z z z z I + + i J $ c b + + + + . ", +". + + + + K L M N F b + + O P Q R S T + + U 0 V W [ K + + + + . ", +". + + + + + X M Y Z ` + + + + + + + + + + ` Z a ...+ + + + + . ", +". + + + + + + * +.@.0 > + + + + + + + + > 0 @.= ' + + + + + + . ", +". + + + + + + #.$.%.+ + + + + + + + + + + + %.$.#.+ + + + + + . ", ". + + + + + + + @ + + + + + + + + + + + + + + @ + + + + + + + . ", ". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", @@ -138,5 +131,4 @@ static const char * Flag_Korea_xpm[] = { " ", " ", " ", -" ", " "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Sdk.xpm b/Source/Core/DolphinWX/resources/Flag_Sdk.xpm index 0df81bf81f..f4a5504044 100644 --- a/Source/Core/DolphinWX/resources/Flag_Sdk.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Sdk.xpm @@ -84,12 +84,12 @@ static const char * Flag_Sdk_xpm[] = { " ", " ", " ", -" ", "................................ ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", ".+@#$%&*+++==-;>,'+++==+++)!~{+. ", ".+]=^/(]+++==+_:<[}++==++|123++. ", ".+4=_++++++==+++5=6++==+7890+++. ", @@ -104,11 +104,11 @@ static const char * Flag_Sdk_xpm[] = { ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", "................................ ", " ", " ", " ", " ", " ", -" ", " "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm b/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm index da0f13de47..19aa7cc4f6 100644 --- a/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Taiwan.xpm @@ -1,44 +1,52 @@ /* XPM */ static const char * Flag_Taiwan_xpm[] = { -"96 32 24 1", +"96 32 32 1", " c None", ". c #000000", "+ c #000095", "@ c #FE0000", -"# c #12129C", -"$ c #010195", -"% c #3D3DAE", -"& c #0B0B9A", -"* c #1B1BA0", -"= c #8F8FD0", -"- c #9696D3", -"; c #9090D1", -"> c #1A1AA0", -", c #2424A4", -"' c #9696D4", -") c #DADAEF", -"! c #FFFFFF", -"~ c #D9D9EF", -"{ c #9797D4", -"] c #040497", -"^ c #5959BA", -"/ c #8E8ECF", -"( c #8E8ED1", -"_ c #8F8FD1", -" ", +"# c #050597", +"$ c #2727A5", +"% c #2A2AA6", +"& c #6A6AC1", +"* c #A4A4D9", +"= c #6B6BC1", +"- c #2929A6", +"; c #3636AB", +"> c #8181CA", +", c #9595D3", +"' c #D4D4ED", +") c #9494D2", +"! c #8282CB", +"~ c #3535AB", +"{ c #2B2BA7", +"] c #7F7FC9", +"^ c #FFFFFF", +"/ c #7E7ECA", +"( c #040497", +"_ c #3C3CAE", +": c #8080C9", +"< c #7F7FCA", +"[ c #9494D3", +"} c #2C2CA7", +"| c #5454B8", +"1 c #9F9FD7", +"2 c #5555B8", +"3 c #2828A6", " ", " ", " ", " ", "................................ ", ".+++++++++++++++@@@@@@@@@@@@@@@. ", -".+++++#$%$#+++++@@@@@@@@@@@@@@@. ", -".++++&*=-;>&++++@@@@@@@@@@@@@@@. ", -".++++,')!~{,++++@@@@@@@@@@@@@@@. ", -".+++]^;!!!;^]+++@@@@@@@@@@@@@@@. ", -".++++,')!~{,++++@@@@@@@@@@@@@@@. ", -".++++&*/(_>&++++@@@@@@@@@@@@@@@. ", -".+++++#$%$#+++++@@@@@@@@@@@@@@@. ", +".+++++#+$+#+++++@@@@@@@@@@@@@@@. ", +".+++++%&*=-+++++@@@@@@@@@@@@@@@. ", +".++++;>,')!~++++@@@@@@@@@@@@@@@. ", +".++++{]^^^/{++++@@@@@@@@@@@@@@@. ", +".+++(_:^^^<_(+++@@@@@@@@@@@@@@@. ", +".++++;>[')!~++++@@@@@@@@@@@@@@@. ", +".+++++}|12{+++++@@@@@@@@@@@@@@@. ", +".+++++#+3+#+++++@@@@@@@@@@@@@@@. ", ".+++++++++++++++@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", @@ -49,11 +57,11 @@ static const char * Flag_Taiwan_xpm[] = { ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", ".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", +".@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ", "................................ ", " ", " ", " ", " ", " ", -" ", " "}; diff --git a/Source/Core/DolphinWX/resources/Flag_USA.xpm b/Source/Core/DolphinWX/resources/Flag_USA.xpm index 44260eca52..2b1d466240 100644 --- a/Source/Core/DolphinWX/resources/Flag_USA.xpm +++ b/Source/Core/DolphinWX/resources/Flag_USA.xpm @@ -1,123 +1,128 @@ /* XPM */ static const char * Flag_USA_xpm[] = { -"96 32 88 1", -" c None", -". c #000000", -"+ c #545380", -"@ c #5C5B87", -"# c #565580", -"$ c #5B5A85", -"% c #585782", -"& c #5B5A84", -"* c #5A5984", -"= c #585783", -"- c #5C5B85", -"; c #555481", -"> c #5D5C85", -", c #54537F", -"' c #B22234", -") c #494878", -"! c #64638A", -"~ c #686891", -"{ c #66658B", -"] c #66668F", -"^ c #67668D", -"/ c #65658E", -"( c #68678E", -"_ c #65648D", -": c #6A6A8F", -"< c #62628C", -"[ c #4A4A78", -"} c #E1AAB1", -"| c #5B5A83", -"1 c #6B6A92", -"2 c #68678D", -"3 c #6A698E", -"4 c #696890", -"5 c #6A6990", -"6 c #676790", -"7 c #6D6C91", -"8 c #68678F", -"9 c #6C6B92", -"0 c #595883", -"a c #EDCCD0", -"b c #484777", -"c c #66668E", -"d c #69688F", -"e c #6B6A91", -"f c #6A6991", -"g c #6A6A91", -"h c #686790", -"i c #6E6D92", -"j c #67678E", -"k c #494877", -"l c #585784", -"m c #69698F", -"n c #61618A", -"o c #676690", -"p c #65648B", -"q c #65648E", -"r c #66658D", -"s c #64638D", -"t c #605F8A", -"u c #68688F", -"v c #F3DDE0", -"w c #434273", -"x c #64638B", -"y c #686890", -"z c #66658E", -"A c #63628C", -"B c #DB99A1", -"C c #6A698F", -"D c #626188", -"E c #67668E", -"F c #636289", -"G c #66658C", -"H c #63628B", -"I c #606089", -"J c #B83243", -"K c #414071", -"L c #65648A", -"M c #67668F", -"N c #6B6A90", -"O c #6E6D94", -"P c #64638C", -"Q c #FFFFFF", -"R c #5D5C86", -"S c #6D6C92", -"T c #65648C", -"U c #67678F", -"V c #CA6672", -"W c #6A4A71", -" ", -" ", -" ", -" ", -" ", -"................................ ", -".+@#$%&*=-;>,''''''''''''''''''. ", -".)!~{]^/(_:<[}}}}}}}}}}}}}}}}}}. ", -".|12134567890aaaaaaaaaaaaaaaaaa. ", -".bc9d1efghijk''''''''''''''''''. ", -".lmnopqrs2tu0vvvvvvvvvvvvvvvvvv. ", -".wx9^5y8fziAwBBBBBBBBBBBBBBBBBB. ", -".$CDEFGqH2IC&JJJJJJJJJJJJJJJJJJ. ", -".KLiMeudNrOPKQQQQQQQQQQQQQQQQQQ. ", -".RST4_U4qNASRVVVVVVVVVVVVVVVVVV. ", -".WWWWWWWWWWWWVVVVVVVVVVVVVVVVVV. ", -".QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ. ", -".JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ. ", -".BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB. ", -".vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv. ", -".''''''''''''''''''''''''''''''. ", -".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. ", -".}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}. ", -".''''''''''''''''''''''''''''''. ", -"................................ ", -" ", -" ", -" ", -" ", -" ", -" ", -" "}; +"96 32 93 2", +" c None", +". c #000000", +"+ c #4C4B79", +"@ c #54537F", +"# c #4E4E7C", +"$ c #52517E", +"% c #4F4E7C", +"& c #504F7D", +"* c #51517E", +"= c #4F4E7D", +"- c #51517F", +"; c #4D4C7C", +"> c #52527F", +", c #4B4A79", +"' c #B22234", +") c #53527F", +"! c #5F5E89", +"~ c #616089", +"{ c #60608A", +"] c #616088", +"^ c #606088", +"/ c #605F87", +"( c #52517F", +"_ c #D58791", +": c #3E3D70", +"< c #62618A", +"[ c #65658C", +"} c #64638A", +"| c #62628B", +"1 c #63638B", +"2 c #63628A", +"3 c #61608A", +"4 c #64648B", +"5 c #605F89", +"6 c #3E3D6F", +"7 c #FFFFFF", +"8 c #6D6D92", +"9 c #68678E", +"0 c #6B6A91", +"a c #696890", +"b c #6A698F", +"c c #68688F", +"d c #66658F", +"e c #6E6D95", +"f c #63628B", +"g c #B83243", +"h c #3D3C6F", +"i c #68678D", +"j c #6F6E93", +"k c #69688F", +"l c #6C6C92", +"m c #6B6A92", +"n c #6C6B91", +"o c #6D6C91", +"p c #696990", +"q c #6F6F93", +"r c #CF7681", +"s c #66658C", +"t c #6F6E94", +"u c #6A6990", +"v c #6E6D92", +"w c #6B6B8F", +"x c #6D6D91", +"y c #6D6C92", +"z c #6E6D94", +"A c #676690", +"B c #6F6E95", +"C c #65648D", +"D c #3C3B6E", +"E c #6A6991", +"F c #66658B", +"G c #66658E", +"H c #66668E", +"I c #67668E", +"J c #BD4352", +"K c #6C6C93", +"L c #6C6B90", +"M c #6A6A91", +"N c #68678F", +"O c #6F6E96", +"P c #64638C", +"Q c #CA6672", +"R c #65648B", +"S c #6C6C91", +"T c #6B6B91", +"U c #62628A", +"V c #66658D", +"W c #67668F", +"X c #64638D", +"Y c #6E6E95", +"Z c #C45462", +"` c #5E456E", +" . c #5F456E", +" ", +" ", +" ", +" ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". + @ # $ % & * = - ; > , ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' . ", +". ) ! ~ { ] ^ / ] ~ ~ ~ ( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ . ", +". : < [ } | } 1 2 3 4 5 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 . ", +". } 8 9 0 a b a c 0 d e f g g g g g g g g g g g g g g g g g g . ", +". h i j k l m n o p q 9 h r r r r r r r r r r r r r r r r r r . ", +". s t u v w x y k z A B C 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 . ", +". D } E F 9 G H I [ 0 2 D J J J J J J J J J J J J J J J J J J . ", +". F B 9 K k L M N v H O P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q . ", +". D R z N S p b T G t C D 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 . ", +". U t V m W u T W 8 X Y 3 Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z . ", +". ` ` ` .` ` ` ` ` .` ` Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z . ", +". 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 . ", +". Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q . ", +". J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J . ", +". 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 . ", +". r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r . ", +". g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g . ", +". 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 . ", +". _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ . ", +". ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Unknown.xpm b/Source/Core/DolphinWX/resources/Flag_Unknown.xpm index 381d43f304..d67ac42ee0 100644 --- a/Source/Core/DolphinWX/resources/Flag_Unknown.xpm +++ b/Source/Core/DolphinWX/resources/Flag_Unknown.xpm @@ -64,12 +64,12 @@ static const char * Flag_Unknown_xpm[] = { " ", " ", " ", -" ", "................................ ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", ".+@@++++@@++@@#+++@@++@@+++$%&*. ", ".+@@++++@@++@@@=++@@++@@++-;>,+. ", ".+@@++++@@++@@#'++@@++@@+)!~{++. ", @@ -84,11 +84,11 @@ static const char * Flag_Unknown_xpm[] = { ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", ".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", "................................ ", " ", " ", " ", " ", " ", -" ", " "}; -- cgit v1.2.3 From f21f097e7a831e752ab36974897b2ba57e266dfc Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 10 Jan 2013 21:44:12 -0500 Subject: Redundant line of code in VertexShaderManager::Dirty() Also cleaned it up. --- .../Core/VideoCommon/Src/VertexShaderManager.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp index d960710ada..84340c6b98 100644 --- a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp @@ -169,14 +169,24 @@ void VertexShaderManager::Shutdown() void VertexShaderManager::Dirty() { - nTransformMatricesChanged[0] = 0; nTransformMatricesChanged[1] = 256; - nNormalMatricesChanged[0] = 0; nNormalMatricesChanged[1] = 96; - nPostTransformMatricesChanged[0] = 0; nPostTransformMatricesChanged[1] = 256; - nLightsChanged[0] = 0; nLightsChanged[1] = 0x80; + nTransformMatricesChanged[0] = 0; + nTransformMatricesChanged[1] = 256; + + nNormalMatricesChanged[0] = 0; + nNormalMatricesChanged[1] = 96; + + nPostTransformMatricesChanged[0] = 0; + nPostTransformMatricesChanged[1] = 256; + + nLightsChanged[0] = 0; + nLightsChanged[1] = 0x80; + bPosNormalMatrixChanged = true; - bTexMatricesChanged[0] = bTexMatricesChanged[1] = true; + bTexMatricesChanged[0] = true; + bTexMatricesChanged[1] = true; + bProjectionChanged = true; - bPosNormalMatrixChanged = bTexMatricesChanged[0] = bTexMatricesChanged[1] = true; + nMaterialsChanged = 15; } -- cgit v1.2.3 From 80f4475e76be299e19ff88283d8f8aa02726506b Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 11 Jan 2013 14:03:09 +1100 Subject: Added a Dolby Pro Logic II (DPL2) decoder in the OpenAL backend. DPL2 audio is decoded to 5.1. Code adapted from ffdshow. Added an option in the DSP settings to disable the DPL2 decoder in case Dolphin incorrectly detects a 5.1 audio system. Updated the OpenAL files to OpenAL Soft 1.15.1 in the Windows build. Fixes issue 3023. --- Source/Core/AudioCommon/AudioCommon.vcxproj | 10 +- .../Core/AudioCommon/AudioCommon.vcxproj.filters | 2 + Source/Core/AudioCommon/CMakeLists.txt | 1 + Source/Core/AudioCommon/Src/DPL2Decoder.cpp | 397 +++++++++++++++++++++ Source/Core/AudioCommon/Src/DPL2Decoder.h | 24 ++ Source/Core/AudioCommon/Src/OpenALStream.cpp | 85 ++++- Source/Core/AudioCommon/Src/OpenALStream.h | 6 +- Source/Core/Core/Src/ConfigManager.cpp | 2 + Source/Core/Core/Src/CoreParameter.cpp | 2 + Source/Core/Core/Src/CoreParameter.h | 2 + Source/Core/DolphinWX/Src/ConfigMain.cpp | 16 + Source/Core/DolphinWX/Src/ConfigMain.h | 2 + 12 files changed, 534 insertions(+), 15 deletions(-) create mode 100644 Source/Core/AudioCommon/Src/DPL2Decoder.cpp create mode 100644 Source/Core/AudioCommon/Src/DPL2Decoder.h (limited to 'Source') diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj b/Source/Core/AudioCommon/AudioCommon.vcxproj index 2e13aedb46..a983005318 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj @@ -109,7 +109,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true @@ -121,7 +121,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true @@ -147,7 +147,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true @@ -175,7 +175,7 @@ - ..\Common\Src;%(AdditionalIncludeDirectories) + ..\Core\Src;..\Common\Src;..\..\..\Externals;%(AdditionalIncludeDirectories) true @@ -192,6 +192,7 @@ + @@ -204,6 +205,7 @@ + diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj.filters b/Source/Core/AudioCommon/AudioCommon.vcxproj.filters index 7e098ecb85..af5fe12220 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj.filters +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj.filters @@ -21,6 +21,7 @@ SoundStreams + @@ -44,6 +45,7 @@ SoundStreams + diff --git a/Source/Core/AudioCommon/CMakeLists.txt b/Source/Core/AudioCommon/CMakeLists.txt index 93547681b0..0e610bd847 100644 --- a/Source/Core/AudioCommon/CMakeLists.txt +++ b/Source/Core/AudioCommon/CMakeLists.txt @@ -1,5 +1,6 @@ set(SRCS Src/AudioCommon.cpp Src/AudioCommonConfig.cpp + Src/DPL2Decoder.cpp Src/Mixer.cpp Src/WaveFile.cpp Src/NullSoundStream.cpp) diff --git a/Source/Core/AudioCommon/Src/DPL2Decoder.cpp b/Source/Core/AudioCommon/Src/DPL2Decoder.cpp new file mode 100644 index 0000000000..4efedc4b44 --- /dev/null +++ b/Source/Core/AudioCommon/Src/DPL2Decoder.cpp @@ -0,0 +1,397 @@ +// Copyright (C) 2003 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/ + +// Dolby Pro Logic 2 decoder from ffdshow-tryout +// * Copyright 2001 Anders Johansson ajh@atri.curtin.edu.au +// * Copyright (c) 2004-2006 Milan Cutka +// * based on mplayer HRTF plugin by ylai + +#include +#include +#include "DPL2Decoder.h" + +#define M_PI 3.14159265358979323846 +#define M_SQRT1_2 0.70710678118654752440 + +int olddelay = -1; +unsigned int oldfreq = 0; +unsigned int dlbuflen; +int cyc_pos; +float l_fwr, r_fwr, lpr_fwr, lmr_fwr; +std::vector fwrbuf_l, fwrbuf_r; +float adapt_l_gain, adapt_r_gain, adapt_lpr_gain, adapt_lmr_gain; +std::vector lf, rf, lr, rr, cf, cr; +float LFE_buf[256]; +unsigned int lfe_pos; +float *filter_coefs_lfe; +unsigned int len125; + +template static _ftype_t dotproduct(int count,const T *buf,const _ftype_t *coefficients) +{ + float sum0=0,sum1=0,sum2=0,sum3=0; + for (;count>=4;buf+=4,coefficients+=4,count-=4) + { + sum0+=buf[0]*coefficients[0]; + sum1+=buf[1]*coefficients[1]; + sum2+=buf[2]*coefficients[2]; + sum3+=buf[3]*coefficients[3]; + } + while (count--) sum0+= *buf++ * *coefficients++; + return sum0+sum1+sum2+sum3; +} + +template static T firfilter(const T *buf, int pos, int len, int count, const float *coefficients) +{ + int count1, count2; + + if (pos >= count) + { + pos -= count; + count1 = count; count2 = 0; + } + else + { + count2 = pos; + count1 = count - pos; + pos = len - count1; + } + + // high part of window + const T *ptr = &buf[pos]; + + float r1=dotproduct(count1,ptr,coefficients);coefficients+=count1; + float r2=dotproduct(count2,buf,coefficients); + return T(r1+r2); +} + +template inline const T& limit(const T& val, const T& min, const T& max) +{ + if (val < min) { + return min; + } else if (val > max) { + return max; + } else { + return val; + } +} + +/* +// Hamming +// 2*pi*k +// w(k) = 0.54 - 0.46*cos(------), where 0 <= k < N +// N-1 +// +// n window length +// w buffer for the window parameters +*/ +void hamming(int n, float* w) +{ + int i; + float k = float(2*M_PI/((float)(n-1))); // 2*pi/(N-1) + + // Calculate window coefficients + for (i=0; i Fs/2 +flags window and filter type as defined in filter.h +variables are ored together: i.e. LP|HAMMING will give a +low pass filter designed using a hamming window +opt beta constant used only when designing using kaiser windows + +returns 0 if OK, -1 if fail +*/ +float* design_fir(unsigned int *n, float* fc, float opt) +{ + unsigned int o = *n & 1; // Indicator for odd filter length + unsigned int end = ((*n + 1) >> 1) - o; // Loop end + unsigned int i; // Loop index + + float k1 = 2 * float(M_PI); // 2*pi*fc1 + float k2 = 0.5f * (float)(1 - o);// Constant used if the filter has even length + float g = 0.0f; // Gain + float t1; // Temporary variables + float fc1; // Cutoff frequencies + + // Sanity check + if(*n==0) return NULL; + fc[0]=limit(fc[0],float(0.001),float(1)); + + float *w=(float*)calloc(sizeof(float),*n); + + // Get window coefficients + hamming(*n,w); + + fc1=*fc; + // Cutoff frequency must be < 0.5 where 0.5 <=> Fs/2 + fc1 = ((fc1 <= 1.0) && (fc1 > 0.0)) ? fc1/2 : 0.25f; + k1 *= fc1; + + // Low pass filter + + // If the filter length is odd, there is one point which is exactly + // in the middle. The value at this point is 2*fCutoff*sin(x)/x, + // where x is zero. To make sure nothing strange happens, we set this + // value separately. + if (o) + { + w[end] = fc1 * w[end] * 2.0f; + g=w[end]; + } + + // Create filter + for (i=0 ; i M9_03DB * lpr_fwr ? lmr_fwr : M9_03DB * lpr_fwr; + float lpr_gain = (lpr_fwr + lmr_lim_fwr) / (1 + lpr_fwr + lpr_fwr); + float lmr_gain = (lpr_fwr + lmr_lim_fwr) / (1 + lmr_lim_fwr + lmr_lim_fwr); + float lmr_unlim_gain = (lpr_fwr + lmr_fwr) / (1 + lmr_fwr + lmr_fwr); + float lpr, lmr; + float l_agc, r_agc, lpr_agc, lmr_agc; + float f, d_gain, c_gain, c_agc_cfk; + + /*** AXIS NO. 1: (Lt, Rt) -> (C, Ls, Rs) ***/ + /* AGC adaption */ + d_gain = (fabs(l_gain - *adapt_l_gain) + fabs(r_gain - *adapt_r_gain)) * 0.5f; + f = d_gain * (1.0f / MATAGCTRIG); + f = MATAGCDECAY - MATAGCDECAY / (1 + f * f); + *adapt_l_gain = (1 - f) * *adapt_l_gain + f * l_gain; + *adapt_r_gain = (1 - f) * *adapt_r_gain + f * r_gain; + /* Matrix */ + l_agc = in[il] * passive_lock(*adapt_l_gain); + r_agc = in[ir] * passive_lock(*adapt_r_gain); + cf[k] = (l_agc + r_agc) * (float)M_SQRT1_2; + if (decode_rear) + { + lr[kr] = rr[kr] = (l_agc - r_agc) * (float)M_SQRT1_2; + /* Stereo rear channel is steered with the same AGC steering as + the decoding matrix. Note this requires a fast updating AGC + at the order of 20 ms (which is the case here). */ + lr[kr] *= (l_fwr + l_fwr) / (1 + l_fwr + r_fwr); + rr[kr] *= (r_fwr + r_fwr) / (1 + l_fwr + r_fwr); + } + + /*** AXIS NO. 2: (Lt + Rt, Lt - Rt) -> (L, R) ***/ + lpr = (in[il] + in[ir]) * (float)M_SQRT1_2; + lmr = (in[il] - in[ir]) * (float)M_SQRT1_2; + /* AGC adaption */ + d_gain = fabs(lmr_unlim_gain - *adapt_lmr_gain); + f = d_gain * (1.0f / MATAGCTRIG); + f = MATAGCDECAY - MATAGCDECAY / (1 + f * f); + *adapt_lpr_gain = (1 - f) * *adapt_lpr_gain + f * lpr_gain; + *adapt_lmr_gain = (1 - f) * *adapt_lmr_gain + f * lmr_gain; + /* Matrix */ + lpr_agc = lpr * passive_lock(*adapt_lpr_gain); + lmr_agc = lmr * passive_lock(*adapt_lmr_gain); + lf[k] = (lpr_agc + lmr_agc) * (float)M_SQRT1_2; + rf[k] = (lpr_agc - lmr_agc) * (float)M_SQRT1_2; + + /*** CENTER FRONT CANCELLATION ***/ + /* A heuristic approach exploits that Lt + Rt gain contains the + information about Lt, Rt correlation. This effectively reshapes + the front and rear "cones" to concentrate Lt + Rt to C and + introduce Lt - Rt in L, R. */ + /* 0.67677 is the empirical lower bound for lpr_gain. */ + c_gain = 8 * (*adapt_lpr_gain - 0.67677f); + c_gain = c_gain > 0 ? c_gain : 0; + /* c_gain should not be too high, not even reaching full + cancellation (~ 0.50 - 0.55 at current AGC implementation), or + the center will sound too narrow. */ + c_gain = MATCOMPGAIN / (1 + c_gain * c_gain); + c_agc_cfk = c_gain * cf[k]; + lf[k] -= c_agc_cfk; + rf[k] -= c_agc_cfk; + cf[k] += c_agc_cfk + c_agc_cfk; +} + +void dpl2decode(float *samples, int numsamples, float *out) +{ + static const unsigned int FWRDURATION = 240; /* FWR average duration (samples) */ + static const unsigned int cfg_delay = 0; + static const unsigned int fmt_freq = 48000; + static const unsigned int fmt_nchannels = 2; // input channels + + int cur = 0; + + if (olddelay != cfg_delay || oldfreq != fmt_freq) + { + done(); + olddelay = cfg_delay; + oldfreq = fmt_freq; + dlbuflen = std::max(FWRDURATION, (fmt_freq * cfg_delay / 1000)); //+(len7000-1); + cyc_pos = dlbuflen - 1; + fwrbuf_l.resize(dlbuflen); + fwrbuf_r.resize(dlbuflen); + lf.resize(dlbuflen); + rf.resize(dlbuflen); + lr.resize(dlbuflen); + rr.resize(dlbuflen); + cf.resize(dlbuflen); + cr.resize(dlbuflen); + filter_coefs_lfe = calc_coefficients_125Hz_lowpass(fmt_freq); + lfe_pos = 0; + memset(LFE_buf, 0, sizeof(LFE_buf)); + } + + float *in = samples; // Input audio data + float *end = in + numsamples * fmt_nchannels; // Loop end + + while (in < end) + { + const int k = cyc_pos; + + const int fwr_pos = (k + FWRDURATION) % dlbuflen; + /* Update the full wave rectified total amplitude */ + /* Input matrix decoder */ + l_fwr += fabs(in[0]) - fabs(fwrbuf_l[fwr_pos]); + r_fwr += fabs(in[1]) - fabs(fwrbuf_r[fwr_pos]); + lpr_fwr += fabs(in[0] + in[1]) - fabs(fwrbuf_l[fwr_pos] + fwrbuf_r[fwr_pos]); + lmr_fwr += fabs(in[0] - in[1]) - fabs(fwrbuf_l[fwr_pos] - fwrbuf_r[fwr_pos]); + + /* Matrix encoded 2 channel sources */ + fwrbuf_l[k] = in[0]; + fwrbuf_r[k] = in[1]; + matrix_decode(in, k, 0, 1, true, dlbuflen, + l_fwr, r_fwr, + lpr_fwr, lmr_fwr, + &adapt_l_gain, &adapt_r_gain, + &adapt_lpr_gain, &adapt_lmr_gain, + &lf[0], &rf[0], &lr[0], &rr[0], &cf[0]); + + out[cur + 0] = lf[k]; + out[cur + 1] = rf[k]; + out[cur + 2] = cf[k]; + LFE_buf[lfe_pos] = (out[0] + out[1]) / 2; + out[cur + 3] = firfilter(LFE_buf, lfe_pos, len125, len125, filter_coefs_lfe); + lfe_pos++; + if (lfe_pos == len125) + { + lfe_pos = 0; + } + out[cur + 4] = lr[k]; + out[cur + 5] = rr[k]; + // Next sample... + in += 2; + cur += 6; + cyc_pos--; + if (cyc_pos < 0) + { + cyc_pos += dlbuflen; + } + } +} + +void dpl2reset() +{ + olddelay = -1; + oldfreq = 0; + filter_coefs_lfe = NULL; +} diff --git a/Source/Core/AudioCommon/Src/DPL2Decoder.h b/Source/Core/AudioCommon/Src/DPL2Decoder.h new file mode 100644 index 0000000000..eee8fbf15e --- /dev/null +++ b/Source/Core/AudioCommon/Src/DPL2Decoder.h @@ -0,0 +1,24 @@ +// Copyright (C) 2003 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 _DPL2DECODER_H_ +#define _DPL2DECODER_H_ + +void dpl2decode(float *samples, int numsamples, float *out); +void dpl2reset(); + +#endif // _DPL2DECODER_H_ diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index b0c856dcad..8fb1f1b2c5 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -15,10 +15,9 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ -#include - #include "aldlist.h" #include "OpenALStream.h" +#include "DPL2Decoder.h" #if defined HAVE_OPENAL && HAVE_OPENAL @@ -37,8 +36,10 @@ bool OpenALStream::Start() pDeviceList = new ALDeviceList(); if ((pDeviceList) && (pDeviceList->GetNumDevices())) { - char *defDevName = pDeviceList-> \ - GetDeviceName(pDeviceList->GetDefaultDevice()); + char *defDevName = pDeviceList->GetDeviceName(pDeviceList->GetDefaultDevice()); + + WARN_LOG(AUDIO, "Found OpenAL device %s", defDevName); + pDevice = alcOpenDevice(defDevName); if (pDevice) { @@ -52,8 +53,7 @@ bool OpenALStream::Start() else { alcCloseDevice(pDevice); - PanicAlertT("OpenAL: can't create context " - "for device %s", defDevName); + PanicAlertT("OpenAL: can't create context for device %s", defDevName); } } else @@ -67,6 +67,9 @@ bool OpenALStream::Start() PanicAlertT("OpenAL: can't find sound devices"); } + // Initialise DPL2 parameters + dpl2reset(); + soundTouch.clear(); return bReturn; } @@ -76,6 +79,7 @@ void OpenALStream::Stop() threadData = 1; // kick the thread if it's waiting soundSyncEvent.Set(); + mainSyncEvent.Set(); soundTouch.clear(); @@ -141,10 +145,15 @@ void OpenALStream::SoundLoop() alGenSources(1, &uiSource); // Short Silence - memset(sampleBuffer, 0, OAL_MAX_SAMPLES * 4 * OAL_NUM_BUFFERS); + memset(sampleBuffer, 0, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS); memset(realtimeBuffer, 0, OAL_MAX_SAMPLES * 4); for (int i = 0; i < OAL_NUM_BUFFERS; i++) - alBufferData(uiBuffers[i], AL_FORMAT_STEREO16, realtimeBuffer, OAL_MAX_SAMPLES * 4, ulFrequency); + { + if (Core::g_CoreStartupParameter.bDPL2Decoder) + alBufferData(uiBuffers[i], AL_FORMAT_51CHN32, sampleBuffer, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS, ulFrequency); + else + alBufferData(uiBuffers[i], AL_FORMAT_STEREO16, realtimeBuffer, OAL_MAX_SAMPLES * 4, ulFrequency); + } alSourceQueueBuffers(uiSource, OAL_NUM_BUFFERS, uiBuffers); alSourcePlay(uiSource); @@ -166,6 +175,8 @@ void OpenALStream::SoundLoop() soundTouch.setSetting(SETTING_SEEKWINDOW_MS, 28); soundTouch.setSetting(SETTING_OVERLAP_MS, 12); + bool surround_capable = Core::g_CoreStartupParameter.bDPL2Decoder; + while (!threadData) { // num_samples_to_render in this update - depends on SystemTimers::AUDIO_DMA_PERIOD. @@ -201,18 +212,72 @@ void OpenALStream::SoundLoop() soundTouch.setSetting(SETTING_SEQUENCE_MS, (int)(1 / (rate * rate))); soundTouch.setTempo(rate); } - unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS); + unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS); if (nSamples > 0) { // Remove the Buffer from the Queue. (uiBuffer contains the Buffer ID for the unqueued Buffer) if (iBuffersFilled == 0) + { alSourceUnqueueBuffers(uiSource, iBuffersProcessed, uiBufferTemp); - alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, sampleBuffer, nSamples * 4, ulFrequency); + ALenum err = alGetError(); + if (err != 0) + { + ERROR_LOG(AUDIO, "Error unqueuing buffers: %08x", err); + } + } +#if defined(__APPLE__) + // OSX does not have the alext AL_FORMAT_51CHN32 yet. + surround_capable = false; +#else + if (surround_capable) + { + // Convert the samples from short to float for the dpl2 decoder + float dest[OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS]; + for (u32 i = 0; i < nSamples; ++i) + { + dest[i * 2 + 0] = (float)sampleBuffer[i * 2 + 0] / (1<<16); + dest[i * 2 + 1] = (float)sampleBuffer[i * 2 + 1] / (1<<16); + } + + float dpl2[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS]; + dpl2decode(dest, nSamples, dpl2); + + alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_51CHN32, dpl2, nSamples * SIZE_FLOAT * SURROUND_CHANNELS, ulFrequency); + ALenum err = alGetError(); + if (err == AL_INVALID_ENUM) + { + // 5.1 is not supported by the host, fallback to stereo + WARN_LOG(AUDIO, "Unable set 5.1 surround mode. Updating OpenAL Soft might fix this issue."); + surround_capable = false; + } + else if (err != 0) + { + ERROR_LOG(AUDIO, "Error occurred while buffering data: %08x", err); + } + } +#endif + if (!surround_capable) + { + alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, sampleBuffer, nSamples * 2 * 2, ulFrequency); + } + alSourceQueueBuffers(uiSource, 1, &uiBufferTemp[iBuffersFilled]); + ALenum err = alGetError(); + if (err != 0) + { + ERROR_LOG(AUDIO, "Error queuing buffers: %08x", err); + } iBuffersFilled++; if (iBuffersFilled == OAL_NUM_BUFFERS) + { alSourcePlay(uiSource); + ALenum err = alGetError(); + if (err != 0) + { + ERROR_LOG(AUDIO, "Error occurred during playback: %08x", err); + } + } } } else diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h index c775d31cf2..b342e0a49e 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.h +++ b/Source/Core/AudioCommon/Src/OpenALStream.h @@ -26,12 +26,14 @@ #ifdef _WIN32 #include #include +#include #elif defined __APPLE__ #include #include #else #include #include +#include #endif #include "Core.h" @@ -44,6 +46,8 @@ #define SFX_MAX_SOURCE 1 #define OAL_NUM_BUFFERS 16 #define OAL_MAX_SAMPLES 512 +#define SURROUND_CHANNELS 6 // number of channels in surround mode +#define SIZE_FLOAT 4 // size of a float in bytes #endif class OpenALStream: public SoundStream @@ -72,7 +76,7 @@ private: Common::Event mainSyncEvent; short realtimeBuffer[OAL_MAX_SAMPLES * 2]; - soundtouch::SAMPLETYPE sampleBuffer[OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS]; + soundtouch::SAMPLETYPE sampleBuffer[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS]; ALuint uiBuffers[OAL_NUM_BUFFERS]; ALuint uiSource; ALfloat fVolume; diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 180e6c981d..d4b79774ef 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -227,6 +227,7 @@ void SConfig::SaveSettings() ini.Set("Core", "Apploader", m_LocalCoreStartupParameter.m_strApploader); ini.Set("Core", "EnableCheats", m_LocalCoreStartupParameter.bEnableCheats); ini.Set("Core", "SelectedLanguage", m_LocalCoreStartupParameter.SelectedLanguage); + ini.Set("Core", "DPL2Decoder", m_LocalCoreStartupParameter.bDPL2Decoder); ini.Set("Core", "MemcardA", m_strMemoryCardA); ini.Set("Core", "MemcardB", m_strMemoryCardB); ini.Set("Core", "SlotA", m_EXIDevice[0]); @@ -367,6 +368,7 @@ void SConfig::LoadSettings() ini.Get("Core", "Apploader", &m_LocalCoreStartupParameter.m_strApploader); ini.Get("Core", "EnableCheats", &m_LocalCoreStartupParameter.bEnableCheats, false); ini.Get("Core", "SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0); + ini.Get("Core", "DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, true); ini.Get("Core", "MemcardA", &m_strMemoryCardA); ini.Get("Core", "MemcardB", &m_strMemoryCardB); ini.Get("Core", "SlotA", (int*)&m_EXIDevice[0], EXIDEVICE_MEMORYCARD); diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index dee2452cb3..64a3fc54d8 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -49,6 +49,7 @@ SCoreStartupParameter::SCoreStartupParameter() bEnableCheats(false), bMergeBlocks(false), bRunCompareServer(false), bRunCompareClient(false), + bDPL2Decoder(true), bMMU(false), bMMUBAT(false), iTLBHack(0), bVBeam(false), bFastDiscSpeed(false), SelectedLanguage(0), bWii(false), bDisableWiimoteSpeaker(false), @@ -84,6 +85,7 @@ void SCoreStartupParameter::LoadDefaults() bMergeBlocks = false; SelectedLanguage = 0; bWii = false; + bDPL2Decoder = true; iPosX = 100; iPosY = 100; diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index e67935906b..b67bf24b20 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -107,6 +107,8 @@ struct SCoreStartupParameter bool bEnableCheats; bool bMergeBlocks; + bool bDPL2Decoder; + bool bRunCompareServer; bool bRunCompareClient; diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index ce4cd9cb22..9f38c5db69 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -120,6 +120,7 @@ EVT_RADIOBOX(ID_DSPENGINE, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_DSPTHREAD, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_ENABLE_THROTTLE, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_DUMP_AUDIO, CConfigMain::AudioSettingsChanged) +EVT_CHECKBOX(ID_DPL2DECODER, CConfigMain::AudioSettingsChanged) EVT_CHOICE(ID_FREQUENCY, CConfigMain::AudioSettingsChanged) EVT_CHOICE(ID_BACKEND, CConfigMain::AudioSettingsChanged) EVT_SLIDER(ID_VOLUME, CConfigMain::AudioSettingsChanged) @@ -363,6 +364,7 @@ void CConfigMain::InitializeGUIValues() VolumeText->SetLabel(wxString::Format(wxT("%d %%"), ac_Config.m_Volume)); DSPThread->SetValue(startup_params.bDSPThread); DumpAudio->SetValue(ac_Config.m_DumpAudio ? true : false); + DPL2Decoder->SetValue(startup_params.bDPL2Decoder); FrequencySelection->SetSelection( FrequencySelection->FindString(wxString::Format(_("%d Hz"), ac_Config.iFrequency))); // add backends to the list @@ -517,6 +519,14 @@ void CConfigMain::InitializeGUITooltips() // Wii - Devices WiiKeyboard->SetToolTip(_("This could cause slow down in Wii Menu and some games.")); + +#if defined(__APPLE__) + DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. Not available on OSX.")); +#elif defined(__linux__) + DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only.")); +#elif defined(_WIN32) + DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only. May need to rename soft_oal.dll to OpenAL32.dll to make it work.")); +#endif } void CConfigMain::CreateGUIControls() @@ -613,6 +623,7 @@ void CConfigMain::CreateGUIControls() DSPThread = new wxCheckBox(AudioPage, ID_DSPTHREAD, _("DSP LLE on Thread")); DumpAudio = new wxCheckBox(AudioPage, ID_DUMP_AUDIO, _("Dump Audio"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); + DPL2Decoder = new wxCheckBox(AudioPage, ID_DPL2DECODER, _("Dolby Pro Logic II decoder")); VolumeSlider = new wxSlider(AudioPage, ID_VOLUME, 0, 1, 100, wxDefaultPosition, wxDefaultSize, wxSL_VERTICAL|wxSL_INVERSE); VolumeText = new wxStaticText(AudioPage, wxID_ANY, wxT(""), @@ -634,6 +645,7 @@ void CConfigMain::CreateGUIControls() sbAudioSettings->Add(DSPEngine, 0, wxALL | wxEXPAND, 5); sbAudioSettings->Add(DSPThread, 0, wxALL, 5); sbAudioSettings->Add(DumpAudio, 0, wxALL, 5); + sbAudioSettings->Add(DPL2Decoder, 0, wxALL, 5); wxStaticBoxSizer *sbVolume = new wxStaticBoxSizer(wxVERTICAL, AudioPage, _("Volume")); sbVolume->Add(VolumeSlider, 1, wxLEFT|wxRIGHT, 13); @@ -927,6 +939,10 @@ void CConfigMain::AudioSettingsChanged(wxCommandEvent& event) SConfig::GetInstance().m_LocalCoreStartupParameter.bDSPThread = DSPThread->IsChecked(); break; + case ID_DPL2DECODER: + SConfig::GetInstance().m_LocalCoreStartupParameter.bDPL2Decoder = DPL2Decoder->IsChecked(); + break; + case ID_BACKEND: VolumeSlider->Enable(SupportsVolumeChanges(std::string(BackendSelection->GetStringSelection().mb_str()))); ac_Config.sBackend = BackendSelection->GetStringSelection().mb_str(); diff --git a/Source/Core/DolphinWX/Src/ConfigMain.h b/Source/Core/DolphinWX/Src/ConfigMain.h index 9b5dbf4243..01a85fabeb 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.h +++ b/Source/Core/DolphinWX/Src/ConfigMain.h @@ -79,6 +79,7 @@ private: ID_ENABLE_HLE_AUDIO, ID_ENABLE_THROTTLE, ID_DUMP_AUDIO, + ID_DPL2DECODER, ID_FREQUENCY, ID_BACKEND, ID_VOLUME, @@ -157,6 +158,7 @@ private: wxSlider* VolumeSlider; wxStaticText* VolumeText; wxCheckBox* DumpAudio; + wxCheckBox* DPL2Decoder; wxArrayString wxArrayBackends; wxChoice* BackendSelection; wxChoice* FrequencySelection; -- cgit v1.2.3 From ed5a68a5040416fe744119069960d1e29b3518eb Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 11 Jan 2013 14:20:22 +1100 Subject: Build fix --- Source/Core/AudioCommon/Src/DPL2Decoder.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/DPL2Decoder.cpp b/Source/Core/AudioCommon/Src/DPL2Decoder.cpp index 4efedc4b44..a5d2720878 100644 --- a/Source/Core/AudioCommon/Src/DPL2Decoder.cpp +++ b/Source/Core/AudioCommon/Src/DPL2Decoder.cpp @@ -22,6 +22,9 @@ #include #include +#include +#include +#include #include "DPL2Decoder.h" #define M_PI 3.14159265358979323846 @@ -315,7 +318,7 @@ void matrix_decode(const float *in, const int k, const int il, void dpl2decode(float *samples, int numsamples, float *out) { static const unsigned int FWRDURATION = 240; /* FWR average duration (samples) */ - static const unsigned int cfg_delay = 0; + static const int cfg_delay = 0; static const unsigned int fmt_freq = 48000; static const unsigned int fmt_nchannels = 2; // input channels -- cgit v1.2.3 From 3632ce6df5d3c948f5e4c603c48f2d3c4e190eca Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 11 Jan 2013 19:42:03 +1100 Subject: Removed the synchronisation between the CPU thread and the audio thread. Added code to detect and resume from buffer underruns. Disabled the ability to change the DPL2 option after the game has started. Fixed a memory leak that occurred in the DPL2 decoder. Fixed the OSX build. --- Source/Core/AudioCommon/Src/OpenALStream.cpp | 26 +++++++++++++++++++------- Source/Core/DolphinWX/Src/ConfigMain.cpp | 1 + 2 files changed, 20 insertions(+), 7 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 8fb1f1b2c5..1895cd2199 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -79,7 +79,6 @@ void OpenALStream::Stop() threadData = 1; // kick the thread if it's waiting soundSyncEvent.Set(); - mainSyncEvent.Set(); soundTouch.clear(); @@ -112,7 +111,6 @@ void OpenALStream::SetVolume(int volume) void OpenALStream::Update() { soundSyncEvent.Set(); - mainSyncEvent.Wait(); } void OpenALStream::Clear(bool mute) @@ -149,10 +147,12 @@ void OpenALStream::SoundLoop() memset(realtimeBuffer, 0, OAL_MAX_SAMPLES * 4); for (int i = 0; i < OAL_NUM_BUFFERS; i++) { +#if !defined(__APPLE__) if (Core::g_CoreStartupParameter.bDPL2Decoder) - alBufferData(uiBuffers[i], AL_FORMAT_51CHN32, sampleBuffer, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS, ulFrequency); + alBufferData(uiBuffers[i], AL_FORMAT_51CHN32, sampleBuffer, 4 * SIZE_FLOAT * SURROUND_CHANNELS, ulFrequency); else - alBufferData(uiBuffers[i], AL_FORMAT_STEREO16, realtimeBuffer, OAL_MAX_SAMPLES * 4, ulFrequency); +#endif + alBufferData(uiBuffers[i], AL_FORMAT_STEREO16, realtimeBuffer, 4 * 2 * 2, ulFrequency); } alSourceQueueBuffers(uiSource, OAL_NUM_BUFFERS, uiBuffers); alSourcePlay(uiSource); @@ -165,6 +165,7 @@ void OpenALStream::SoundLoop() ALint iBuffersFilled = 0; ALint iBuffersProcessed = 0; + ALint iState = 0; ALuint uiBufferTemp[OAL_NUM_BUFFERS] = {0}; soundTouch.setChannels(2); @@ -232,7 +233,7 @@ void OpenALStream::SoundLoop() if (surround_capable) { // Convert the samples from short to float for the dpl2 decoder - float dest[OAL_MAX_SAMPLES * 2 * OAL_NUM_BUFFERS]; + float dest[OAL_MAX_SAMPLES * 2 * 2 * OAL_NUM_BUFFERS]; for (u32 i = 0; i < nSamples; ++i) { dest[i * 2 + 0] = (float)sampleBuffer[i * 2 + 0] / (1<<16); @@ -247,7 +248,7 @@ void OpenALStream::SoundLoop() if (err == AL_INVALID_ENUM) { // 5.1 is not supported by the host, fallback to stereo - WARN_LOG(AUDIO, "Unable set 5.1 surround mode. Updating OpenAL Soft might fix this issue."); + WARN_LOG(AUDIO, "Unable to set 5.1 surround mode. Updating OpenAL Soft might fix this issue."); surround_capable = false; } else if (err != 0) @@ -278,13 +279,24 @@ void OpenALStream::SoundLoop() ERROR_LOG(AUDIO, "Error occurred during playback: %08x", err); } } + + alGetSourcei(uiSource, AL_SOURCE_STATE, &iState); + if (iState != AL_PLAYING) + { + // Buffer underrun occurred, resume playback + alSourcePlay(uiSource); + ALenum err = alGetError(); + if (err != 0) + { + ERROR_LOG(AUDIO, "Error occurred resuming playback: %08x", err); + } + } } } else { soundSyncEvent.Wait(); } - mainSyncEvent.Set(); } } diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 9f38c5db69..78fc886c10 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -638,6 +638,7 @@ void CConfigMain::CreateGUIControls() { FrequencySelection->Disable(); BackendSelection->Disable(); + DPL2Decoder->Disable(); } // Create sizer and add items to dialog -- cgit v1.2.3 From 73140c7da75eae814c470c82a49c1a57d207032e Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 11 Jan 2013 23:06:20 +1100 Subject: Skipped timestretching if the emulator is running below 10% speed to prevent buffer overflows. --- Source/Core/AudioCommon/Src/OpenALStream.cpp | 5 ++++- Source/Core/AudioCommon/Src/OpenALStream.h | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 1895cd2199..eefc62e346 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -207,7 +207,10 @@ void OpenALStream::SoundLoop() Core::RequestRefreshInfo(); rate = m_mixer->GetCurrentSpeed(); } - if (rate > 0) + + // Place a lower limit of 10% speed. When a game boots up, there will be + // many silence samples. These do not need to be timestretched. + if (rate > 0.10) { // Adjust SETTING_SEQUENCE_MS to balance between lag vs hollow audio soundTouch.setSetting(SETTING_SEQUENCE_MS, (int)(1 / (rate * rate))); diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h index b342e0a49e..f325d6b63a 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.h +++ b/Source/Core/AudioCommon/Src/OpenALStream.h @@ -73,7 +73,6 @@ public: private: std::thread thread; Common::Event soundSyncEvent; - Common::Event mainSyncEvent; short realtimeBuffer[OAL_MAX_SAMPLES * 2]; soundtouch::SAMPLETYPE sampleBuffer[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS]; -- cgit v1.2.3 From ad05d568b9fce5f983dd06cfedb0904ada8ce9ab Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Fri, 11 Jan 2013 15:47:38 +0100 Subject: PixelShaderGen: Change error strings to be unique so that we can identify unexpected behavior more easily. --- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index fdb5f21a51..f10fd437a8 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -287,10 +287,10 @@ static const char *tevKSelTableC[] = // KCSEL "0.375f,0.375f,0.375f", // 3_8 = 0x05 "0.25f,0.25f,0.25f", // 1_4 = 0x06 "0.125f,0.125f,0.125f", // 1_8 = 0x07 - "ERROR", // 0x08 - "ERROR", // 0x09 - "ERROR", // 0x0a - "ERROR", // 0x0b + "ERROR1", // 0x08 + "ERROR2", // 0x09 + "ERROR3", // 0x0a + "ERROR4", // 0x0b I_KCOLORS"[0].rgb", // K0 = 0x0C I_KCOLORS"[1].rgb", // K1 = 0x0D I_KCOLORS"[2].rgb", // K2 = 0x0E @@ -323,14 +323,14 @@ static const char *tevKSelTableA[] = // KASEL "0.375f",// 3_8 = 0x05 "0.25f", // 1_4 = 0x06 "0.125f",// 1_8 = 0x07 - "ERROR", // 0x08 - "ERROR", // 0x09 - "ERROR", // 0x0a - "ERROR", // 0x0b - "ERROR", // 0x0c - "ERROR", // 0x0d - "ERROR", // 0x0e - "ERROR", // 0x0f + "ERROR5", // 0x08 + "ERROR6", // 0x09 + "ERROR7", // 0x0a + "ERROR8", // 0x0b + "ERROR9", // 0x0c + "ERROR10", // 0x0d + "ERROR11", // 0x0e + "ERROR12", // 0x0f I_KCOLORS"[0].r", // K0_R = 0x10 I_KCOLORS"[1].r", // K1_R = 0x11 I_KCOLORS"[2].r", // K2_R = 0x12 @@ -405,7 +405,7 @@ static const char *tevCInputTable[] = // CC "float3(0.5f, 0.5f, 0.5f)", // HALF "(ckonsttemp.rgb)", //"konsttemp.rgb", // KONST "float3(0.0f, 0.0f, 0.0f)", // ZERO - "PADERROR", "PADERROR", "PADERROR", "PADERROR" + "PADERROR1", "PADERROR2", "PADERROR3", "PADERROR4" }; static const char *tevAInputTable[] = // CA @@ -427,17 +427,17 @@ static const char *tevAInputTable[] = // CA "crastemp", // RASA, "ckonsttemp", // KONST, (hw1 had quarter) "float4(0.0f, 0.0f, 0.0f, 0.0f)", // ZERO - "PADERROR", "PADERROR", "PADERROR", "PADERROR", - "PADERROR", "PADERROR", "PADERROR", "PADERROR", + "PADERROR5", "PADERROR6", "PADERROR7", "PADERROR8", + "PADERROR9", "PADERROR10", "PADERROR11", "PADERROR12", }; static const char *tevRasTable[] = { "colors_0", "colors_1", - "ERROR", //2 - "ERROR", //3 - "ERROR", //4 + "ERROR13", //2 + "ERROR14", //3 + "ERROR15", //4 "alphabump", // use bump alpha "(alphabump*(255.0f/248.0f))", //normalized "float4(0.0f, 0.0f, 0.0f, 0.0f)", // zero -- cgit v1.2.3 From 482360906badd215231fd2b4ce9e62009dd0c467 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Fri, 11 Jan 2013 11:24:52 -0500 Subject: Convert relative paths to absolute when opening containing folder of an iso. Fixes issue 5879. --- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index 2e31843ef9..6f75674c29 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -19,6 +19,7 @@ #include #include +#include #include #include @@ -982,9 +983,11 @@ void CGameListCtrl::OnOpenContainingFolder(wxCommandEvent& WXUNUSED (event)) const GameListItem *iso = GetSelectedISO(); if (!iso) return; - std::string path; - SplitPath(iso->GetFileName(), &path, 0, 0); - WxUtils::Explore(path.c_str()); + + wxString strPath(iso->GetFileName().c_str(), wxConvUTF8); + wxFileName path = wxFileName::FileName(strPath); + path.MakeAbsolute(); + WxUtils::Explore(path.GetPath().char_str()); } void CGameListCtrl::OnOpenSaveFolder(wxCommandEvent& WXUNUSED (event)) -- cgit v1.2.3 From cb71158df45f4c72c325c9c905ab10d43c31a52a Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 11 Jan 2013 13:47:19 -0600 Subject: Be consistent with uppercase letters. --- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 4 +- Source/Core/DolphinWX/resources/Flag_SDK.xpm | 114 +++++++++++++++++++++++++++ Source/Core/DolphinWX/resources/Flag_Sdk.xpm | 114 --------------------------- 3 files changed, 116 insertions(+), 116 deletions(-) create mode 100644 Source/Core/DolphinWX/resources/Flag_SDK.xpm delete mode 100644 Source/Core/DolphinWX/resources/Flag_Sdk.xpm (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index 1b35e06c29..366f8c95c3 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -44,7 +44,7 @@ #include "../resources/Flag_Taiwan.xpm" #include "../resources/Flag_Korea.xpm" #include "../resources/Flag_Unknown.xpm" -#include "../resources/Flag_Sdk.xpm" +#include "../resources/Flag_SDK.xpm" #include "../resources/Platform_Wad.xpm" #include "../resources/Platform_Wii.xpm" @@ -209,7 +209,7 @@ void CGameListCtrl::InitBitmaps() m_FlagImageIndex[DiscIO::IVolume::COUNTRY_TAIWAN] = m_imageListSmall->Add(wxBitmap(Flag_Taiwan_xpm), wxNullBitmap); m_FlagImageIndex[DiscIO::IVolume::COUNTRY_SDK] = - m_imageListSmall->Add(wxBitmap(Flag_Sdk_xpm), wxNullBitmap); + m_imageListSmall->Add(wxBitmap(Flag_SDK_xpm), wxNullBitmap); m_FlagImageIndex[DiscIO::IVolume::COUNTRY_UNKNOWN] = m_imageListSmall->Add(wxBitmap(Flag_Unknown_xpm), wxNullBitmap); diff --git a/Source/Core/DolphinWX/resources/Flag_SDK.xpm b/Source/Core/DolphinWX/resources/Flag_SDK.xpm new file mode 100644 index 0000000000..169caacdcc --- /dev/null +++ b/Source/Core/DolphinWX/resources/Flag_SDK.xpm @@ -0,0 +1,114 @@ +/* XPM */ +static const char * Flag_SDK_xpm[] = { +"96 32 79 1", +" c None", +". c #000000", +"+ c #FFFFFF", +"@ c #E9E9FE", +"# c #5959FE", +"$ c #1515FE", +"% c #0505FE", +"& c #1313FE", +"* c #3232FE", +"= c #0000FF", +"- c #0202FE", +"; c #0C0CFE", +"> c #2B2BFE", +", c #7676FE", +"' c #EEEEFE", +") c #D4D4FE", +"! c #1C1CFE", +"~ c #0303FE", +"{ c #9292FE", +"] c #5151FE", +"^ c #B1B1FE", +"/ c #F8F8FE", +"( c #CCCCFE", +"_ c #E5E5FE", +": c #9393FE", +"< c #0A0AFE", +"[ c #2424FE", +"} c #EAEAFE", +"| c #C2C2FE", +"1 c #1010FE", +"2 c #0D0DFE", +"3 c #B6B6FE", +"4 c #0F0FFE", +"5 c #8989FE", +"6 c #6767FE", +"7 c #ACACFE", +"8 c #0808FE", +"9 c #1E1EFE", +"0 c #D2D2FE", +"a c #5F5FFE", +"b c #9C9CFE", +"c c #E8E8FE", +"d c #DDDDFE", +"e c #1A1AFE", +"f c #9494FE", +"g c #3636FE", +"h c #E7E7FE", +"i c #B7B7FE", +"j c #0707FE", +"k c #A4A4FE", +"l c #F7F7FE", +"m c #B0B0FE", +"n c #FCFCFE", +"o c #C4C4FE", +"p c #8181FE", +"q c #2020FE", +"r c #1B1BFE", +"s c #0101FE", +"t c #0606FE", +"u c #AEAEFE", +"v c #E2E2FE", +"w c #8787FE", +"x c #0404FE", +"y c #A2A2FE", +"z c #3E3EFE", +"A c #A8A8FE", +"B c #F9F9FE", +"C c #5656FE", +"D c #E6E6FE", +"E c #B4B4FE", +"F c #0909FE", +"G c #9696FE", +"H c #4D4DFE", +"I c #2222FE", +"J c #1D1DFE", +"K c #6969FE", +"L c #0E0EFE", +"M c #2D2DFE", +"N c #7575FE", +" ", +" ", +" ", +" ", +"................................ ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".+@#$%&*+++==-;>,'+++==+++)!~{+. ", +".+]=^/(]+++==+_:<[}++==++|123++. ", +".+4=_++++++==+++5=6++==+7890+++. ", +".+9=&abc+++==+++d=e++==f-gh++++. ", +".+ie===jk++==+++l=%++====m+++++. ", +".++nopq=!++==+++d=r++==:stu++++. ", +".+++++v=1++==+++w=6++==+kx~y+++. ", +".+zAcB7=C++==+D:<[}++==++EFsG++. ", +".+HI;%JK'++==~LMN'+++==+++|4=w+. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +".++++++++++++++++++++++++++++++. ", +"................................ ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/Source/Core/DolphinWX/resources/Flag_Sdk.xpm b/Source/Core/DolphinWX/resources/Flag_Sdk.xpm deleted file mode 100644 index f4a5504044..0000000000 --- a/Source/Core/DolphinWX/resources/Flag_Sdk.xpm +++ /dev/null @@ -1,114 +0,0 @@ -/* XPM */ -static const char * Flag_Sdk_xpm[] = { -"96 32 79 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #E9E9FE", -"# c #5959FE", -"$ c #1515FE", -"% c #0505FE", -"& c #1313FE", -"* c #3232FE", -"= c #0000FF", -"- c #0202FE", -"; c #0C0CFE", -"> c #2B2BFE", -", c #7676FE", -"' c #EEEEFE", -") c #D4D4FE", -"! c #1C1CFE", -"~ c #0303FE", -"{ c #9292FE", -"] c #5151FE", -"^ c #B1B1FE", -"/ c #F8F8FE", -"( c #CCCCFE", -"_ c #E5E5FE", -": c #9393FE", -"< c #0A0AFE", -"[ c #2424FE", -"} c #EAEAFE", -"| c #C2C2FE", -"1 c #1010FE", -"2 c #0D0DFE", -"3 c #B6B6FE", -"4 c #0F0FFE", -"5 c #8989FE", -"6 c #6767FE", -"7 c #ACACFE", -"8 c #0808FE", -"9 c #1E1EFE", -"0 c #D2D2FE", -"a c #5F5FFE", -"b c #9C9CFE", -"c c #E8E8FE", -"d c #DDDDFE", -"e c #1A1AFE", -"f c #9494FE", -"g c #3636FE", -"h c #E7E7FE", -"i c #B7B7FE", -"j c #0707FE", -"k c #A4A4FE", -"l c #F7F7FE", -"m c #B0B0FE", -"n c #FCFCFE", -"o c #C4C4FE", -"p c #8181FE", -"q c #2020FE", -"r c #1B1BFE", -"s c #0101FE", -"t c #0606FE", -"u c #AEAEFE", -"v c #E2E2FE", -"w c #8787FE", -"x c #0404FE", -"y c #A2A2FE", -"z c #3E3EFE", -"A c #A8A8FE", -"B c #F9F9FE", -"C c #5656FE", -"D c #E6E6FE", -"E c #B4B4FE", -"F c #0909FE", -"G c #9696FE", -"H c #4D4DFE", -"I c #2222FE", -"J c #1D1DFE", -"K c #6969FE", -"L c #0E0EFE", -"M c #2D2DFE", -"N c #7575FE", -" ", -" ", -" ", -" ", -"................................ ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".+@#$%&*+++==-;>,'+++==+++)!~{+. ", -".+]=^/(]+++==+_:<[}++==++|123++. ", -".+4=_++++++==+++5=6++==+7890+++. ", -".+9=&abc+++==+++d=e++==f-gh++++. ", -".+ie===jk++==+++l=%++====m+++++. ", -".++nopq=!++==+++d=r++==:stu++++. ", -".+++++v=1++==+++w=6++==+kx~y+++. ", -".+zAcB7=C++==+D:<[}++==++EFsG++. ", -".+HI;%JK'++==~LMN'+++==+++|4=w+. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -".++++++++++++++++++++++++++++++. ", -"................................ ", -" ", -" ", -" ", -" ", -" ", -" "}; -- cgit v1.2.3 From 35dce209ae7b3edfbecd8c6aea5cc64c436e2402 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 11 Jan 2013 14:10:36 -0600 Subject: Gave the "platform" icons a complete white background rather than a slightly-uglier white box. (apparently XPM only supports a 1-bit alpha channel) Centered the icons a bit better too. --- .../Core/DolphinWX/resources/Platform_Gamecube.xpm | 476 +++++++------ Source/Core/DolphinWX/resources/Platform_Wad.xpm | 762 ++++++++++----------- Source/Core/DolphinWX/resources/Platform_Wii.xpm | 444 ++++++------ 3 files changed, 837 insertions(+), 845 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/resources/Platform_Gamecube.xpm b/Source/Core/DolphinWX/resources/Platform_Gamecube.xpm index 8fbe5c3d1f..8ec3f4bddb 100644 --- a/Source/Core/DolphinWX/resources/Platform_Gamecube.xpm +++ b/Source/Core/DolphinWX/resources/Platform_Gamecube.xpm @@ -1,241 +1,239 @@ /* XPM */ -static const char *Platform_Gamecube_xpm[] = { +static const char * Platform_Gamecube_xpm[] = { "96 32 204 2", -"E. c #B1B0B0", -"] c #8E8B8C", -"`. c #E8E8E8", -"O c #CFCECF", -"q. c #F7F7F7", -" . c #231F20", -"N. c #191415", -"x. c #191416", -"~ c #322E2F", -"G. c #4B4849", -"S. c #646263", -"@. c #5A5758", -"^. c #504C4D", -"4 c #828080", -"p. c #C3C3C3", -":. c #B9B8B8", -"H c #C8C7C7", -"c. c #BEBCBC", -"L c #E1E1E1", -"G c #F0F0EF", -"n c #F0F0F0", -"L. c #E6E5E6", -". c #FFFFFF", -"! c #1C1819", -"d. c #2B2728", -"z c #535051", -"H. c #9E9E9E", -"a c #716E6F", -"9 c #8A8888", -"1X c #B2B1B1", -"V. c #8F8C8D", -"XX c #A8A6A7", -"X. c #DFDEDF", -"o. c #EEEDED", -";X c #151112", -", c #242021", -"$ c #3D3A3A", -"j. c #1A1517", -"]. c #292426", -"f. c #656364", -"[. c #6A6768", -"y. c #929091", -"& c #BAB9B9", -"I. c #D3D3D3", -"# c #B0AEAF", -"o c #C9C8C8", -"%X c #C9C8C9", -",X c #F1F1F1", -"7 c #2C2829", -"5. c #221D1E", -"!. c #3B3738", -"x c #221D1F", -"[ c #312C2D", -"u c #7C7A7A", -"-X c #8B8989", -"A c #B3B2B2", -"F. c #C2C1C1", -"a. c #B8B6B6", -"P c #C2C1C2", -">X c #D1D0D1", -"K c #EAEAEA", -"#. c #C7C5C6", -"0 c #E0DFDF", -"$X c #F9F9F9", -"}. c #EFEEEE", -"v. c #252121", -"8 c #252122", -"{ c #1B1617", -"&. c #3E3B3D", -"d c #343031", -"+X c #2A2526", -"y c #2A2527", -"< c #5C5959", -"OX c #848282", -"I c #615D5E", -"#X c #898686", -"6. c #939192", -" c #2A2627", -"v c #393535", -":X c #615E5F", -"&X c #575354", -"J c #706D6E", -"2. c #A2A1A1", -">. c #7F7C7D", -/* pixels */ -" ", -" ", -" ", -" ", -" ", -" . . . . . . . . X o O + . . . . . . . . ", -" . . . . . . . @ # $ % & * . . . . . . . ", -" . . . . . = - ; : > > , < 1 2 . . . . . ", -" . . . . 3 4 , > 5 6 7 > 5 8 9 0 . . . . ", -" . X q w e r t y u i p a 5 t s d f * . . ", -" . g h j t s k 1 . . . + l z x c v & . . ", -" b n m M N B b . V C Z b . b A S D . F G ", -" H J @ K L . . P I x r U Y T . . . R E W ", -" Q ! ~ R . T ^ / ( ) ~ j _ ` . ' ] [ { } ", -" | . .... X.o.O.+.r s @.#.$.%.&.*.=., -. ", -" | .;.:.T >.E ,.<.1.2.<.3.4.5.> M ~ , -. ", -" | .;.:.. 6.7.8.9.0.q.w.e.5 5 r.t.e , -. ", -" | .;.:.. y.u.e i.p.a.s.=.d.f.g.| h 8 -. ", -" | .;.& . h.j.~ k.l.z._ =.x.:.. c.;.8 -. ", -" | .v.b.. n.m.M.N.B.V.N.t C.Z.. O.: 8 -. ", -" O.x A.S.D.. . F.G.H.J.z K.. . L.P.7 _ I. ", -" U.Y.e M.e T.n . D R.K g.. i E.=.t M 7.3 ", -" W.Q.!. .M.~.^./.+ . . 0.(.).5.t ._.H 2 ", -" . . `.'.~ s ].5 [.{.}.|. Xt 5..XXXi . . ", -" . . . . oXOX, +X@X6.#X! 5 8 h.L . . . . ", -" . . . . . $X%X&X*X=X-X;X:X>X2 . . . . . ", -" . . . . . . . ,XC XX c #F9F8F8", +", c #C7C7C7", +"' c #534F50", +") c #252021", +"! c #2A2627", +"~ c #242021", +"{ c #5C5959", +"] c #CECDCD", +"^ c #FBFBFB", +"/ c #D8D8D8", +"( c #828080", +"_ c #292526", +": c #2D282A", +"< c #2C2829", +"[ c #252122", +"} c #8A8888", +"| c #E0DFDF", +"1 c #E5E4E4", +"2 c #9B9999", +"3 c #302C2D", +"4 c #221E1E", +"5 c #282425", +"6 c #2A2527", +"7 c #7C7A7A", +"8 c #EDEDED", +"9 c #E8E7E7", +"0 c #716E6F", +"a c #221E1F", +"b c #343031", +"c c #868383", +"d c #D6D5D6", +"e c #262122", +"f c #1F1A1B", +"g c #595656", +"h c #C4C3C4", +"i c #535051", +"j c #221D1F", +"k c #1D181A", +"l c #393535", +"m c #F5F5F5", +"n c #F0F0F0", +"o c #ADACAC", +"p c #2E2A2B", +"q c #302C2C", +"r c #B1AFAF", +"s c #F2F1F1", +"t c #A6A4A5", +"u c #AEACAC", +"v c #B3B2B2", +"w c #A6A5A5", +"x c #EBEBEB", +"y c #F3F2F2", +"z c #F0F0EF", +"A c #C8C7C7", +"B c #706D6E", +"C c #EAEAEA", +"D c #E1E1E1", +"E c #C2C1C2", +"F c #615D5E", +"G c #676465", +"H c #CBCACA", +"I c #FEFEFE", +"J c #D5D5D5", +"K c #575455", +"L c #D1D1D1", +"M c #C5C4C4", +"N c #1C1819", +"O c #322E2F", +"P c #9D9B9C", +"Q c #211D1F", +"R c #201C1D", +"S c #332E2F", +"T c #241F20", +"U c #B0AFAF", +"V c #E9E8E8", +"W c #8E8B8C", +"X c #312C2D", +"Y c #1B1617", +"Z c #D5D4D5", +"` c #C7C6C6", +" . c #231F20", +".. c #B5B3B3", +"+. c #DFDEDF", +"@. c #EEEDED", +"#. c #C3C2C2", +"$. c #545050", +"%. c #5A5758", +"&. c #C7C5C6", +"*. c #F4F4F4", +"=. c #B4B2B2", +"-. c #3E3B3D", +";. c #262123", +">. c #312D2E", +",. c #D6D5D5", +"'. c #262223", +"). c #B9B8B8", +"!. c #7F7C7D", +"~. c #DCDBDB", +"{. c #ECECEC", +"]. c #9B999A", +"^. c #A2A1A1", +"/. c #D4D3D4", +"(. c #636161", +"_. c #221D1E", +":. c #939192", +"<. c #191516", +"[. c #322F2F", +"}. c #817F7F", +"|. c #FAFAFA", +"1. c #F7F7F7", +"2. c #777475", +"3. c #2F2B2C", +"4. c #3F3C3D", +"5. c #4D494A", +"6. c #929091", +"7. c #241F21", +"8. c #1A1617", +"9. c #C3C3C3", +"0. c #B8B6B6", +"a. c #1C1719", +"b. c #2B2728", +"c. c #656364", +"d. c #EFEFEF", +"e. c #8C898A", +"f. c #1A1517", +"g. c #231E1F", +"h. c #999898", +"i. c #8F8E8E", +"j. c #191416", +"k. c #BEBCBC", +"l. c #252121", +"m. c #BCBBBB", +"n. c #E3E3E3", +"o. c #635F60", +"p. c #272324", +"q. c #191415", +"r. c #999899", +"s. c #8F8C8D", +"t. c #6E6C6C", +"u. c #F3F3F3", +"v. c #2D292A", +"w. c #646263", +"x. c #E4E3E3", +"y. c #C2C1C1", +"z. c #4B4849", +"A. c #9E9E9E", +"B. c #979596", +"C. c #CDCCCD", +"D. c #E6E5E6", +"E. c #787676", +"F. c #D3D3D3", +"G. c #CAC9CA", +"H. c #171214", +"I. c #ADACAD", +"J. c #F1F0F0", +"K. c #B1B0B0", +"L. c #FAF9FA", +"M. c #BEBDBE", +"N. c #3B3738", +"O. c #211D1E", +"P. c #504C4D", +"Q. c #C4C2C3", +"R. c #BAB8B9", +"S. c #4C4849", +"T. c #423F40", +"U. c #E8E8E8", +"V. c #9C9A9B", +"W. c #292426", +"X. c #6A6768", +"Y. c #F2F1F2", +"Z. c #EFEEEE", +"`. c #605D5E", +" + c #2A2626", +".+ c #373435", +"++ c #A8A6A7", +"@+ c #DBDADB", +"#+ c #848282", +"$+ c #2A2526", +"%+ c #1B1718", +"&+ c #898686", +"*+ c #F9F9F9", +"=+ c #C9C8C9", +"-+ c #575354", +";+ c #151012", +">+ c #979595", +",+ c #8B8989", +"'+ c #151112", +")+ c #615E5F", +"!+ c #D1D0D1", +"~+ c #F1F1F1", +"{+ c #A2A0A1", +"]+ c #B2B1B1", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . + @ # $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . % & * = - ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . > , ' ) ! ! ~ { ] ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . / ( ~ ! _ : < ! _ [ } | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . + 1 2 3 4 5 6 7 8 9 0 _ 5 a b c ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . d e f 5 a g ] . . . $ h i j k l - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . m n o p q r m . s t u m . m v w x . y z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . A B % C D . . E F j 4 G H I . . . J K L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . M N O J . I P Q R S O f T U . V W X Y Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . ` . .... +.@.#.$.4 a %.&.*.=.-.;.>.~ ,.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . ` .'.).I !.K ~.{.].^.{./.(._.! p O ~ ,.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . ` .'.).. :.<.[.}.|.1.2.3._ _ 4.5.3 ~ ,.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . ` .'.).. 6.7.3 8.9.0.a.>.b.c.d.` e [ ,.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . ` .'.- . e.f.O g.h.i.T >.j.).. k.'.[ ,.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . ` .l.m.. n.o.p.q.r.s.q.5 t.u.. #.) [ ,.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . #.j v.w.x.. . y.z.A.B.i C.. . D.E.< T F.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . G.H.3 p.3 I.n . x J.C d.. 8 K.>.5 p <./ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . L.M.N. .p.O.P.Q.$ . . |.R.S._.5 .T.A ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . U.V.O a W._ X.Y.Z.`. +5 _..+++8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . @+#+~ $+%+:.&+N _ [ e.D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . *+=+-+;+>+,+'+)+!+^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . ~+t ++{+]+*.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; diff --git a/Source/Core/DolphinWX/resources/Platform_Wad.xpm b/Source/Core/DolphinWX/resources/Platform_Wad.xpm index fcb309cedc..a89c3a0c9c 100644 --- a/Source/Core/DolphinWX/resources/Platform_Wad.xpm +++ b/Source/Core/DolphinWX/resources/Platform_Wad.xpm @@ -1,384 +1,382 @@ /* XPM */ -static const char *Platform_Wad_xpm[] = { +static const char * Platform_Wad_xpm[] = { "96 32 347 2", -"hX c #71CBE2", -"v. c #DADCDC", -"a c #DDDDDE", -"!. c #DDDDDF", -"} c #E0E1E1", -"i c #76777B", -")X c #62D8F4", -"go c #5CD6F5", -"a. c #ECEBEC", -">. c #EFEFEF", -"FX c #6EDCF7", -"x. c #7C7F82", -"qo c #8CE3F7", -"sX c #9EE6F8", -"Z c #F2F3F3", -"oo c #A7E9F9", -"yX c #F2F3F4", -"Bo c #AAEAFA", -"c c #828488", -"3. c #85888A", -"X c #F8F8F8", -"*X c #85888B", -"do c #D1F4FC", -"po c #CEF3FC", -"H c #88898C", -"K. c #85888C", -"gX c #D7FCFF", -"6. c #8B8D8F", -"*o c #F8FEFE", -"`X c #F2FCFF", -" o c #EFFBFF", -";X c #F5FDFF", -"M. c #9A9B9E", -"] c #B8BABB", -"z. c #BEBFC1", -", c #D6D6D8", -"N c #E8E8E9", -"BX c #58D6F4", -"vo c #6AD9F5", -"ao c #79DEF7", -"zX c #4FD9FA", -"V c #7B7D81", -" . c #F1F1F0", -"r c #7E8184", -"!X c #94E4F8", -"m. c #F1F1F2", -"IX c #9DE7FA", -"Fo c #BEEFFB", -"Do c #B5ECFB", -"` c #84868A", -".. c #FAFAF9", -"PX c #B8F0FE", -"8 c #FAFAFA", -"Ho c #DCF6FD", -"yo c #E5F9FD", -"wo c #E2F8FD", -"rX c #DFF7FD", -"3X c #E2F8FE", -"# c #FDFEFD", -"QX c #FDFEFE", -"qX c #848C92", -"6X c #8A8E92", -"r. c #8D8F93", -"_ c #909396", -"u c #96989A", -">X c #84959C", -",. c #9C9DA0", -"A c #9FA1A3", -"'. c #9FA1A4", -"2 c #ABABAD", -"D. c #AEAFB2", -"l. c #B1B3B4", -"iX c #BDBDC0", -"D c #C3C5C5", -"( c #C6C6C8", -"v c #C9CACB", -"<. c #CCCECF", -" c None", -"| c #DBDCDD", -"w. c #E1E1E2", -"> c #E4E5E5", -"EX c #60D7F5", -" X c #EDEBEC", -"RX c #72DDF6", -"8o c #69DAF6", -"+X c #F0ECED", -"Y. c #EDEEEF", -"eo c #8AE2F8", -"g. c #F3F3F4", -"0o c #ABEAFA", -"]. c #F9F8F7", -"'X c #CCF2FC", -"no c #D8F6FD", -"J c #86888C", -"HX c #E7F8FC", -"$ c #FCFCFC", -"Jo c #F0FBFE", -"_X c #DEF8FF", -"to c #F3FCFE", -"/. c #8F9194", -"k c #8F9195", -"n c #95969A", -"`. c #989A9C", -"h c #9E9FA2", -"5X c #899EA7", -"0X c #8FA6AD", -"[. c #AAACAE", -"&. c #B9BABC", -"M c #C2C3C4", -"H. c #C5C7C8", -"f. c #CBCCCD", -"c. c #D1D1D2", -"1 c #DDDEDF", -"6o c #38CEF3", -"/X c #44CFF2", -"#o c #56D5F4", -"VX c #53D4F4", -"9X c #D4E7ED", -"jo c #59D6F5", -"bX c #56D5F5", -"Y c #ECECED", -".X c #F2EEEF", -"-. c #EFF0F0", -"LX c #74DCF7", -"aX c #80E0F8", -"7o c #7DDFF8", -"#X c #7F8184", -"xo c #95E4F8", -"o c #88E1F7", -"5o c #91E4F8", -"TX c #8BE2F8", -"pX c #F1F2F3", -".o c #9AE7F9", -"+. c #818387", -"YX c #B5EDFA", -"S. c #818388", -"R c #F7F7F7", -"Q c #F7F7F8", -"o c #FAFBFA", -"* c #FAFBFB", -"[ c #8A8C8E", -"WX c #EEFAFD", -"R. c #8A8C8F", -"W. c #909194", -"^. c #9C9EA1", -"V. c #A2A3A6", -";. c #A5A7A9", -"/ c #AEB0B1", -"U. c #B4B5B7", -"' c #BDBEC0", -"t c #C0C2C4", -"OX c #CCCCCD", -"C c #CCCCCE", -"j. c #CFD0D1", -"jX c #A5CBD6", -"P c #D5D5D6", -"f c #DBDDDC", -"t. c #E1E2E3", -"y c #E7E7E9", -"1o c #57D5F4", -"%o c #54D4F4", -":o c #66DAF6", -"4X c #CFE8EF", -"B. c #EDECED", -"nX c #45D5F9", -"4 c #F0F0F0", -"^X c #72DEF9", -"&o c #9FE7F8", -"s c #808184", -"(X c #99E5F8", -"d. c #7D8084", -"i. c #838588", -"2X c #F0F6F7", -"^ c #838589", -"Mo c #C0EFFB", -"Lo c #C3F0FC", -". c #F9F9FA", -"tX c #E7F9FD", -"L c #FFFEFE", -"d c #8C8E91", -"Q. c #929397", -"(. c #959799", -"XX c #9B999C", -"B c #989B9E", -"s. c #9EA0A3", -"$. c #A7A9AB", -"0 c #ADAEB1", -"A. c #C8C9CA", -"$X c #CECECF", -"q c #D1D2D4", -"wX c #CBD3D7", -"J. c #D7D7D8", -"o. c #DADBDB", -"fo c #50D4F4", -"j c #76797C", -"UX c #5FD6F4", -"Xo c #56D6F5", -"ZX c #7ADCF4", -"lX c #56D9FA", -"|X c #98E6F8", -"=o c #92E4F8", -"AX c #D4EEF5", -"CX c #86E3FA", -"Oo c #AAE9F9", -"Go c #B3ECFA", -"#. c #F5F6F6", -"m c #828688", -"]X c #B0EBFB", -"oX c #85878A", -"Po c #CEF2FC", -") c #85878B", -"! c #FBFBFB", -"co c #D1F3FD", -"JX c #D1F6FE", -"KX c #F8FDFE", -"}. c #8B8C8F", -"Ao c #F8FDFF", -"%. c #8B8C90", -"I c #8E9092", -"b. c #8E9094", -"U c #97999B", -"9. c #97999C", -"e. c #97999D", -"6 c #A3A6A9", -"3 c #BBBDBE", -"9 c #C1C2C4", -"p. c #CACBCC", -"- c #D9D9DA", -"8. c #DFDEE0", -"9o c #31CBF2", -"SX c #46D2F5", -"mo c #5ED7F4", -"~. c #EBEBEB", -"$o c #64D9F5", -"5. c #EBEBEC", -"2o c #88E2F7", -"1X c #DFEDF1", -"k. c #818486", -"< c #F4F4F5", -"Ko c #C7F1FB", -"@ c #F7F8F8", -"Vo c #CDF3FC", -"4o c #C7F1FC", -":. c #87898C", -"{. c #8A8A8D", -"-X c #EEFBFE", -"ro c #E8F9FE", -"x c #909295", -"7. c #909296", -"*. c #939698", -",X c #8A9398", -"u. c #96979B", -"n. c #999B9E", -"@. c #9FA0A3", -"h. c #A2A4A6", -"L. c #B1B2B5", -"~ c #B4B6B8", -"%X c #BDBFC1", -"N. c #CCCDCE", -"7X c #CCD0D2", -"T. c #DBDBDD", -"X. c #E4E4E4", -"l c #E4E4E6", -"so c #33CDF3", -"E c #E7E8E8", -"w c #E7E8E9", -"xX c #C0E1EB", -"No c #48D1F4", -"T c #EAE9EA", -"zo c #45D0F4", -"kX c #4ED6F6", -"g c #EDEDED", -"1. c #EDEDEE", -"b c #EDEDEF", -";o c #78DEF7", -"}X c #8DE2F7", -"3o c #93E4F8", -"&X c #808286", -"{X c #B1EBF9", -"G. c #838688", -"io c #B7EDFA", -",o c #B7EDFB", -"DX c #C9F3FC", -"& c #F9FAFA", -"fX c #C6F8FF", -"Zo c #D8F5FD", -"S c #898B8E", -": c #FFFFFE", -"bo c #F9FDFF", -"O c #FFFFFF", -"G c #8C8F92", -"E. c #929498", -"{ c #A1A2A5", -"q. c #AAABAE", -" , < ", -"1 2 3 4 O O + 5 6 7 8 O O . 9 0 q w e r t O y u i p ", -"a s d f O O g h j k l O O z x c v b n m M O N B V C ", -"Z A S D O O F G H J K L O P I U Y O T a R O O E W Q ", -"! ~ ^ / O O ( ) _ ` ' & O ] [ { + 8 } | .O ..X.o.4 ", -"O O.+.@.#.X $.%.&.*.=.-.: ;.:.M O >.,.[ <.O 1.2.3.4. ", -"O 5.6.7.8.z e 9.0.q.` w.N e.r.t.O y.u.i.p.O a.s.d.f. ", -"O g.h.:.j.a k.l.+ z.x.c.v.b.n.m.O z M.:.N.O B.V.C.Z. ", -"O $ A.S.D.F.G.H.O J.K.L.P.I.U.$ O Y.M.:.N.O B.V.C.Z. ", -"O O T.R.E.W.Q.!.O ~.^./.(.)._.+ O z M.:.N.O B.V.C.Z. ", -"O O z `.I.:.'.Y.O ].[.{.}.|. XO O .XXXoXOXO +X@X#X$X ", -"O O 8 %X&X*X=XO -X;X:X>X,Xo,oO QX c #E5E5E5", +", c #D9D9DA", +"' c #F5F5F5", +") c #FFFFFE", +"! c #E4E5E5", +"~ c #D6D6D8", +"{ c #F4F4F5", +"] c #DDDEDF", +"^ c #ABABAD", +"/ c #BBBDBE", +"( c #F0F0F0", +"_ c #D3D3D5", +": c #A3A6A9", +"< c #C7C9CA", +"[ c #FAFAFA", +"} c #C1C2C4", +"| c #ADAEB1", +"1 c #D1D2D4", +"2 c #E7E8E9", +"3 c #919396", +"4 c #7E8184", +"5 c #C0C2C4", +"6 c #E7E7E9", +"7 c #96989A", +"8 c #76777B", +"9 c #CACACC", +"0 c #DDDDDE", +"a c #808184", +"b c #8C8E91", +"c c #DBDDDC", +"d c #EDEDED", +"e c #9E9FA2", +"f c #76797C", +"g c #8F9195", +"h c #E4E4E6", +"i c #EEEEEF", +"j c #909295", +"k c #828488", +"l c #C9CACB", +"m c #EDEDEF", +"n c #95969A", +"o c #828688", +"p c #C2C3C4", +"q c #E8E8E9", +"r c #989B9E", +"s c #7B7D81", +"t c #CCCCCE", +"u c #F2F3F3", +"v c #9FA1A3", +"w c #898B8E", +"x c #C3C5C5", +"y c #D6D7D9", +"z c #8C8F92", +"A c #88898C", +"B c #86888C", +"C c #CECFD1", +"D c #FFFEFE", +"E c #D5D5D6", +"F c #8E9092", +"G c #97999B", +"H c #ECECED", +"I c #EAE9EA", +"J c #F7F7F7", +"K c #E7E8E8", +"L c #DCDCDD", +"M c #F7F7F8", +"N c #FBFBFB", +"O c #B4B6B8", +"P c #838589", +"Q c #AEB0B1", +"R c #C6C6C8", +"S c #85878B", +"T c #909396", +"U c #84868A", +"V c #BDBEC0", +"W c #B8BABB", +"X c #8A8C8E", +"Y c #A1A2A5", +"Z c #E0E1E1", +"` c #DBDCDD", +" . c #F1F1F0", +".. c #FAFAF9", +"+. c #E4E4E4", +"@. c #DADBDB", +"#. c #D4D4D5", +"$. c #818387", +"%. c #9FA0A3", +"&. c #F5F6F6", +"*. c #A7A9AB", +"=. c #8B8C90", +"-. c #B9BABC", +";. c #939698", +">. c #9A9C9F", +",. c #EFF0F0", +"'. c #A5A7A9", +"). c #87898C", +"!. c #EFEFEF", +"~. c #9C9DA0", +"{. c #CCCECF", +"]. c #EDEDEE", +"^. c #A3A5A7", +"/. c #85888A", +"(. c #CECFCF", +"_. c #EBEBEC", +":. c #8B8D8F", +"<. c #909296", +"[. c #DFDEE0", +"}. c #97999C", +"|. c #E5E5E6", +"1. c #AAABAE", +"2. c #E1E1E2", +"3. c #97999D", +"4. c #8D8F93", +"5. c #E1E2E3", +"6. c #EEEEEE", +"7. c #96979B", +"8. c #838588", +"9. c #CACBCC", +"0. c #ECEBEC", +"a. c #9EA0A3", +"b. c #7D8084", +"c. c #CBCCCD", +"d. c #F3F3F4", +"e. c #A2A4A6", +"f. c #CFD0D1", +"g. c #818486", +"h. c #B1B3B4", +"i. c #BEBFC1", +"j. c #7C7F82", +"k. c #D1D1D2", +"l. c #DADCDC", +"m. c #8E9094", +"n. c #999B9E", +"o. c #F1F1F2", +"p. c #9A9B9E", +"q. c #CCCDCE", +"r. c #EDECED", +"s. c #A2A3A6", +"t. c #828588", +"u. c #CDCECF", +"v. c #C8C9CA", +"w. c #818388", +"x. c #AEAFB2", +"y. c #B8B8BA", +"z. c #838688", +"A. c #C5C7C8", +"B. c #D7D7D8", +"C. c #85888C", +"D. c #B1B2B5", +"E. c #B5B7B9", +"F. c #888A8D", +"G. c #B4B5B7", +"H. c #EDEEEF", +"I. c #DBDBDD", +"J. c #8A8C8F", +"K. c #929498", +"L. c #909194", +"M. c #929397", +"N. c #DDDDDF", +"O. c #EBEBEB", +"P. c #9C9EA1", +"Q. c #8F9194", +"R. c #959799", +"S. c #888A8E", +"T. c #CECFD2", +"U. c #989A9C", +"V. c #9FA1A4", +"W. c #F9F8F7", +"X. c #AAACAE", +"Y. c #8A8A8D", +"Z. c #8B8C8F", +"`. c #8E8F93", +" + c #EDEBEC", +".+ c #F2EEEF", +"++ c #9B999C", +"@+ c #85878A", +"#+ c #CCCCCD", +"$+ c #F0ECED", +"%+ c #A3A2A4", +"&+ c #7F8184", +"*+ c #CECECF", +"=+ c #BDBFC1", +"-+ c #808286", +";+ c #85888B", +">+ c #BEC0C1", +",+ c #EEFBFE", +"'+ c #F5FDFF", +")+ c #CBCBCD", +"!+ c #84959C", +"~+ c #8A9398", +"{+ c #B3B4B6", +"]+ c #DFEDF1", +"^+ c #F0F6F7", +"/+ c #E2F8FE", +"(+ c #CFE8EF", +"_+ c #899EA7", +":+ c #8A8E92", +"<+ c #CCD0D2", +"[+ c #E9FAFF", +"}+ c #D4E7ED", +"|+ c #8FA6AD", +"1+ c #848C92", +"2+ c #CBD3D7", +"3+ c #E3F8FD", +"4+ c #DFF7FD", +"5+ c #E7F9FD", +"6+ c #F2F3F4", +"7+ c #B9B9BD", +"8+ c #BDBDC0", +"9+ c #F1F2F3", +"0+ c #80E0F8", +"a+ c #9EE6F8", +"b+ c #5FDEFD", +"c+ c #C6F8FF", +"d+ c #D7FCFF", +"e+ c #71CBE2", +"f+ c #A5CBD6", +"g+ c #4ED6F6", +"h+ c #56D9FA", +"i+ c #4FD9FA", +"j+ c #C0E1EB", +"k+ c #CBF6FF", +"l+ c #52D8F9", +"m+ c #56D5F5", +"n+ c #45D5F9", +"o+ c #A7F0FF", +"p+ c #98E8FC", +"q+ c #67D9F6", +"r+ c #58D6F4", +"s+ c #53D4F4", +"t+ c #86E3FA", +"u+ c #7ADCF4", +"v+ c #D4EEF5", +"w+ c #46D2F5", +"x+ c #C9F3FC", +"y+ c #6EDCF7", +"z+ c #AFE5F4", +"A+ c #E7F8FC", +"B+ c #D1F6FE", +"C+ c #F8FDFE", +"D+ c #74DCF7", +"E+ c #B8F0FE", +"F+ c #9DE7FA", +"G+ c #5FD6F4", +"H+ c #B5EDFA", +"I+ c #8BE2F8", +"J+ c #72DDF6", +"K+ c #60D7F5", +"L+ c #EEFAFD", +"M+ c #FDFEFE", +"N+ c #94E4F8", +"O+ c #70DCF8", +"P+ c #72DEF9", +"Q+ c #44CFF2", +"R+ c #99E5F8", +"S+ c #62D8F4", +"T+ c #DEF8FF", +"U+ c #F2FCFF", +"V+ c #CCF2FC", +"W+ c #B0EBFB", +"X+ c #61D7F5", +"Y+ c #B1EBF9", +"Z+ c #8DE2F7", +"`+ c #98E6F8", +" @ c #EFFBFF", +".@ c #9AE7F9", +"+@ c #56D6F5", +"@@ c #A7E9F9", +"#@ c #AAE9F9", +"$@ c #6ADAF6", +"%@ c #98E5F9", +"&@ c #56D5F4", +"*@ c #64D9F5", +"=@ c #54D4F4", +"-@ c #9FE7F8", +";@ c #F8FEFE", +">@ c #92E4F8", +",@ c #70DCF6", +"'@ c #78DEF7", +")@ c #66DAF6", +"!@ c #88E1F7", +"~@ c #B7EDFB", +"{@ c #92E3F8", +"]@ c #57D5F4", +"^@ c #88E2F7", +"/@ c #93E4F8", +"(@ c #C7F1FC", +"_@ c #91E4F8", +":@ c #38CEF3", +"<@ c #7DDFF8", +"[@ c #69DAF6", +"}@ c #31CBF2", +"|@ c #ABEAFA", +"1@ c #8CE3F7", +"2@ c #E2F8FD", +"3@ c #8AE2F8", +"4@ c #E8F9FE", +"5@ c #F3FCFE", +"6@ c #E5F9FD", +"7@ c #6DDBF5", +"8@ c #B7EDFA", +"9@ c #CEF3FC", +"0@ c #79DEF7", +"a@ c #33CDF3", +"b@ c #D1F4FC", +"c@ c #50D4F4", +"d@ c #5CD6F5", +"e@ c #E3F8FE", +"f@ c #59D6F5", +"g@ c #6DDBF6", +"h@ c #9BE6FA", +"i@ c #45D0F4", +"j@ c #95E4F8", +"k@ c #D1F3FD", +"l@ c #6AD9F5", +"m@ c #F9FDFF", +"n@ c #D8F6FD", +"o@ c #5ED7F4", +"p@ c #C0EFFB", +"q@ c #48D1F4", +"r@ c #AAEAFA", +"s@ c #CDF3FC", +"t@ c #BFEFFB", +"u@ c #D8F5FD", +"v@ c #F8FDFF", +"w@ c #C5F1FB", +"x@ c #B5ECFB", +"y@ c #BEEFFB", +"z@ c #B3ECFA", +"A@ c #DCF6FD", +"B@ c #F0FBFE", +"C@ c #C7F1FB", +"D@ c #C3F0FC", +"E@ c #CEF2FC", +"F@ c #ECFBFE", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . + @ # . . . . $ % & . . . . * = - ; > , ' . ) ! ~ { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . ] ^ / ( . . $ _ : < [ . . + } | 1 2 3 4 5 . 6 7 8 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . 0 a b c . . d e f g h . . i j k l m n o p . q r s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . u v w x . . y z A B C D . E F G H . I 0 J . . K L M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . N O P Q . . R S T U V - . W X Y $ [ Z ` .. ..+.@.( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . #.$.%.&.@ *.=.-.;.>.,.) '.).p . !.~.X {.. ].^./.(.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . _.:.<.[.i 3 }.|.1.U 2.q 3.4.5.. 6.7.8.9.. 0.a.b.c.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . d.e.).f.0 g.h.$ i.j.k.l.m.n.o.. i p.).q.. r.s.t.u.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . * v.w.x.y.z.A.. B.C.D.E.F.G.* . H.p.).q.. r.s.t.u.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . I.J.K.L.M.N.. O.P.Q.R.S.T.$ . i p.).q.. r.s.t.u.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . i U.F.).V.H.. W.X.Y.Z.`. +. . .+++@+#+. $+%+&+*+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . [ =+-+;+>+. ,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+1+2+3+4+5+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . 6+7+8+9+. 0+a+. b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+q+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+. @.@+@@@#@$@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . %@s+&@*@=@-@;@>@,@'@)@V+!@~@. M+{@]@^@/@(@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . _@:@<@[@}@3+|@1@2@W+3@4@3@5@. 6@7@8@. 9@4+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . 0@a@b@c@d@e@f@g@h@i@j@k@l@m@. n@o@/@p@q@r@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . s@t@. (@u@v@w@x@y@z@A@B@C@v@. B@(@D@E@p@F@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; diff --git a/Source/Core/DolphinWX/resources/Platform_Wii.xpm b/Source/Core/DolphinWX/resources/Platform_Wii.xpm index eb163b80f0..c9781b427f 100644 --- a/Source/Core/DolphinWX/resources/Platform_Wii.xpm +++ b/Source/Core/DolphinWX/resources/Platform_Wii.xpm @@ -1,225 +1,221 @@ /* XPM */ -static const char *Platform_Wii_xpm[] = { -/* columns rows colors chars-per-pixel */ -"96 32 187 2", -":. c #C5C6C8", -"V c #D4D5D6", -"k c #E3E4E4", -"w. c #CACACC", -"5. c #E8E8E9", -"5 c #F7F7F8", -"8 c #8C8E91", -".X c #AAACAF", -"+. c #AFB0B2", -"= c #DCDDDE", -"L. c #EBECED", -"H c #FAFBFB", -"%. c #F0F0F0", -"J. c #F0F0F1", -"+ c #FFFFFF", -"O. c #808386", -"U. c #8F9294", -"0. c #85878A", -"S. c #949698", -"K. c #949699", -"2. c #B2B4B6", -"!. c #A8A9AC", -"z. c #B7B8BA", -"S c #C6C7C8", -"7. c #D5D6D7", -"P c #F3F4F4", -") c #E9E9E9", -"m. c #E9E9EB", -"% c #F8F8F8", -"n. c #F8F8F9", -"p. c #888B8D", -"h c #7E8084", -"n c #8D8F92", -"k. c #9C9EA0", -"8. c #8D8F93", -"u c #BABCBE", -"} c #E2E2E2", -"N c #E2E2E3", -"( c #F1F1F1", -">. c #818487", -"x. c #818488", -"K c #86888B", -"A. c #959799", -"<. c #86888C", -"r. c #95979A", -"j. c #8B8C8F", -"v c #B3B5B7", -"9. c #A9AAAD", -", c #C7C8C9", -"* c #E5E6E7", -"*. c #F9F9F9", -"Q. c #7F8184", -",. c #8E9092", -"B c #8E9093", -"U c #9D9FA3", -"R. c #A2A3A6", -"[ c #CFD0D0", -"e c #C0C1C3", -"d c #EDEEEE", -"(. c #FCFDFD", -"b c #87898C", -"/ c #96989A", -"^ c #87898D", -"t c #96989B", -"L c #A5A7A9", -"- c #E6E7E8", -"X c #DCDCDD", -"]. c #FAFAFA", -"e. c #8A8D90", -"N. c #8F9194", -"d. c #9EA0A3", -"{. c #9EA0A4", -"=. c #A3A4A7", -" X c #A3A4A8", -"s. c #CBCDCE", -"| c #C1C2C3", -"o c #DFE0E0", -"Z c #C6C6C8", -" c None", -"|. c #D5D5D7", -"R c #E4E4E5", -"XX c #F3F3F3", -"! c #F3F3F4", -"O c #F8F7F7", -"#. c #838689", -"' c #888A8D", -"x c #888A8E", -"Q c #97999C", -";. c #A6A8AA", -"c c #C4C6C6", -"@. c #C4C6C7", -"b. c #BABBBD", -"4. c #C9CACB", -"P. c #C9CACC", -"1. c #BFBFC2", -"; c #F6F7F7", -"r c #ECECED", -"f c #FBFBFB", -"T. c #FBFBFC", -"p c #909296", -"7 c #86878A", -"{ c #BDBFC0", -"] c #A4A5A8", -"_ c #D1D2D4", -"D c #E0E1E1", -"~. c #C7C7C9", -"Y. c #EFF0F0", -"I c #F4F4F4", -"f. c #F4F4F5", -"w c #84878A", -"s c #939699", -"W c #898B8E", -"6. c #898B8F", -"B. c #989A9D", -"g. c #989A9E", -"` c #A7A9AB", -"^. c #8E8F93", -" . c #C5C7C7", -"E. c #ACADAF", -"[. c #BBBCBF", -"c. c #C0C0C2", -"6 c #D9DADB", -"0 c #DEDEDF", -". c #EDEDEE", -"@ c #FCFCFC", -"a c #7D8083", -"j c #828487", -"F c #9B9EA1", -"z c #96979A", -"`. c #A5A6A8", -"W. c #A5A6A9", -"y. c #B4B5B7", -"Z. c #D2D3D4", -"2 c #E1E2E2", -"h. c #C8C8CA", -"# c #E1E2E3", -"l. c #F0F1F2", -"). c #E6E6E7", -"M c #F5F5F6", -"Y c #8A8C8F", -"X. c #8A8C90", -"3 c #999B9D", -"A c #999B9E", -"q. c #ADAEB0", -"&. c #CBCCCD", -"G. c #CBCCCE", -"$ c #DADBDC", -"/. c #F8F9F9", -"l c #EEEEEE", -"'. c #EEEEEF", -"< c #FDFDFD", -"C c #FDFDFE", -"3. c #7E8184", -"u. c #838588", -"M. c #929496", -"y c #838589", -"H. c #929497", -"V. c #88898C", -"i. c #B0B2B3", -"J c #B0B2B4", -"> c #97989B", -"C. c #B5B6B9", -"~ c #C4C5C6", -"9 c #D3D4D4", -"4 c #ABABAF", -"D. c #D3D4D6", -".. c #E7E7E7", -"G c #F6F6F7", -"-. c #7C7E81", -"o. c #8B8D90", -"a. c #9A9C9E", -"q c #8B8D91", -"m c #9A9C9F", -"$. c #A9ABAD", -"v. c #A9ABAE", -"E c #BDBEBF", -"g c #AEAFB2", -"}. c #BDBEC1", -"t. c #EAEBEB", -"i c #EFEFF0", -"& c #FEFEFE", -"1 c #FEFEFF", -"I. c #848689", -"T c #8E9195", -"F. c #A2A4A6", -"_. c #A2A4A7", -": c #C5C6C7", -/* pixels */ -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -". X o O + + + @ # $ % + + + & * = - ; : > , < 1 2 3 4 5 ", -"6 7 8 9 + + + 0 q w e + + + r t y u i p a s d f g h j k ", -"l z x c < + f v b n m M + + N 8 B V C Z A S @ & D F g G ", -"H J K L P + I U Y B T R + < E W Q ! + f I f + + & I % + ", -"+ ~ ^ / ( + ) q s A b _ < & ` ' ] & @ [ { 9 + + } | .P ", -"+ ..X.o.$ + , O.+.@.#.$.< %.z ' &.& *.=.-.;.+ + :.>.,.) ", -"+ 5 3 <.1.f 2.3.4.5.6.t ( 7.8.p - + *.9.0.q.+ + w.e.r.t. ", -"+ f y.u.i.( 3 p.5.G a.<.R s.<.d.f.+ *.9.0.q.+ + w.e.r.t. ", -"+ & $ <.g.h.j.k.l.@ z.x.c.v.K b.& + n.9.0.q.+ + w.e.r.t. ", -"+ + m.M.N.B.V.C.< + Z.o.A.S.6.D.+ + *.9.0.q.+ + w.e.r.t. ", -"+ + f F.Y N.' G.+ + k H.n B p J.+ + *.9.0.q.+ + w.e.K.L. ", -"+ + + P.I.x U.Y.+ + T.R.<.K E.n.+ + n.W.Q.!.+ + ~.w ^.i ", -"+ + + /.C.m Z.(.+ + + )._.`.'.+ + + ].[.{.}.+ + |. X.XXX ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" " -}; +static const char * Platform_Wii_xpm[] = { +"96 32 186 2", +" c #FFFFFF", +". c #EDEDEE", +"+ c #DCDCDD", +"@ c #DFE0E0", +"# c #F8F7F7", +"$ c #FCFCFC", +"% c #E1E2E3", +"& c #DADBDC", +"* c #F8F8F8", +"= c #FEFEFE", +"- c #E5E6E7", +"; c #DCDDDE", +"> c #E6E7E8", +", c #F6F7F7", +"' c #C5C6C7", +") c #97989B", +"! c #C7C8C9", +"~ c #FDFDFD", +"{ c #FEFEFF", +"] c #E1E2E2", +"^ c #999B9D", +"/ c #ABABAF", +"( c #F7F7F8", +"_ c #D9DADB", +": c #86878A", +"< c #8C8E91", +"[ c #D3D4D4", +"} c #DEDEDF", +"| c #8B8D91", +"1 c #84878A", +"2 c #C0C1C3", +"3 c #ECECED", +"4 c #96989B", +"5 c #838589", +"6 c #BABCBE", +"7 c #EFEFF0", +"8 c #909296", +"9 c #7D8083", +"0 c #939699", +"a c #EDEEEE", +"b c #FBFBFB", +"c c #AEAFB2", +"d c #7E8084", +"e c #828487", +"f c #E3E4E4", +"g c #EEEEEE", +"h c #96979A", +"i c #888A8E", +"j c #C4C6C6", +"k c #B3B5B7", +"l c #87898C", +"m c #8D8F92", +"n c #9A9C9F", +"o c #F5F5F6", +"p c #E2E2E3", +"q c #8E9093", +"r c #D4D5D6", +"s c #FDFDFE", +"t c #C6C6C8", +"u c #999B9E", +"v c #C6C7C8", +"w c #E0E1E1", +"x c #9B9EA1", +"y c #F6F6F7", +"z c #FAFBFB", +"A c #B0B2B4", +"B c #86888B", +"C c #A5A7A9", +"D c #F3F4F4", +"E c #F4F4F4", +"F c #9D9FA3", +"G c #8A8C8F", +"H c #8E9195", +"I c #E4E4E5", +"J c #BDBEBF", +"K c #898B8E", +"L c #97999C", +"M c #F3F3F4", +"N c #C4C5C6", +"O c #87898D", +"P c #96989A", +"Q c #F1F1F1", +"R c #E9E9E9", +"S c #D1D2D4", +"T c #A7A9AB", +"U c #888A8D", +"V c #A4A5A8", +"W c #CFD0D0", +"X c #BDBFC0", +"Y c #E2E2E2", +"Z c #C1C2C3", +"` c #C5C7C7", +" . c #E7E7E7", +".. c #8A8C90", +"+. c #8B8D90", +"@. c #808386", +"#. c #AFB0B2", +"$. c #C4C6C7", +"%. c #838689", +"&. c #A9ABAD", +"*. c #F0F0F0", +"=. c #CBCCCD", +"-. c #F9F9F9", +";. c #A3A4A7", +">. c #7C7E81", +",. c #A6A8AA", +"'. c #C5C6C8", +"). c #818487", +"!. c #8E9092", +"~. c #86888C", +"{. c #BFBFC2", +"]. c #B2B4B6", +"^. c #7E8184", +"/. c #C9CACB", +"(. c #E8E8E9", +"_. c #898B8F", +":. c #D5D6D7", +"<. c #8D8F93", +"[. c #A9AAAD", +"}. c #85878A", +"|. c #ADAEB0", +"1. c #CACACC", +"2. c #8A8D90", +"3. c #95979A", +"4. c #EAEBEB", +"5. c #B4B5B7", +"6. c #838588", +"7. c #B0B2B3", +"8. c #888B8D", +"9. c #9A9C9E", +"0. c #CBCDCE", +"a. c #9EA0A3", +"b. c #F4F4F5", +"c. c #989A9E", +"d. c #C8C8CA", +"e. c #8B8C8F", +"f. c #9C9EA0", +"g. c #F0F1F2", +"h. c #B7B8BA", +"i. c #818488", +"j. c #C0C0C2", +"k. c #A9ABAE", +"l. c #BABBBD", +"m. c #F8F8F9", +"n. c #E9E9EB", +"o. c #929496", +"p. c #8F9194", +"q. c #989A9D", +"r. c #88898C", +"s. c #B5B6B9", +"t. c #D2D3D4", +"u. c #959799", +"v. c #949698", +"w. c #D3D4D6", +"x. c #A2A4A6", +"y. c #CBCCCE", +"z. c #929497", +"A. c #F0F0F1", +"B. c #949699", +"C. c #EBECED", +"D. c #C9CACC", +"E. c #848689", +"F. c #8F9294", +"G. c #EFF0F0", +"H. c #FBFBFC", +"I. c #A2A3A6", +"J. c #ACADAF", +"K. c #A5A6A9", +"L. c #7F8184", +"M. c #A8A9AC", +"N. c #C7C7C9", +"O. c #8E8F93", +"P. c #F8F9F9", +"Q. c #FCFDFD", +"R. c #E6E6E7", +"S. c #A2A4A7", +"T. c #A5A6A8", +"U. c #EEEEEF", +"V. c #FAFAFA", +"W. c #BBBCBF", +"X. c #9EA0A4", +"Y. c #BDBEC1", +"Z. c #D5D5D7", +"`. c #A3A4A8", +" + c #AAACAF", +".+ c #F3F3F3", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( ", +" _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f ", +" g h i j ~ b k l m n o p < q r s t u v $ = w x c y ", +" z A B C D E F G q H I ~ J K L M b E b = E * ", +" N O P Q R | 0 u l S ~ = T U V = $ W X [ Y Z ` D ", +" ...+.& ! @.#.$.%.&.~ *.h U =.= -.;.>.,. '.).!.R ", +" ( ^ ~.{.b ].^./.(._.4 Q :.<.8 > -.[.}.|. 1.2.3.4. ", +" b 5.6.7.Q ^ 8.(.y 9.~.I 0.~.a.b. -.[.}.|. 1.2.3.4. ", +" = & ~.c.d.e.f.g.$ h.i.j.k.B l.= m.[.}.|. 1.2.3.4. ", +" n.o.p.q.r.s.~ t.+.u.v._.w. -.[.}.|. 1.2.3.4. ", +" b x.G p.U y. f z.m q 8 A. -.[.}.|. 1.2.B.C. ", +" D.E.i F.G. H.I.~.B J.m. m.K.L.M. N.1 O.7 ", +" P.s.n t.Q. R.S.T.U. V.W.X.Y. Z.`. +.+ ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; -- cgit v1.2.3 From 346922e39ea6d2e06c0dca0cbfa6180113604afe Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 11 Jan 2013 15:13:20 -0600 Subject: Update game cache revision, for "germany" games that were once "europe". --- Source/Core/DolphinWX/Src/ISOFile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ISOFile.cpp b/Source/Core/DolphinWX/Src/ISOFile.cpp index a00ce2c496..2d4b202272 100644 --- a/Source/Core/DolphinWX/Src/ISOFile.cpp +++ b/Source/Core/DolphinWX/Src/ISOFile.cpp @@ -36,7 +36,7 @@ #include "ChunkFile.h" #include "../resources/no_banner.cpp" -#define CACHE_REVISION 0x10D +#define CACHE_REVISION 0x10E #define DVD_BANNER_WIDTH 96 #define DVD_BANNER_HEIGHT 32 -- cgit v1.2.3 From 104f5a46997a18d90f6adafd5ad2a0d2116d5b32 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Fri, 11 Jan 2013 17:53:34 -0500 Subject: Set focus on game list after stopping emulation. --- Source/Core/DolphinWX/Src/FrameTools.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index b79e890f3b..d4cf35b121 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -1177,6 +1177,7 @@ void CFrame::DoStop() m_GameListCtrl->Enable(); m_GameListCtrl->Show(); + m_GameListCtrl->SetFocus(); UpdateGUI(); } } -- cgit v1.2.3 From dfc0c4b08d339502989fdfaf21e89f8ed77366a3 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 11 Jan 2013 19:38:04 -0500 Subject: Fix two signed/unsigned mismatch warnings. Also tidied up SDCardUtil - made the variables make more sense (typewise) --- Source/Core/Common/Src/SDCardUtil.cpp | 98 +++++++++++++------------- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 6 +- 2 files changed, 52 insertions(+), 52 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/SDCardUtil.cpp b/Source/Core/Common/Src/SDCardUtil.cpp index 4002a51b99..0f2ad08607 100644 --- a/Source/Core/Common/Src/SDCardUtil.cpp +++ b/Source/Core/Common/Src/SDCardUtil.cpp @@ -40,7 +40,7 @@ #include // for unlink() #endif -/* believe me, you *don't* want to change these constants !! */ +/* Believe me, you *don't* want to change these constants !! */ #define BYTES_PER_SECTOR 512 #define RESERVED_SECTORS 32 #define BACKUP_BOOT_SECTOR 6 @@ -52,15 +52,15 @@ #define POKES(p,v) ( BYTE_(p,0) = (u8)(v), BYTE_(p,1) = (u8)((v) >> 8) ) #define POKEW(p,v) ( BYTE_(p,0) = (u8)(v), BYTE_(p,1) = (u8)((v) >> 8), BYTE_(p,2) = (u8)((v) >> 16), BYTE_(p,3) = (u8)((v) >> 24) ) -static u8 s_boot_sector [ BYTES_PER_SECTOR ]; /* boot sector */ +static u8 s_boot_sector [ BYTES_PER_SECTOR ]; /* Boot sector */ static u8 s_fsinfo_sector [ BYTES_PER_SECTOR ]; /* FS Info sector */ -static u8 s_fat_head [ BYTES_PER_SECTOR ]; /* first FAT sector */ +static u8 s_fat_head [ BYTES_PER_SECTOR ]; /* First FAT sector */ -/* this is the date and time when creating the disk */ -static int get_serial_id() +/* This is the date and time when creating the disk */ +static unsigned int get_serial_id() { u16 lo, hi; - time_t now = time(NULL); + time_t now = time(nullptr); struct tm tm = gmtime( &now )[0]; lo = (u16)(tm.tm_mday + ((tm.tm_mon+1) << 8) + (tm.tm_sec << 8)); @@ -69,7 +69,7 @@ static int get_serial_id() return lo + (hi << 16); } -static int get_sectors_per_cluster(u64 disk_size) +static unsigned int get_sectors_per_cluster(u64 disk_size) { u64 disk_MB = disk_size/(1024*1024); @@ -88,60 +88,60 @@ static int get_sectors_per_cluster(u64 disk_size) return 32; } -static int get_sectors_per_fat(u64 disk_size, int sectors_per_cluster) +static unsigned int get_sectors_per_fat(u64 disk_size, u32 sectors_per_cluster) { u64 divider; - /* weird computation from MS - see fatgen103.doc for details */ - disk_size -= RESERVED_SECTORS * BYTES_PER_SECTOR; /* don't count 32 reserved sectors */ - disk_size /= BYTES_PER_SECTOR; /* disk size in sectors */ + /* Weird computation from MS - see fatgen103.doc for details */ + disk_size -= RESERVED_SECTORS * BYTES_PER_SECTOR; /* Don't count 32 reserved sectors */ + disk_size /= BYTES_PER_SECTOR; /* Disk size in sectors */ divider = ((256 * sectors_per_cluster) + NUM_FATS) / 2; - return (int)( (disk_size + (divider-1)) / divider ); + return (u32)( (disk_size + (divider-1)) / divider ); } static void boot_sector_init(u8* boot, u8* info, u64 disk_size, const char* label) { - int sectors_per_cluster = get_sectors_per_cluster(disk_size); - int sectors_per_fat = get_sectors_per_fat(disk_size, sectors_per_cluster); - int sectors_per_disk = (int)(disk_size / BYTES_PER_SECTOR); - int serial_id = get_serial_id(); - int free_count; + u32 sectors_per_cluster = get_sectors_per_cluster(disk_size); + u32 sectors_per_fat = get_sectors_per_fat(disk_size, sectors_per_cluster); + u32 sectors_per_disk = (u32)(disk_size / BYTES_PER_SECTOR); + u32 serial_id = get_serial_id(); + u32 free_count; - if (label == NULL) + if (label == nullptr) label = "DOLPHINSD"; POKEB(boot, 0xeb); POKEB(boot+1, 0x5a); POKEB(boot+2, 0x90); strcpy( (char*)boot + 3, "MSWIN4.1" ); - POKES( boot + 0x0b, BYTES_PER_SECTOR ); /* sector size */ - POKEB( boot + 0xd, sectors_per_cluster ); /* sectors per cluster */ - POKES( boot + 0xe, RESERVED_SECTORS ); /* reserved sectors before first FAT */ - POKEB( boot + 0x10, NUM_FATS ); /* number of FATs */ - POKES( boot + 0x11, 0 ); /* max root directory entries for FAT12/FAT16, 0 for FAT32 */ - POKES( boot + 0x13, 0 ); /* total sectors, 0 to use 32-bit value at offset 0x20 */ - POKEB( boot + 0x15, 0xF8 ); /* media descriptor, 0xF8 == hard disk */ + POKES( boot + 0x0b, BYTES_PER_SECTOR ); /* Sector size */ + POKEB( boot + 0xd, sectors_per_cluster ); /* Sectors per cluster */ + POKES( boot + 0xe, RESERVED_SECTORS ); /* Reserved sectors before first FAT */ + POKEB( boot + 0x10, NUM_FATS ); /* Number of FATs */ + POKES( boot + 0x11, 0 ); /* Max root directory entries for FAT12/FAT16, 0 for FAT32 */ + POKES( boot + 0x13, 0 ); /* Total sectors, 0 to use 32-bit value at offset 0x20 */ + POKEB( boot + 0x15, 0xF8 ); /* Media descriptor, 0xF8 == hard disk */ POKES( boot + 0x16, 0 ); /* Sectors per FAT for FAT12/16, 0 for FAT32 */ POKES( boot + 0x18, 9 ); /* Sectors per track (whatever) */ POKES( boot + 0x1a, 2 ); /* Number of heads (whatever) */ POKEW( boot + 0x1c, 0 ); /* Hidden sectors */ POKEW( boot + 0x20, sectors_per_disk ); /* Total sectors */ - /* extension */ + /* Extension */ POKEW( boot + 0x24, sectors_per_fat ); /* Sectors per FAT */ POKES( boot + 0x28, 0 ); /* FAT flags */ - POKES( boot + 0x2a, 0 ); /* version */ - POKEW( boot + 0x2c, 2 ); /* cluster number of root directory start */ - POKES( boot + 0x30, 1 ); /* sector number of FS information sector */ - POKES( boot + 0x32, BACKUP_BOOT_SECTOR ); /* sector number of a copy of this boot sector */ - POKEB( boot + 0x40, 0x80 ); /* physical drive number */ - POKEB( boot + 0x42, 0x29 ); /* extended boot signature ?? */ - POKEW( boot + 0x43, serial_id ); /* serial ID */ + POKES( boot + 0x2a, 0 ); /* Version */ + POKEW( boot + 0x2c, 2 ); /* Cluster number of root directory start */ + POKES( boot + 0x30, 1 ); /* Sector number of FS information sector */ + POKES( boot + 0x32, BACKUP_BOOT_SECTOR ); /* Sector number of a copy of this boot sector */ + POKEB( boot + 0x40, 0x80 ); /* Physical drive number */ + POKEB( boot + 0x42, 0x29 ); /* Extended boot signature ?? */ + POKEW( boot + 0x43, serial_id ); /* Serial ID */ strncpy( (char*)boot + 0x47, label, 11 ); /* Volume Label */ memcpy( boot + 0x52, "FAT32 ", 8 ); /* FAT system type, padded with 0x20 */ - POKEB( boot + BYTES_PER_SECTOR-2, 0x55 ); /* boot sector signature */ + POKEB( boot + BYTES_PER_SECTOR-2, 0x55 ); /* Boot sector signature */ POKEB( boot + BYTES_PER_SECTOR-1, 0xAA ); /* FSInfo sector */ @@ -149,25 +149,25 @@ static void boot_sector_init(u8* boot, u8* info, u64 disk_size, const char* labe POKEW( info + 0, 0x41615252 ); POKEW( info + 484, 0x61417272 ); - POKEW( info + 488, free_count ); /* number of free clusters */ - POKEW( info + 492, 3 ); /* next free clusters, 0-1 reserved, 2 is used for the root dir */ + POKEW( info + 488, free_count ); /* Number of free clusters */ + POKEW( info + 492, 3 ); /* Next free clusters, 0-1 reserved, 2 is used for the root dir */ POKEW( info + 508, 0xAA550000 ); } static void fat_init(u8* fat) { - POKEW( fat, 0x0ffffff8 ); /* reserve cluster 1, media id in low byte */ - POKEW( fat + 4, 0x0fffffff ); /* reserve cluster 2 */ - POKEW( fat + 8, 0x0fffffff ); /* end of clust chain for root dir */ + POKEW( fat, 0x0ffffff8 ); /* Reserve cluster 1, media id in low byte */ + POKEW( fat + 4, 0x0fffffff ); /* Reserve cluster 2 */ + POKEW( fat + 8, 0x0fffffff ); /* End of cluster chain for root dir */ } -static int write_sector(FILE* file, u8* sector) +static unsigned int write_sector(FILE* file, u8* sector) { return fwrite(sector, 1, 512, file) != 512; } -static int write_empty(FILE* file, u64 count) +static unsigned int write_empty(FILE* file, u64 count) { static u8 empty[64*1024]; @@ -188,8 +188,8 @@ static int write_empty(FILE* file, u64 count) bool SDCardCreate(u64 disk_size /*in MB*/, const char* filename) { - int sectors_per_fat; - int sectors_per_disk; + u32 sectors_per_fat; + u32 sectors_per_disk; FILE* f; // Convert MB to bytes @@ -200,21 +200,21 @@ bool SDCardCreate(u64 disk_size /*in MB*/, const char* filename) return false; } - // pretty unlikely to overflow. - sectors_per_disk = (int)(disk_size / 512); + // Pretty unlikely to overflow. + sectors_per_disk = (u32)(disk_size / 512); sectors_per_fat = get_sectors_per_fat(disk_size, get_sectors_per_cluster(disk_size)); - boot_sector_init(s_boot_sector, s_fsinfo_sector, disk_size, NULL ); + boot_sector_init(s_boot_sector, s_fsinfo_sector, disk_size, nullptr); fat_init(s_fat_head); f = fopen(filename, "wb"); if (!f) { - ERROR_LOG(COMMON, "could not create file '%s', aborting...\n", filename); + ERROR_LOG(COMMON, "Could not create file '%s', aborting...\n", filename); return false; } - /* here's the layout: + /* Here's the layout: * * boot_sector * fsinfo_sector @@ -251,7 +251,7 @@ bool SDCardCreate(u64 disk_size /*in MB*/, const char* filename) return true; FailWrite: - ERROR_LOG(COMMON, "could not write to '%s', aborting...\n", filename); + ERROR_LOG(COMMON, "Could not write to '%s', aborting...\n", filename); if (unlink(filename) < 0) ERROR_LOG(COMMON, "unlink(%s) failed\n%s", filename, GetLastErrorMsg()); fclose(f); diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index f10fd437a8..e21efa5ce1 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -28,7 +28,7 @@ #include "NativeVertexFormat.h" -static void StageHash(int stage, u32* out) +static void StageHash(u32 stage, u32* out) { out[0] |= bpmem.combiners[stage].colorC.hex & 0xFFFFFF; // 24 u32 alphaC = bpmem.combiners[stage].alphaC.hex & 0xFFFFF0; // 24, strip out tswap and rswap for now @@ -141,7 +141,7 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo } u32* ptr = &uid->values[2]; - for (int i = 0; i < bpmem.genMode.numtevstages+1; ++i) + for (unsigned int i = 0; i < bpmem.genMode.numtevstages+1; ++i) { StageHash(i, ptr); ptr += 4; // max: ptr = &uid->values[66] @@ -204,7 +204,7 @@ void GetSafePixelShaderId(PIXELSHADERUIDSAFE *uid, DSTALPHA_MODE dstAlphaMode, u *ptr++ = bpmem.tevindref.hex; // 31 - for (int i = 0; i < bpmem.genMode.numtevstages+1; ++i) // up to 16 times + for (unsigned int i = 0; i < bpmem.genMode.numtevstages+1; ++i) // up to 16 times { *ptr++ = bpmem.combiners[i].colorC.hex; // 32+5*i *ptr++ = bpmem.combiners[i].alphaC.hex; // 33+5*i -- cgit v1.2.3 From dcc216a02728fc258a0b9fb1a8d6f779c8680aba Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 11 Jan 2013 22:22:55 -0500 Subject: 'count' parameter for AddStereoSamples and AddStereoSamplesBE in WaveFile should be unsigned. Doesn't make sense to have them signed. --- Source/Core/AudioCommon/Src/WaveFile.cpp | 31 ++++++++++++++++++++++--------- Source/Core/AudioCommon/Src/WaveFile.h | 4 ++-- 2 files changed, 24 insertions(+), 11 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/WaveFile.cpp b/Source/Core/AudioCommon/Src/WaveFile.cpp index 802f3f7417..d98348b8bf 100644 --- a/Source/Core/AudioCommon/Src/WaveFile.cpp +++ b/Source/Core/AudioCommon/Src/WaveFile.cpp @@ -100,39 +100,52 @@ void WaveFileWriter::Write4(const char *ptr) file.WriteBytes(ptr, 4); } -void WaveFileWriter::AddStereoSamples(const short *sample_data, int count) +void WaveFileWriter::AddStereoSamples(const short *sample_data, u32 count) { if (!file) PanicAlertT("WaveFileWriter - file not open."); - if (skip_silence) { + + if (skip_silence) + { bool all_zero = true; - for (int i = 0; i < count * 2; i++) - if (sample_data[i]) all_zero = false; - if (all_zero) return; + + for (u32 i = 0; i < count * 2; i++) + { + if (sample_data[i]) + all_zero = false; + } + + if (all_zero) + return; } + file.WriteBytes(sample_data, count * 4); audio_size += count * 4; } -void WaveFileWriter::AddStereoSamplesBE(const short *sample_data, int count) +void WaveFileWriter::AddStereoSamplesBE(const short *sample_data, u32 count) { if (!file) PanicAlertT("WaveFileWriter - file not open."); if (count > BUF_SIZE * 2) - PanicAlert("WaveFileWriter - buffer too small (count = %i).", count); + PanicAlert("WaveFileWriter - buffer too small (count = %u).", count); if (skip_silence) { bool all_zero = true; - for (int i = 0; i < count * 2; i++) + + for (u32 i = 0; i < count * 2; i++) + { if (sample_data[i]) all_zero = false; + } + if (all_zero) return; } - for (int i = 0; i < count * 2; i++) + for (u32 i = 0; i < count * 2; i++) conv_buffer[i] = Common::swap16((u16)sample_data[i]); file.WriteBytes(conv_buffer, count * 4); diff --git a/Source/Core/AudioCommon/Src/WaveFile.h b/Source/Core/AudioCommon/Src/WaveFile.h index 72a090814b..11fbb4ced5 100644 --- a/Source/Core/AudioCommon/Src/WaveFile.h +++ b/Source/Core/AudioCommon/Src/WaveFile.h @@ -50,8 +50,8 @@ public: void SetSkipSilence(bool skip) { skip_silence = skip; } - void AddStereoSamples(const short *sample_data, int count); - void AddStereoSamplesBE(const short *sample_data, int count); // big endian + void AddStereoSamples(const short *sample_data, u32 count); + void AddStereoSamplesBE(const short *sample_data, u32 count); // big endian u32 GetAudioSize() { return audio_size; } }; -- cgit v1.2.3 From 2cd415dd837d24e384524a7f0b39d547f890535f Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Fri, 11 Jan 2013 22:00:36 -0600 Subject: Fix the signed/unsigned comparison warnings created by a recent commit. --- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index e21efa5ce1..c1ebdbcc89 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -141,7 +141,7 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo } u32* ptr = &uid->values[2]; - for (unsigned int i = 0; i < bpmem.genMode.numtevstages+1; ++i) + for (unsigned int i = 0; i < bpmem.genMode.numtevstages+1u; ++i) { StageHash(i, ptr); ptr += 4; // max: ptr = &uid->values[66] @@ -204,7 +204,7 @@ void GetSafePixelShaderId(PIXELSHADERUIDSAFE *uid, DSTALPHA_MODE dstAlphaMode, u *ptr++ = bpmem.tevindref.hex; // 31 - for (unsigned int i = 0; i < bpmem.genMode.numtevstages+1; ++i) // up to 16 times + for (unsigned int i = 0; i < bpmem.genMode.numtevstages+1u; ++i) // up to 16 times { *ptr++ = bpmem.combiners[i].colorC.hex; // 32+5*i *ptr++ = bpmem.combiners[i].alphaC.hex; // 33+5*i -- cgit v1.2.3 From 1c462a1ecaa514912338735537284456f7cd835b Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 13 Jan 2013 00:05:30 +1100 Subject: Added a latency setting to the audio settings. Removed the Sample Rate setting. It is now hardcoded to 48000hz (accurate audio timing). Fixes issue 5672. --- Source/Core/AudioCommon/Src/AudioCommonConfig.cpp | 2 -- Source/Core/AudioCommon/Src/AudioCommonConfig.h | 1 - Source/Core/AudioCommon/Src/OpenALStream.cpp | 28 ++++++++++------- Source/Core/AudioCommon/Src/OpenALStream.h | 10 +++--- Source/Core/Core/Src/ConfigManager.cpp | 2 ++ Source/Core/Core/Src/CoreParameter.cpp | 3 +- Source/Core/Core/Src/CoreParameter.h | 1 + Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp | 2 +- Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp | 2 +- Source/Core/DolphinWX/Src/ConfigMain.cpp | 38 ++++++++++++++--------- Source/Core/DolphinWX/Src/ConfigMain.h | 7 +++-- 11 files changed, 57 insertions(+), 39 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp b/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp index 08902e1c3f..49f50b6880 100644 --- a/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp +++ b/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp @@ -42,7 +42,6 @@ void AudioCommonConfig::Load() #else file.Get("Config", "Backend", &sBackend, BACKEND_NULLSOUND); #endif - file.Get("Config", "Frequency", &iFrequency, 48000); file.Get("Config", "Volume", &m_Volume, 100); } @@ -55,7 +54,6 @@ void AudioCommonConfig::SaveSettings() file.Set("Config", "EnableJIT", m_EnableJIT); file.Set("Config", "DumpAudio", m_DumpAudio); file.Set("Config", "Backend", sBackend); - file.Set("Config", "Frequency", iFrequency); file.Set("Config", "Volume", m_Volume); file.Save(File::GetUserPath(F_DSPCONFIG_IDX)); diff --git a/Source/Core/AudioCommon/Src/AudioCommonConfig.h b/Source/Core/AudioCommon/Src/AudioCommonConfig.h index 76c50c6408..48807b3ffd 100644 --- a/Source/Core/AudioCommon/Src/AudioCommonConfig.h +++ b/Source/Core/AudioCommon/Src/AudioCommonConfig.h @@ -37,7 +37,6 @@ struct AudioCommonConfig bool m_DumpAudio; int m_Volume; std::string sBackend; - int iFrequency; // Load from given file void Load(); diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index eefc62e346..94112c130d 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -46,6 +46,11 @@ bool OpenALStream::Start() pContext = alcCreateContext(pDevice, NULL); if (pContext) { + // Used to determine an appropriate period size (2x period = total buffer size) + //ALCint refresh; + //alcGetIntegerv(pDevice, ALC_REFRESH, 1, &refresh); + //period_size_in_millisec = 1000 / refresh; + alcMakeContextCurrent(pContext); thread = std::thread(std::mem_fun(&OpenALStream::SoundLoop), this); bReturn = true; @@ -90,7 +95,7 @@ void OpenALStream::Stop() // Clean up buffers and sources alDeleteSources(1, &uiSource); uiSource = 0; - alDeleteBuffers(OAL_NUM_BUFFERS, uiBuffers); + alDeleteBuffers(numBuffers, uiBuffers); ALCcontext *pContext = alcGetCurrentContext(); ALCdevice *pDevice = alcGetContextsDevice(pContext); @@ -133,19 +138,20 @@ void OpenALStream::SoundLoop() Common::SetCurrentThreadName("Audio thread - openal"); u32 ulFrequency = m_mixer->GetSampleRate(); + numBuffers = Core::g_CoreStartupParameter.iLatency + 2; // OpenAL requires a minimum of two buffers - memset(uiBuffers, 0, OAL_NUM_BUFFERS * sizeof(ALuint)); + memset(uiBuffers, 0, numBuffers * sizeof(ALuint)); uiSource = 0; // Generate some AL Buffers for streaming - alGenBuffers(OAL_NUM_BUFFERS, (ALuint *)uiBuffers); + alGenBuffers(numBuffers, (ALuint *)uiBuffers); // Generate a Source to playback the Buffers alGenSources(1, &uiSource); // Short Silence - memset(sampleBuffer, 0, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS); + memset(sampleBuffer, 0, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * numBuffers); memset(realtimeBuffer, 0, OAL_MAX_SAMPLES * 4); - for (int i = 0; i < OAL_NUM_BUFFERS; i++) + for (int i = 0; i < numBuffers; i++) { #if !defined(__APPLE__) if (Core::g_CoreStartupParameter.bDPL2Decoder) @@ -154,7 +160,7 @@ void OpenALStream::SoundLoop() #endif alBufferData(uiBuffers[i], AL_FORMAT_STEREO16, realtimeBuffer, 4 * 2 * 2, ulFrequency); } - alSourceQueueBuffers(uiSource, OAL_NUM_BUFFERS, uiBuffers); + alSourceQueueBuffers(uiSource, numBuffers, uiBuffers); alSourcePlay(uiSource); // Set the default sound volume as saved in the config file. @@ -166,7 +172,7 @@ void OpenALStream::SoundLoop() ALint iBuffersFilled = 0; ALint iBuffersProcessed = 0; ALint iState = 0; - ALuint uiBufferTemp[OAL_NUM_BUFFERS] = {0}; + ALuint uiBufferTemp[OAL_MAX_BUFFERS] = {0}; soundTouch.setChannels(2); soundTouch.setSampleRate(ulFrequency); @@ -216,7 +222,7 @@ void OpenALStream::SoundLoop() soundTouch.setSetting(SETTING_SEQUENCE_MS, (int)(1 / (rate * rate))); soundTouch.setTempo(rate); } - unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS); + unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_MAX_BUFFERS); if (nSamples > 0) { // Remove the Buffer from the Queue. (uiBuffer contains the Buffer ID for the unqueued Buffer) @@ -236,14 +242,14 @@ void OpenALStream::SoundLoop() if (surround_capable) { // Convert the samples from short to float for the dpl2 decoder - float dest[OAL_MAX_SAMPLES * 2 * 2 * OAL_NUM_BUFFERS]; + float dest[OAL_MAX_SAMPLES * 2 * 2 * OAL_MAX_BUFFERS]; for (u32 i = 0; i < nSamples; ++i) { dest[i * 2 + 0] = (float)sampleBuffer[i * 2 + 0] / (1<<16); dest[i * 2 + 1] = (float)sampleBuffer[i * 2 + 1] / (1<<16); } - float dpl2[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS]; + float dpl2[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_MAX_BUFFERS]; dpl2decode(dest, nSamples, dpl2); alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_51CHN32, dpl2, nSamples * SIZE_FLOAT * SURROUND_CHANNELS, ulFrequency); @@ -273,7 +279,7 @@ void OpenALStream::SoundLoop() } iBuffersFilled++; - if (iBuffersFilled == OAL_NUM_BUFFERS) + if (iBuffersFilled == numBuffers) { alSourcePlay(uiSource); ALenum err = alGetError(); diff --git a/Source/Core/AudioCommon/Src/OpenALStream.h b/Source/Core/AudioCommon/Src/OpenALStream.h index f325d6b63a..a808fcefc9 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.h +++ b/Source/Core/AudioCommon/Src/OpenALStream.h @@ -44,8 +44,8 @@ // 16 bit Stereo #define SFX_MAX_SOURCE 1 -#define OAL_NUM_BUFFERS 16 -#define OAL_MAX_SAMPLES 512 +#define OAL_MAX_BUFFERS 32 +#define OAL_MAX_SAMPLES 256 #define SURROUND_CHANNELS 6 // number of channels in surround mode #define SIZE_FLOAT 4 // size of a float in bytes #endif @@ -75,10 +75,12 @@ private: Common::Event soundSyncEvent; short realtimeBuffer[OAL_MAX_SAMPLES * 2]; - soundtouch::SAMPLETYPE sampleBuffer[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_NUM_BUFFERS]; - ALuint uiBuffers[OAL_NUM_BUFFERS]; + soundtouch::SAMPLETYPE sampleBuffer[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_MAX_BUFFERS]; + ALuint uiBuffers[OAL_MAX_BUFFERS]; ALuint uiSource; ALfloat fVolume; + + u8 numBuffers; #else public: OpenALStream(CMixer *mixer, void *hWnd = NULL): SoundStream(mixer) {} diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index d4b79774ef..210769c8a5 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -228,6 +228,7 @@ void SConfig::SaveSettings() ini.Set("Core", "EnableCheats", m_LocalCoreStartupParameter.bEnableCheats); ini.Set("Core", "SelectedLanguage", m_LocalCoreStartupParameter.SelectedLanguage); ini.Set("Core", "DPL2Decoder", m_LocalCoreStartupParameter.bDPL2Decoder); + ini.Set("Core", "Latency", m_LocalCoreStartupParameter.iLatency); ini.Set("Core", "MemcardA", m_strMemoryCardA); ini.Set("Core", "MemcardB", m_strMemoryCardB); ini.Set("Core", "SlotA", m_EXIDevice[0]); @@ -369,6 +370,7 @@ void SConfig::LoadSettings() ini.Get("Core", "EnableCheats", &m_LocalCoreStartupParameter.bEnableCheats, false); ini.Get("Core", "SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0); ini.Get("Core", "DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, true); + ini.Get("Core", "Latency", &m_LocalCoreStartupParameter.iLatency, 14); ini.Get("Core", "MemcardA", &m_strMemoryCardA); ini.Get("Core", "MemcardB", &m_strMemoryCardB); ini.Get("Core", "SlotA", (int*)&m_EXIDevice[0], EXIDEVICE_MEMORYCARD); diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index 64a3fc54d8..b8294ce815 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -49,7 +49,7 @@ SCoreStartupParameter::SCoreStartupParameter() bEnableCheats(false), bMergeBlocks(false), bRunCompareServer(false), bRunCompareClient(false), - bDPL2Decoder(true), + bDPL2Decoder(true), iLatency(14), bMMU(false), bMMUBAT(false), iTLBHack(0), bVBeam(false), bFastDiscSpeed(false), SelectedLanguage(0), bWii(false), bDisableWiimoteSpeaker(false), @@ -86,6 +86,7 @@ void SCoreStartupParameter::LoadDefaults() SelectedLanguage = 0; bWii = false; bDPL2Decoder = true; + iLatency = 14; iPosX = 100; iPosY = 100; diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index b67bf24b20..0dd8b68f22 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -108,6 +108,7 @@ struct SCoreStartupParameter bool bMergeBlocks; bool bDPL2Decoder; + int iLatency; bool bRunCompareServer; bool bRunCompareClient; diff --git a/Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp b/Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp index 817610ea0f..7981c677a8 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp +++ b/Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp @@ -251,7 +251,7 @@ void DSPHLE::InitMixer() unsigned int AISampleRate, DACSampleRate; AudioInterface::Callback_GetSampleRate(AISampleRate, DACSampleRate); delete soundStream; - soundStream = AudioCommon::InitSoundStream(new HLEMixer(this, AISampleRate, DACSampleRate, ac_Config.iFrequency), m_hWnd); + soundStream = AudioCommon::InitSoundStream(new HLEMixer(this, AISampleRate, DACSampleRate, 48000), m_hWnd); if(!soundStream) PanicAlert("Error starting up sound stream"); // Mixer is initialized m_InitMixer = true; diff --git a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp index a44ff65f21..b5ca788e72 100644 --- a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp +++ b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp @@ -204,7 +204,7 @@ void DSPLLE::InitMixer() unsigned int AISampleRate, DACSampleRate; AudioInterface::Callback_GetSampleRate(AISampleRate, DACSampleRate); delete soundStream; - soundStream = AudioCommon::InitSoundStream(new CMixer(AISampleRate, DACSampleRate, ac_Config.iFrequency), m_hWnd); + soundStream = AudioCommon::InitSoundStream(new CMixer(AISampleRate, DACSampleRate, 48000), m_hWnd); if(!soundStream) PanicAlert("Error starting up sound stream"); // Mixer is initialized m_InitMixer = true; diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 78fc886c10..ddc8025d88 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -121,7 +121,7 @@ EVT_CHECKBOX(ID_DSPTHREAD, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_ENABLE_THROTTLE, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_DUMP_AUDIO, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_DPL2DECODER, CConfigMain::AudioSettingsChanged) -EVT_CHOICE(ID_FREQUENCY, CConfigMain::AudioSettingsChanged) +EVT_SLIDER(ID_LATENCY, CConfigMain::AudioSettingsChanged) EVT_CHOICE(ID_BACKEND, CConfigMain::AudioSettingsChanged) EVT_SLIDER(ID_VOLUME, CConfigMain::AudioSettingsChanged) @@ -218,6 +218,8 @@ void CConfigMain::UpdateGUI() // Disable stuff on AudioPage DSPEngine->Disable(); DSPThread->Disable(); + DPL2Decoder->Disable(); + LatencySlider->Disable(); // Disable stuff on GamecubePage GCSystemLang->Disable(); @@ -365,8 +367,9 @@ void CConfigMain::InitializeGUIValues() DSPThread->SetValue(startup_params.bDSPThread); DumpAudio->SetValue(ac_Config.m_DumpAudio ? true : false); DPL2Decoder->SetValue(startup_params.bDPL2Decoder); - FrequencySelection->SetSelection( - FrequencySelection->FindString(wxString::Format(_("%d Hz"), ac_Config.iFrequency))); + LatencySlider->Enable(std::string(ac_Config.sBackend) == BACKEND_OPENAL); + LatencySlider->SetValue(startup_params.iLatency); + LatencyText->SetLabel(wxString::Format(wxT("%d"), startup_params.iLatency)); // add backends to the list AddAudioBackends(); @@ -511,7 +514,6 @@ void CConfigMain::InitializeGUITooltips() // Audio tooltips DSPThread->SetToolTip(_("Run DSP LLE on a dedicated thread (not recommended).")); - FrequencySelection->SetToolTip(_("Changing this will have no effect while the emulator is running!")); BackendSelection->SetToolTip(_("Changing this will have no effect while the emulator is running!")); // Gamecube - Devices @@ -527,6 +529,8 @@ void CConfigMain::InitializeGUITooltips() #elif defined(_WIN32) DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only. May need to rename soft_oal.dll to OpenAL32.dll to make it work.")); #endif + + LatencySlider->SetToolTip(_("Sets the latency (in ms). Higher values may reduce audio crackling. OpenAL backend only.")); } void CConfigMain::CreateGUIControls() @@ -630,13 +634,14 @@ void CConfigMain::CreateGUIControls() wxDefaultPosition, wxDefaultSize, 0); BackendSelection = new wxChoice(AudioPage, ID_BACKEND, wxDefaultPosition, wxDefaultSize, wxArrayBackends, 0, wxDefaultValidator, wxEmptyString); - FrequencySelection = new wxChoice(AudioPage, ID_FREQUENCY); - FrequencySelection->Append(wxString::Format(_("%d Hz"), 48000)); - FrequencySelection->Append(wxString::Format(_("%d Hz"), 32000)); + LatencySlider = new wxSlider(AudioPage, ID_LATENCY, 0, 0, 30, + wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL); + LatencyText = new wxStaticText(AudioPage, wxID_ANY, wxT(""), + wxDefaultPosition, wxDefaultSize, 0); if (Core::GetState() != Core::CORE_UNINITIALIZED) { - FrequencySelection->Disable(); + LatencySlider->Disable(); BackendSelection->Disable(); DPL2Decoder->Disable(); } @@ -655,8 +660,9 @@ void CConfigMain::CreateGUIControls() wxGridBagSizer *sBackend = new wxGridBagSizer(); sBackend->Add(TEXT_BOX(AudioPage, _("Audio Backend:")), wxGBPosition(0, 0), wxDefaultSpan, wxALIGN_CENTER_VERTICAL|wxALL, 5); sBackend->Add(BackendSelection, wxGBPosition(0, 1), wxDefaultSpan, wxALL, 5); - sBackend->Add(TEXT_BOX(AudioPage, _("Sample Rate:")), wxGBPosition(1, 0), wxDefaultSpan, wxALIGN_CENTER_VERTICAL|wxALL, 5); - sBackend->Add(FrequencySelection, wxGBPosition(1, 1), wxDefaultSpan, wxALL, 5); + sBackend->Add(TEXT_BOX(AudioPage, _("Latency:")), wxGBPosition(1, 0), wxDefaultSpan, wxALIGN_CENTER_VERTICAL|wxALL, 5); + sBackend->Add(LatencySlider, wxGBPosition(1, 1), wxDefaultSpan, wxALL, 5); + sBackend->Add(LatencyText, wxGBPosition(1, 2), wxDefaultSpan, wxALL, 5); wxStaticBoxSizer *sbBackend = new wxStaticBoxSizer(wxHORIZONTAL, AudioPage, _("Backend Settings")); sbBackend->Add(sBackend, 0, wxEXPAND); @@ -946,17 +952,19 @@ void CConfigMain::AudioSettingsChanged(wxCommandEvent& event) case ID_BACKEND: VolumeSlider->Enable(SupportsVolumeChanges(std::string(BackendSelection->GetStringSelection().mb_str()))); + LatencySlider->Enable(std::string(BackendSelection->GetStringSelection().mb_str()) == BACKEND_OPENAL); + DPL2Decoder->Enable(std::string(BackendSelection->GetStringSelection().mb_str()) == BACKEND_OPENAL); ac_Config.sBackend = BackendSelection->GetStringSelection().mb_str(); ac_Config.Update(); break; + case ID_LATENCY: + SConfig::GetInstance().m_LocalCoreStartupParameter.iLatency = LatencySlider->GetValue(); + LatencyText->SetLabel(wxString::Format(wxT("%d"), LatencySlider->GetValue())); + break; + default: ac_Config.m_DumpAudio = DumpAudio->GetValue(); - - long int frequency; - FrequencySelection->GetStringSelection().ToLong(&frequency); - ac_Config.iFrequency = frequency; - ac_Config.Update(); break; } } diff --git a/Source/Core/DolphinWX/Src/ConfigMain.h b/Source/Core/DolphinWX/Src/ConfigMain.h index 01a85fabeb..c0cdd632e4 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.h +++ b/Source/Core/DolphinWX/Src/ConfigMain.h @@ -80,7 +80,7 @@ private: ID_ENABLE_THROTTLE, ID_DUMP_AUDIO, ID_DPL2DECODER, - ID_FREQUENCY, + ID_LATENCY, ID_BACKEND, ID_VOLUME, @@ -156,12 +156,13 @@ private: wxBoxSizer* sAudioPage; // GC settings wxRadioBox* DSPEngine; wxSlider* VolumeSlider; - wxStaticText* VolumeText; + wxStaticText* VolumeText; wxCheckBox* DumpAudio; wxCheckBox* DPL2Decoder; wxArrayString wxArrayBackends; wxChoice* BackendSelection; - wxChoice* FrequencySelection; + wxSlider* LatencySlider; + wxStaticText* LatencyText; // Interface wxCheckBox* ConfirmStop; -- cgit v1.2.3 From f7b0c8684bc56efe256232d618de3376ed965232 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Sat, 12 Jan 2013 15:06:06 +0100 Subject: BPMemory: Expose more register descriptions for FifoPlayer --- Source/Core/VideoCommon/Src/BPMemory.cpp | 135 ++++++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/BPMemory.cpp b/Source/Core/VideoCommon/Src/BPMemory.cpp index ca0e748cb0..38489bcf7a 100644 --- a/Source/Core/VideoCommon/Src/BPMemory.cpp +++ b/Source/Core/VideoCommon/Src/BPMemory.cpp @@ -55,6 +55,11 @@ void GetBPRegInfo(const u8* data, char* name, size_t name_size, char* desc, size snprintf(name, name_size, #reg); \ (void)(reg); + case BPMEM_GENMODE: // 0x00 + SetRegName(BPMEM_GENMODE); + // TODO: Description + break; + case BPMEM_DISPLAYCOPYFILER: // 0x01 // TODO: This is actually the sample pattern used for copies from an antialiased EFB SetRegName(BPMEM_DISPLAYCOPYFILER); @@ -75,6 +80,28 @@ void GetBPRegInfo(const u8* data, char* name, size_t name_size, char* desc, size } break; + case BPMEM_BLENDMODE: // 0x41 + { + SetRegName(BPMEM_BLENDMODE); + BlendMode mode; mode.hex = cmddata; + const char* dstfactors[] = { "0", "1", "src_color", "1-src_color", "src_alpha", "1-src_alpha", "dst_alpha", "1-dst_alpha" }; + const char* srcfactors[] = { "0", "1", "dst_color", "1-dst_color", "src_alpha", "1-src_alpha", "dst_alpha", "1-dst_alpha" }; + const char* logicmodes[] = { "0", "s & d", "s & ~d", "s", "~s & d", "d", "s ^ d", "s | d", "~(s | d)", "~(s ^ d)", "~d", "s | ~d", "~s", "~s | d", "~(s & d)", "1" }; + snprintf(desc, desc_size, "Enable: %s\n" + "Logic ops: %s\n" + "Dither: %s\n" + "Color write: %s\n" + "Alpha write: %s\n" + "Dest factor: %s\n" + "Source factor: %s\n" + "Subtract: %s\n" + "Logic mode: %s\n", + no_yes[mode.blendenable], no_yes[mode.logicopenable], no_yes[mode.dither], + no_yes[mode.colorupdate], no_yes[mode.alphaupdate], dstfactors[mode.dstfactor], + srcfactors[mode.srcfactor], no_yes[mode.subtract], logicmodes[mode.logicmode]); + } + break; + case BPMEM_EFB_BR: // 0x4A { // TODO: Misleading name, should be BPMEM_EFB_WH instead @@ -148,7 +175,113 @@ void GetBPRegInfo(const u8* data, char* name, size_t name_size, char* desc, size // TODO: Description break; -#undef SET_REG_NAME + case BPMEM_TEV_COLOR_ENV: // 0xC0 + case BPMEM_TEV_COLOR_ENV+2: + case BPMEM_TEV_COLOR_ENV+4: + case BPMEM_TEV_COLOR_ENV+8: + case BPMEM_TEV_COLOR_ENV+10: + case BPMEM_TEV_COLOR_ENV+12: + case BPMEM_TEV_COLOR_ENV+14: + case BPMEM_TEV_COLOR_ENV+16: + case BPMEM_TEV_COLOR_ENV+18: + case BPMEM_TEV_COLOR_ENV+20: + case BPMEM_TEV_COLOR_ENV+22: + case BPMEM_TEV_COLOR_ENV+24: + case BPMEM_TEV_COLOR_ENV+26: + case BPMEM_TEV_COLOR_ENV+28: + case BPMEM_TEV_COLOR_ENV+30: + { + SetRegName(BPMEM_TEV_COLOR_ENV); + TevStageCombiner::ColorCombiner cc; cc.hex = cmddata; + const char* tevin[] = + { + "prev.rgb", "prev.aaa", + "c0.rgb", "c0.aaa", + "c1.rgb", "c1.aaa", + "c2.rgb", "c2.aaa", + "tex.rgb", "tex.aaa", + "ras.rgb", "ras.aaa", + "ONE", "HALF", "konst.rgb", "ZERO", + }; + const char* tevbias[] = { "0", "+0.5", "-0.5", "compare" }; + const char* tevop[] = { "add", "sub" }; + const char* tevscale[] = { "1", "2", "4", "0.5" }; + const char* tevout[] = { "prev.rgb", "c0.rgb", "c1.rgb", "c2.rgb" }; + snprintf(desc, desc_size, "tev stage: %d\n" + "a: %s\n" + "b: %s\n" + "c: %s\n" + "d: %s\n" + "bias: %s\n" + "op: %s\n" + "clamp: %s\n" + "scale factor: %s\n" + "dest: %s\n", + (data[0] - BPMEM_TEV_COLOR_ENV)/2, tevin[cc.a], tevin[cc.b], tevin[cc.c], tevin[cc.d], + tevbias[cc.bias], tevop[cc.op], no_yes[cc.clamp], tevscale[cc.shift], tevout[cc.dest]); + break; + } + + case BPMEM_TEV_ALPHA_ENV: // 0xC1 + case BPMEM_TEV_ALPHA_ENV+2: + case BPMEM_TEV_ALPHA_ENV+4: + case BPMEM_TEV_ALPHA_ENV+6: + case BPMEM_TEV_ALPHA_ENV+8: + case BPMEM_TEV_ALPHA_ENV+10: + case BPMEM_TEV_ALPHA_ENV+12: + case BPMEM_TEV_ALPHA_ENV+14: + case BPMEM_TEV_ALPHA_ENV+16: + case BPMEM_TEV_ALPHA_ENV+18: + case BPMEM_TEV_ALPHA_ENV+20: + case BPMEM_TEV_ALPHA_ENV+22: + case BPMEM_TEV_ALPHA_ENV+24: + case BPMEM_TEV_ALPHA_ENV+26: + case BPMEM_TEV_ALPHA_ENV+28: + case BPMEM_TEV_ALPHA_ENV+30: + { + SetRegName(BPMEM_TEV_ALPHA_ENV); + TevStageCombiner::AlphaCombiner ac; ac.hex = cmddata; + const char* tevin[] = + { + "prev", "c0", "c1", "c2", + "tex", "ras", "konst", "ZERO", + }; + const char* tevbias[] = { "0", "+0.5", "-0.5", "compare" }; + const char* tevop[] = { "add", "sub" }; + const char* tevscale[] = { "1", "2", "4", "0.5" }; + const char* tevout[] = { "prev", "c0", "c1", "c2" }; + snprintf(desc, desc_size, "tev stage: %d\n" + "a: %s\n" + "b: %s\n" + "c: %s\n" + "d: %s\n" + "bias: %s\n" + "op: %s\n" + "clamp: %s\n" + "scale factor: %s\n" + "dest: %s\n" + "ras sel: %d\n" + "tex sel: %d\n", + (data[0] - BPMEM_TEV_ALPHA_ENV)/2, tevin[ac.a], tevin[ac.b], tevin[ac.c], tevin[ac.d], + tevbias[ac.bias], tevop[ac.op], no_yes[ac.clamp], tevscale[ac.shift], tevout[ac.dest], + ac.rswap, ac.tswap); + break; + } + + case BPMEM_ALPHACOMPARE: // 0xF3 + { + SetRegName(BPMEM_ALPHACOMPARE); + AlphaTest test; test.hex = cmddata; + const char* functions[] = { "NEVER", "LESS", "EQUAL", "LEQUAL", "GREATER", "NEQUAL", "GEQUAL", "ALWAYS" }; + const char* logic[] = { "AND", "OR", "XOR", "XNOR" }; + snprintf(desc, desc_size, "test 1: %s (ref: %#02x)\n" + "test 2: %s (ref: %#02x)\n" + "logic: %s\n", + functions[test.comp0], test.ref0, functions[test.comp1], test.ref1, logic[test.logic]); + break; + } + +#undef SetRegName } } -- cgit v1.2.3 From 6f391a2df0c7903b8da046971a2de2797f6fe66f Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Sat, 12 Jan 2013 20:46:49 -0500 Subject: Set focus on memcard manager after losing it. --- Source/Core/DolphinWX/Src/MemcardManager.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/MemcardManager.cpp b/Source/Core/DolphinWX/Src/MemcardManager.cpp index 76c77a0543..d11a8575ff 100644 --- a/Source/Core/DolphinWX/Src/MemcardManager.cpp +++ b/Source/Core/DolphinWX/Src/MemcardManager.cpp @@ -471,6 +471,7 @@ bool CMemcardManager::CopyDeleteSwitch(u32 error, int slot) PanicAlert(E_UNK); break; } + SetFocus(); return true; } -- cgit v1.2.3 From 429324a773fad3a840ac87f42f7d697305585d55 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Sat, 12 Jan 2013 21:18:42 -0500 Subject: Real fix for memcard manager. --- Source/Core/DolphinWX/Src/MemcardManager.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/MemcardManager.cpp b/Source/Core/DolphinWX/Src/MemcardManager.cpp index d11a8575ff..3f8f0de7a7 100644 --- a/Source/Core/DolphinWX/Src/MemcardManager.cpp +++ b/Source/Core/DolphinWX/Src/MemcardManager.cpp @@ -252,7 +252,6 @@ void CMemcardManager::CreateGUIControls() SetSizerAndFit(sMain); Center(); - SetFocus(); for (int i = SLOT_A; i <= SLOT_B; i++) { @@ -525,13 +524,13 @@ void CMemcardManager::CopyDeleteClick(wxCommandEvent& event) _("Native GCI files(*.gci)") + wxString(wxT("|*.gci|")) + _("MadCatz Gameshark files(*.gcs)") + wxString(wxT("|*.gcs|")) + _("Datel MaxDrive/Pro files(*.sav)") + wxString(wxT("|*.sav")), - wxFD_OPEN | wxFD_FILE_MUST_EXIST); + wxFD_OPEN | wxFD_FILE_MUST_EXIST, this); if (!fileName.empty() && !fileName2.empty()) { wxString temp2 = wxFileSelector(_("Save GCI as..."), wxEmptyString, wxEmptyString, wxT(".gci"), _("GCI File(*.gci)") + wxString(_T("|*.gci")), - wxFD_OVERWRITE_PROMPT|wxFD_SAVE); + wxFD_OVERWRITE_PROMPT|wxFD_SAVE, this); if (temp2.empty()) break; fileName2 = temp2.mb_str(); } @@ -561,7 +560,7 @@ void CMemcardManager::CopyDeleteClick(wxCommandEvent& event) _("Native GCI files(*.gci)") + wxString(wxT("|*.gci|")) + _("MadCatz Gameshark files(*.gcs)") + wxString(wxT("|*.gcs|")) + _("Datel MaxDrive/Pro files(*.sav)") + wxString(wxT("|*.sav")), - wxFD_OVERWRITE_PROMPT|wxFD_SAVE); + wxFD_OVERWRITE_PROMPT|wxFD_SAVE, this); if (fileName.length() > 0) { -- cgit v1.2.3 From eb5e7d44bd0b7acb43b6837572fa3eb31ef4c1ad Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Sun, 13 Jan 2013 07:00:56 +0100 Subject: Enable fastmem (aka. backpatch) support on Linux amd64 and OSX x64. Not tested on OSX, 8% performance increase on Linux amd64 --- Source/Core/Core/Src/Core.cpp | 2 +- Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index e92b9088bc..9170862025 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -313,7 +313,7 @@ void CpuThread() if (_CoreParameter.bLockThreads) Common::SetCurrentThreadAffinity(1); // Force to first core - #if defined(_WIN32) && defined(_M_X64) + #if defined(_M_X64) EMM::InstallExceptionHandler(); // Let's run under memory watch #endif diff --git a/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp b/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp index 333f0cdc05..7f1c9b590c 100644 --- a/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp +++ b/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp @@ -118,7 +118,7 @@ void EmuCodeBlock::UnsafeLoadToEAX(const Gen::OpArg & opAddress, int accessSize, void EmuCodeBlock::SafeLoadToEAX(const Gen::OpArg & opAddress, int accessSize, s32 offset, bool signExtend) { -#if defined(_WIN32) && defined(_M_X64) +#if defined(_M_X64) #ifdef ENABLE_MEM_CHECK if (accessSize == 32 && !Core::g_CoreStartupParameter.bMMU && !Core::g_CoreStartupParameter.bEnableDebugging) #else -- cgit v1.2.3 From eca93c4c195963f4bd235692d2f0b584f6495d12 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 02:28:12 -0600 Subject: Eliminate nearly all the _connect_macro_ ugliness by using wxw's newish Bind functions. Unlike Connect, Bind is quite type-safe. I also seem to have fixed some errors in the input config dialog. --- Source/Core/DolphinWX/Src/CheatsWindow.cpp | 24 +++-- Source/Core/DolphinWX/Src/CheatsWindow.h | 2 +- Source/Core/DolphinWX/Src/GeckoCodeDiag.cpp | 8 +- Source/Core/DolphinWX/Src/InputConfigDiag.cpp | 101 ++++++++++----------- Source/Core/DolphinWX/Src/InputConfigDiag.h | 10 +- Source/Core/DolphinWX/Src/LogConfigWindow.cpp | 17 ++-- Source/Core/DolphinWX/Src/NetWindow.cpp | 35 ++++--- Source/Core/DolphinWX/Src/UDPConfigDiag.cpp | 16 ++-- Source/Core/DolphinWX/Src/VideoConfigDiag.cpp | 20 ++-- Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp | 20 ++-- .../Plugin_VideoSoftware/Src/VideoConfigDialog.cpp | 6 +- 11 files changed, 120 insertions(+), 139 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/CheatsWindow.cpp b/Source/Core/DolphinWX/Src/CheatsWindow.cpp index dec6648461..b07d9d9571 100644 --- a/Source/Core/DolphinWX/Src/CheatsWindow.cpp +++ b/Source/Core/DolphinWX/Src/CheatsWindow.cpp @@ -25,8 +25,6 @@ #include "HW/Memmap.h" #include "Frame.h" -#define _connect_macro_(b, f, c, s) (b)->Connect(wxID_ANY, (c), wxCommandEventHandler(f), (wxObject*)0, (wxEvtHandler*)s) - #define MAX_CHEAT_SEARCH_RESULTS_DISPLAY 256 extern std::vector arCodes; @@ -80,8 +78,8 @@ void wxCheatsWindow::Init_ChildControls() m_Tab_Cheats = new wxPanel(m_Notebook_Main, wxID_ANY, wxDefaultPosition, wxDefaultSize); m_CheckListBox_CheatsList = new wxCheckListBox(m_Tab_Cheats, wxID_ANY, wxDefaultPosition, wxSize(300, 0), m_CheatStringList, wxLB_HSCROLL, wxDefaultValidator); - _connect_macro_(m_CheckListBox_CheatsList, wxCheatsWindow::OnEvent_CheatsList_ItemSelected, wxEVT_COMMAND_LISTBOX_SELECTED, this); - _connect_macro_(m_CheckListBox_CheatsList, wxCheatsWindow::OnEvent_CheatsList_ItemToggled, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, this); + m_CheckListBox_CheatsList->Bind(wxEVT_COMMAND_LISTBOX_SELECTED, &wxCheatsWindow::OnEvent_CheatsList_ItemSelected, this); + m_CheckListBox_CheatsList->Bind(wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, &wxCheatsWindow::OnEvent_CheatsList_ItemToggled, this); m_Label_Codename = new wxStaticText(m_Tab_Cheats, wxID_ANY, _("Name: "), wxDefaultPosition, wxDefaultSize); m_GroupBox_Info = new wxStaticBox(m_Tab_Cheats, wxID_ANY, _("Code Info"), wxDefaultPosition, wxDefaultSize); @@ -107,10 +105,10 @@ void wxCheatsWindow::Init_ChildControls() m_Tab_Log = new wxPanel(m_Notebook_Main, wxID_ANY, wxDefaultPosition, wxDefaultSize); wxButton* const button_updatelog = new wxButton(m_Tab_Log, wxID_ANY, _("Update")); - _connect_macro_(button_updatelog, wxCheatsWindow::OnEvent_ButtonUpdateLog_Press, wxEVT_COMMAND_BUTTON_CLICKED, this); + button_updatelog->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &wxCheatsWindow::OnEvent_ButtonUpdateLog_Press, this); m_CheckBox_LogAR = new wxCheckBox(m_Tab_Log, wxID_ANY, _("Enable AR Logging")); - _connect_macro_(m_CheckBox_LogAR, wxCheatsWindow::OnEvent_CheckBoxEnableLogging_StateChange, wxEVT_COMMAND_CHECKBOX_CLICKED, this); + m_CheckBox_LogAR->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &wxCheatsWindow::OnEvent_CheckBoxEnableLogging_StateChange, this); m_CheckBox_LogAR->SetValue(ActionReplay::IsSelfLogging()); m_TextCtrl_Log = new wxTextCtrl(m_Tab_Log, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(100, -1), wxTE_MULTILINE | wxTE_READONLY | wxTE_DONTWRAP); @@ -134,9 +132,9 @@ void wxCheatsWindow::Init_ChildControls() // Button Strip wxButton* const button_apply = new wxButton(panel, wxID_APPLY, _("Apply"), wxDefaultPosition, wxDefaultSize); - _connect_macro_(button_apply, wxCheatsWindow::OnEvent_ApplyChanges_Press, wxEVT_COMMAND_BUTTON_CLICKED, this); + button_apply->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &wxCheatsWindow::OnEvent_ApplyChanges_Press, this); wxButton* const button_cancel = new wxButton(panel, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize); - _connect_macro_(button_cancel, wxCheatsWindow::OnEvent_ButtonClose_Press, wxEVT_COMMAND_BUTTON_CLICKED, this); + button_cancel->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &wxCheatsWindow::OnEvent_ButtonClose_Press, this); Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, wxCloseEventHandler(wxCheatsWindow::OnEvent_Close), (wxObject*)0, this); @@ -160,11 +158,11 @@ CheatSearchTab::CheatSearchTab(wxWindow* const parent) { // first scan button btnInitScan = new wxButton(this, -1, _("New Scan")); - _connect_macro_(btnInitScan, CheatSearchTab::StartNewSearch, wxEVT_COMMAND_BUTTON_CLICKED, this); + btnInitScan->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &CheatSearchTab::StartNewSearch, this); // next scan button btnNextScan = new wxButton(this, -1, _("Next Scan")); - _connect_macro_(btnNextScan, CheatSearchTab::FilterCheatSearchResults, wxEVT_COMMAND_BUTTON_CLICKED, this); + btnNextScan->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &CheatSearchTab::FilterCheatSearchResults, this); btnNextScan->Disable(); // data size radio buttons @@ -185,7 +183,7 @@ CheatSearchTab::CheatSearchTab(wxWindow* const parent) // create AR code button wxButton* const button_cheat_search_copy_address = new wxButton(this, -1, _("Create AR Code")); - _connect_macro_(button_cheat_search_copy_address, CheatSearchTab::CreateARCode, wxEVT_COMMAND_BUTTON_CLICKED, this); + button_cheat_search_copy_address->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &CheatSearchTab::CreateARCode, this); // results groupbox wxStaticBoxSizer* const sizer_cheat_search_results = new wxStaticBoxSizer(wxVERTICAL, this, _("Results")); @@ -200,7 +198,7 @@ CheatSearchTab::CheatSearchTab(wxWindow* const parent) // search value textbox textctrl_value_x = new wxTextCtrl(this, -1, wxT("0x0"), wxDefaultPosition, wxSize(96,-1)); - _connect_macro_(textctrl_value_x, CheatSearchTab::ApplyFocus, wxEVT_SET_FOCUS, this); + textctrl_value_x->Bind(wxEVT_SET_FOCUS, &CheatSearchTab::ApplyFocus, this); wxBoxSizer* const sizer_cheat_filter_text = new wxBoxSizer(wxHORIZONTAL); sizer_cheat_filter_text->Add(value_x_radiobtn.rad_uservalue, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5); @@ -495,7 +493,7 @@ void CheatSearchTab::FilterCheatSearchResults(wxCommandEvent&) UpdateCheatSearchResultsList(); } -void CheatSearchTab::ApplyFocus(wxCommandEvent& ev) +void CheatSearchTab::ApplyFocus(wxEvent& ev) { ev.Skip(true); value_x_radiobtn.rad_uservalue->SetValue(true); diff --git a/Source/Core/DolphinWX/Src/CheatsWindow.h b/Source/Core/DolphinWX/Src/CheatsWindow.h index 9d44e878f3..f1acc1c118 100644 --- a/Source/Core/DolphinWX/Src/CheatsWindow.h +++ b/Source/Core/DolphinWX/Src/CheatsWindow.h @@ -99,7 +99,7 @@ protected: void StartNewSearch(wxCommandEvent& event); void FilterCheatSearchResults(wxCommandEvent& event); void CreateARCode(wxCommandEvent&); - void ApplyFocus(wxCommandEvent&); + void ApplyFocus(wxEvent&); }; class wxCheatsWindow : public wxDialog diff --git a/Source/Core/DolphinWX/Src/GeckoCodeDiag.cpp b/Source/Core/DolphinWX/Src/GeckoCodeDiag.cpp index cffeb25e7f..e015c55ae8 100644 --- a/Source/Core/DolphinWX/Src/GeckoCodeDiag.cpp +++ b/Source/Core/DolphinWX/Src/GeckoCodeDiag.cpp @@ -18,8 +18,6 @@ #include -#define _connect_macro_(b, f, c, s) (b)->Connect(wxID_ANY, (c), wxCommandEventHandler(f), (wxObject*)0, (wxEvtHandler*)s) - namespace Gecko { @@ -31,8 +29,8 @@ CodeConfigPanel::CodeConfigPanel(wxWindow* const parent) : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize) { m_listbox_gcodes = new wxCheckListBox(this, -1, wxDefaultPosition, wxDefaultSize); - _connect_macro_(m_listbox_gcodes, CodeConfigPanel::UpdateInfoBox, wxEVT_COMMAND_LISTBOX_SELECTED, this); - _connect_macro_(m_listbox_gcodes, CodeConfigPanel::ToggleCode, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, this); + m_listbox_gcodes->Bind(wxEVT_COMMAND_LISTBOX_SELECTED, &CodeConfigPanel::UpdateInfoBox, this); + m_listbox_gcodes->Bind(wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, &CodeConfigPanel::ToggleCode, this); m_infobox.label_name = new wxStaticText(this, -1, wxGetTranslation(wxstr_name)); m_infobox.label_creator = new wxStaticText(this, -1, wxGetTranslation(wxstr_creator)); @@ -53,7 +51,7 @@ CodeConfigPanel::CodeConfigPanel(wxWindow* const parent) // button sizer wxBoxSizer* const sizer_buttons = new wxBoxSizer(wxHORIZONTAL); wxButton* const btn_download = new wxButton(this, -1, _("Download Codes (WiiRD Database)"), wxDefaultPosition, wxSize(128, -1)); - _connect_macro_(btn_download, CodeConfigPanel::DownloadCodes, wxEVT_COMMAND_BUTTON_CLICKED, this); + btn_download->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &CodeConfigPanel::DownloadCodes, this); sizer_buttons->AddStretchSpacer(1); sizer_buttons->Add(btn_download, 1, wxEXPAND); diff --git a/Source/Core/DolphinWX/Src/InputConfigDiag.cpp b/Source/Core/DolphinWX/Src/InputConfigDiag.cpp index b3d57ae89c..3994660686 100644 --- a/Source/Core/DolphinWX/Src/InputConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/InputConfigDiag.cpp @@ -18,7 +18,6 @@ #include "InputConfigDiag.h" #include "UDPConfigDiag.h" -#define _connect_macro_(b, f, c, s) (b)->Connect(wxID_ANY, (c), wxCommandEventHandler(f), (wxObject*)0, (wxEvtHandler*)s) #define WXSTR_FROM_STR(s) (wxString::FromUTF8((s).c_str())) #define WXTSTR_FROM_CSTR(s) (wxGetTranslation(wxString::FromUTF8(s))) #define STR_FROM_WXSTR(w) (std::string((w).ToUTF8())) @@ -123,10 +122,10 @@ ControlDialog::ControlDialog(GamepadPage* const parent, InputPlugin& plugin, Con //device_cbox = new wxComboBox(this, -1, WXSTR_FROM_STR(ref->device_qualifier.ToString()), wxDefaultPosition, wxSize(256,-1), parent->device_cbox->GetStrings(), wxTE_PROCESS_ENTER); device_cbox = new wxComboBox(this, -1, WXSTR_FROM_STR(m_devq.ToString()), wxDefaultPosition, wxSize(256,-1), parent->device_cbox->GetStrings(), wxTE_PROCESS_ENTER); - _connect_macro_(device_cbox, ControlDialog::SetDevice, wxEVT_COMMAND_COMBOBOX_SELECTED, this); - _connect_macro_(device_cbox, ControlDialog::SetDevice, wxEVT_COMMAND_TEXT_ENTER, this); + device_cbox->Bind(wxEVT_COMMAND_COMBOBOX_SELECTED, &ControlDialog::SetDevice, this); + device_cbox->Bind(wxEVT_COMMAND_TEXT_ENTER, &ControlDialog::SetDevice, this); - wxStaticBoxSizer* const control_chooser = CreateControlChooser(this, parent); + wxStaticBoxSizer* const control_chooser = CreateControlChooser(parent); wxStaticBoxSizer* const d_szr = new wxStaticBoxSizer(wxVERTICAL, this, _("Device")); d_szr->Add(device_cbox, 0, wxEXPAND|wxALL, 5); @@ -406,7 +405,7 @@ void GamepadPage::AdjustControlOption(wxCommandEvent&) m_control_dialog->control_reference->range = (ControlState)(m_control_dialog->range_slider->GetValue()) / SLIDER_TICK_COUNT; } -void GamepadPage::ConfigControl(wxCommandEvent& event) +void GamepadPage::ConfigControl(wxEvent& event) { m_control_dialog = new ControlDialog(this, m_plugin, ((ControlButton*)event.GetEventObject())->control_reference); m_control_dialog->ShowModal(); @@ -416,7 +415,7 @@ void GamepadPage::ConfigControl(wxCommandEvent& event) UpdateGUI(); } -void GamepadPage::ClearControl(wxCommandEvent& event) +void GamepadPage::ClearControl(wxEvent& event) { ControlButton* const btn = (ControlButton*)event.GetEventObject(); btn->control_reference->expression.clear(); @@ -480,24 +479,24 @@ void GamepadPage::DetectControl(wxCommandEvent& event) } } -wxStaticBoxSizer* ControlDialog::CreateControlChooser(wxWindow* const parent, wxWindow* const eventsink) +wxStaticBoxSizer* ControlDialog::CreateControlChooser(GamepadPage* const parent) { - wxStaticBoxSizer* const main_szr = new wxStaticBoxSizer(wxVERTICAL, parent, control_reference->is_input ? _("Input") : _("Output")); + wxStaticBoxSizer* const main_szr = new wxStaticBoxSizer(wxVERTICAL, this, control_reference->is_input ? _("Input") : _("Output")); - textctrl = new wxTextCtrl(parent, -1, wxEmptyString, wxDefaultPosition, wxSize(-1, 48), wxTE_MULTILINE); + textctrl = new wxTextCtrl(this, -1, wxEmptyString, wxDefaultPosition, wxSize(-1, 48), wxTE_MULTILINE); - wxButton* const detect_button = new wxButton(parent, -1, control_reference->is_input ? _("Detect") : _("Test")); + wxButton* const detect_button = new wxButton(this, -1, control_reference->is_input ? _("Detect") : _("Test")); - wxButton* const clear_button = new wxButton(parent, -1, _("Clear")); - wxButton* const set_button = new wxButton(parent, -1, _("Set")); + wxButton* const clear_button = new wxButton(this, -1, _("Clear")); + wxButton* const set_button = new wxButton(this, -1, _("Set")); - wxButton* const select_button = new wxButton(parent, -1, _("Select")); - _connect_macro_(select_button, ControlDialog::SetSelectedControl, wxEVT_COMMAND_BUTTON_CLICKED, parent); + wxButton* const select_button = new wxButton(this, -1, _("Select")); + select_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &ControlDialog::SetSelectedControl, this); - wxButton* const or_button = new wxButton(parent, -1, _("| OR"), wxDefaultPosition); - _connect_macro_(or_button, ControlDialog::AppendControl, wxEVT_COMMAND_BUTTON_CLICKED, parent); + wxButton* const or_button = new wxButton(this, -1, _("| OR"), wxDefaultPosition); + or_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &ControlDialog::AppendControl, this); - control_lbox = new wxListBox(parent, -1, wxDefaultPosition, wxSize(-1, 64)); + control_lbox = new wxListBox(this, -1, wxDefaultPosition, wxSize(-1, 64)); wxBoxSizer* const button_sizer = new wxBoxSizer(wxVERTICAL); button_sizer->Add(detect_button, 1, 0, 5); @@ -507,30 +506,30 @@ wxStaticBoxSizer* ControlDialog::CreateControlChooser(wxWindow* const parent, wx if (control_reference->is_input) { // TODO: check if && is good on other OS - wxButton* const and_button = new wxButton(parent, -1, _("&& AND"), wxDefaultPosition); - wxButton* const not_button = new wxButton(parent, -1, _("! NOT"), wxDefaultPosition); - wxButton* const add_button = new wxButton(parent, -1, _("^ ADD"), wxDefaultPosition); + wxButton* const and_button = new wxButton(this, -1, _("&& AND"), wxDefaultPosition); + wxButton* const not_button = new wxButton(this, -1, _("! NOT"), wxDefaultPosition); + wxButton* const add_button = new wxButton(this, -1, _("^ ADD"), wxDefaultPosition); - _connect_macro_(and_button, ControlDialog::AppendControl, wxEVT_COMMAND_BUTTON_CLICKED, parent); - _connect_macro_(not_button, ControlDialog::AppendControl, wxEVT_COMMAND_BUTTON_CLICKED, parent); - _connect_macro_(add_button, ControlDialog::AppendControl, wxEVT_COMMAND_BUTTON_CLICKED, parent); + and_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &ControlDialog::AppendControl, this); + not_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &ControlDialog::AppendControl, this); + add_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &ControlDialog::AppendControl, this); button_sizer->Add(and_button, 1, 0, 5); button_sizer->Add(not_button, 1, 0, 5); button_sizer->Add(add_button, 1, 0, 5); } - range_slider = new wxSlider(parent, -1, SLIDER_TICK_COUNT, 0, SLIDER_TICK_COUNT * 5, wxDefaultPosition, wxDefaultSize, wxSL_TOP | wxSL_LABELS /*| wxSL_AUTOTICKS*/); + range_slider = new wxSlider(this, -1, SLIDER_TICK_COUNT, 0, SLIDER_TICK_COUNT * 5, wxDefaultPosition, wxDefaultSize, wxSL_TOP | wxSL_LABELS /*| wxSL_AUTOTICKS*/); range_slider->SetValue((int)(control_reference->range * SLIDER_TICK_COUNT)); - _connect_macro_(detect_button, ControlDialog::DetectControl, wxEVT_COMMAND_BUTTON_CLICKED, parent); - _connect_macro_(clear_button, ControlDialog::ClearControl, wxEVT_COMMAND_BUTTON_CLICKED, parent); - _connect_macro_(set_button, ControlDialog::SetControl, wxEVT_COMMAND_BUTTON_CLICKED, parent); + detect_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &ControlDialog::DetectControl, this); + clear_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &ControlDialog::ClearControl, this); + set_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &ControlDialog::SetControl, this); - _connect_macro_(range_slider, GamepadPage::AdjustControlOption, wxEVT_SCROLL_CHANGED, eventsink); - wxStaticText* const range_label = new wxStaticText(parent, -1, _("Range")); - m_bound_label = new wxStaticText(parent, -1, wxT("")); + range_slider->Bind(wxEVT_SCROLL_CHANGED, &GamepadPage::AdjustControlOption, parent); + wxStaticText* const range_label = new wxStaticText(this, -1, _("Range")); + m_bound_label = new wxStaticText(this, -1, wxT("")); wxBoxSizer* const range_sizer = new wxBoxSizer(wxHORIZONTAL); range_sizer->Add(range_label, 0, wxCENTER|wxLEFT, 5); @@ -668,7 +667,7 @@ ControlGroupBox::~ControlGroupBox() delete *i; } -ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWindow* const parent, wxWindow* const eventsink) +ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWindow* const parent, GamepadPage* const eventsink) : wxBoxSizer(wxVERTICAL) , control_group(group) { @@ -691,16 +690,16 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin if ((*ci)->control_ref->is_input) { control_button->SetToolTip(_("Left-click to detect input.\nMiddle-click to clear.\nRight-click for more options.")); - _connect_macro_(control_button, GamepadPage::DetectControl, wxEVT_COMMAND_BUTTON_CLICKED, eventsink); + control_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::DetectControl, eventsink); } else { control_button->SetToolTip(_("Left/Right-click for more options.\nMiddle-click to clear.")); - _connect_macro_(control_button, GamepadPage::ConfigControl, wxEVT_COMMAND_BUTTON_CLICKED, eventsink); + control_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::ConfigControl, eventsink); } - _connect_macro_(control_button, GamepadPage::ClearControl, wxEVT_MIDDLE_DOWN, eventsink); - _connect_macro_(control_button, GamepadPage::ConfigControl, wxEVT_RIGHT_UP, eventsink); + control_button->Bind(wxEVT_MIDDLE_DOWN, &GamepadPage::ClearControl, eventsink); + control_button->Bind(wxEVT_RIGHT_UP, &GamepadPage::ConfigControl, eventsink); wxBoxSizer* const control_sizer = new wxBoxSizer(wxHORIZONTAL); control_sizer->AddStretchSpacer(1); @@ -733,7 +732,7 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin for (; i!=e; ++i) { PadSettingSpin* setting = new PadSettingSpin(parent, *i); - _connect_macro_(setting->wxcontrol, GamepadPage::AdjustSetting, wxEVT_COMMAND_SPINCTRL_UPDATED, eventsink); + setting->wxcontrol->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &GamepadPage::AdjustSetting, eventsink); options.push_back(setting); szr->Add(new wxStaticText(parent, -1, WXTSTR_FROM_CSTR((*i)->name))); szr->Add(setting->wxcontrol, 0, wxLEFT, 0); @@ -754,7 +753,7 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin static_bitmap = new wxStaticBitmap(parent, -1, bitmap, wxDefaultPosition, wxDefaultSize, wxBITMAP_TYPE_BMP); PadSettingSpin* const threshold_cbox = new PadSettingSpin(parent, group->settings[0]); - _connect_macro_(threshold_cbox->wxcontrol, GamepadPage::AdjustSetting, wxEVT_COMMAND_SPINCTRL_UPDATED, eventsink); + threshold_cbox->wxcontrol->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &GamepadPage::AdjustSetting, eventsink); threshold_cbox->wxcontrol->SetToolTip(_("Adjust the analog control pressure required to activate buttons.")); @@ -793,7 +792,7 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin for (; i!=e; ++i) { PadSettingSpin* setting = new PadSettingSpin(parent, *i); - _connect_macro_(setting->wxcontrol, GamepadPage::AdjustSetting, wxEVT_COMMAND_SPINCTRL_UPDATED, eventsink); + setting->wxcontrol->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &GamepadPage::AdjustSetting, eventsink); options.push_back(setting); wxBoxSizer* const szr = new wxBoxSizer(wxHORIZONTAL); szr->Add(new wxStaticText(parent, -1, WXTSTR_FROM_CSTR((*i)->name)), 0, wxCENTER|wxRIGHT, 3); @@ -811,8 +810,8 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin options.push_back(attachments); - _connect_macro_(attachments->wxcontrol, GamepadPage::AdjustSetting, wxEVT_COMMAND_CHOICE_SELECTED, eventsink); - _connect_macro_(configure_btn, GamepadPage::ConfigExtension, wxEVT_COMMAND_BUTTON_CLICKED, eventsink); + attachments->wxcontrol->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &GamepadPage::AdjustSetting, eventsink); + configure_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::ConfigExtension, eventsink); Add(attachments->wxcontrol, 0, wxTOP|wxLEFT|wxRIGHT|wxEXPAND, 3); Add(configure_btn, 0, wxALL|wxEXPAND, 3); @@ -821,7 +820,7 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin case GROUP_TYPE_UDPWII: { wxButton* const btn = new UDPConfigButton(parent, (UDPWrapper*)group); - _connect_macro_(btn, GamepadPage::ConfigUDPWii, wxEVT_COMMAND_BUTTON_CLICKED, eventsink); + btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::ConfigUDPWii, eventsink); Add(btn, 0, wxALL|wxEXPAND, 3); } break; @@ -835,7 +834,7 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin for (; i!=e; ++i) { PadSettingCheckBox* setting_cbox = new PadSettingCheckBox(parent, (*i)->value, (*i)->name); - _connect_macro_(setting_cbox->wxcontrol, GamepadPage::AdjustSetting, wxEVT_COMMAND_CHECKBOX_CLICKED, eventsink); + setting_cbox->wxcontrol->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &GamepadPage::AdjustSetting, eventsink); options.push_back(setting_cbox); Add(setting_cbox->wxcontrol, 0, wxALL|wxLEFT, 5); @@ -850,7 +849,7 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin //AddStretchSpacer(0); } -ControlGroupsSizer::ControlGroupsSizer(ControllerEmu* const controller, wxWindow* const parent, wxWindow* const eventsink, std::vector* groups) +ControlGroupsSizer::ControlGroupsSizer(ControllerEmu* const controller, wxWindow* const parent, GamepadPage* const eventsink, std::vector* groups) : wxBoxSizer(wxHORIZONTAL) { size_t col_size = 0; @@ -906,9 +905,9 @@ GamepadPage::GamepadPage(wxWindow* parent, InputPlugin& plugin, const unsigned i wxButton* refresh_button = new wxButton(this, -1, _("Refresh"), wxDefaultPosition, wxSize(60,-1)); - _connect_macro_(device_cbox, GamepadPage::SetDevice, wxEVT_COMMAND_COMBOBOX_SELECTED, this); - _connect_macro_(device_cbox, GamepadPage::SetDevice, wxEVT_COMMAND_TEXT_ENTER, this); - _connect_macro_(refresh_button, GamepadPage::RefreshDevices, wxEVT_COMMAND_BUTTON_CLICKED, this); + device_cbox->Bind(wxEVT_COMMAND_COMBOBOX_SELECTED, &GamepadPage::SetDevice, this); + device_cbox->Bind(wxEVT_COMMAND_TEXT_ENTER, &GamepadPage::SetDevice, this); + refresh_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::RefreshDevices, this); device_sbox->Add(device_cbox, 1, wxLEFT|wxRIGHT, 3); device_sbox->Add(refresh_button, 0, wxRIGHT|wxBOTTOM, 3); @@ -920,8 +919,8 @@ GamepadPage::GamepadPage(wxWindow* parent, InputPlugin& plugin, const unsigned i clear_sbox->Add(default_button, 1, wxLEFT, 3); clear_sbox->Add(clearall_button, 1, wxRIGHT, 3); - _connect_macro_(clearall_button, GamepadPage::ClearAll, wxEVT_COMMAND_BUTTON_CLICKED, this); - _connect_macro_(default_button, GamepadPage::LoadDefaults, wxEVT_COMMAND_BUTTON_CLICKED, this); + clearall_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::ClearAll, this); + default_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::LoadDefaults, this); profile_cbox = new wxComboBox(this, -1, wxT(""), wxDefaultPosition, wxSize(64,-1)); @@ -929,9 +928,9 @@ GamepadPage::GamepadPage(wxWindow* parent, InputPlugin& plugin, const unsigned i wxButton* const psave_btn = new wxButton(this, -1, _("Save"), wxDefaultPosition, wxSize(48,-1)); wxButton* const pdelete_btn = new wxButton(this, -1, _("Delete"), wxDefaultPosition, wxSize(60,-1)); - _connect_macro_(pload_btn, GamepadPage::LoadProfile, wxEVT_COMMAND_BUTTON_CLICKED, this); - _connect_macro_(psave_btn, GamepadPage::SaveProfile, wxEVT_COMMAND_BUTTON_CLICKED, this); - _connect_macro_(pdelete_btn, GamepadPage::DeleteProfile, wxEVT_COMMAND_BUTTON_CLICKED, this); + pload_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::LoadProfile, this); + psave_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::SaveProfile, this); + pdelete_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::DeleteProfile, this); profile_sbox->Add(profile_cbox, 1, wxLEFT, 3); profile_sbox->Add(pload_btn, 0, wxLEFT, 3); diff --git a/Source/Core/DolphinWX/Src/InputConfigDiag.h b/Source/Core/DolphinWX/Src/InputConfigDiag.h index 53f06a1144..1be97bff14 100644 --- a/Source/Core/DolphinWX/Src/InputConfigDiag.h +++ b/Source/Core/DolphinWX/Src/InputConfigDiag.h @@ -100,7 +100,7 @@ class ControlDialog : public wxDialog public: ControlDialog(GamepadPage* const parent, InputPlugin& plugin, ControllerInterface::ControlReference* const ref); - wxStaticBoxSizer* CreateControlChooser(wxWindow* const parent, wxWindow* const eventsink); + wxStaticBoxSizer* CreateControlChooser(GamepadPage* const parent); void DetectControl(wxCommandEvent& event); void ClearControl(wxCommandEvent& event); @@ -159,7 +159,7 @@ public: class ControlGroupBox : public wxBoxSizer { public: - ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWindow* const parent, wxWindow* const eventsink); + ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWindow* const parent, GamepadPage* const eventsink); ~ControlGroupBox(); std::vector options; @@ -172,7 +172,7 @@ public: class ControlGroupsSizer : public wxBoxSizer { public: - ControlGroupsSizer(ControllerEmu* const controller, wxWindow* const parent, wxWindow* const eventsink, std::vector* const groups = NULL); + ControlGroupsSizer(ControllerEmu* const controller, wxWindow* const parent, GamepadPage* const eventsink, std::vector* const groups = NULL); }; class InputConfigDialog; @@ -193,8 +193,8 @@ public: void SaveProfile(wxCommandEvent& event); void DeleteProfile(wxCommandEvent& event); - void ConfigControl(wxCommandEvent& event); - void ClearControl(wxCommandEvent& event); + void ConfigControl(wxEvent& event); + void ClearControl(wxEvent& event); void DetectControl(wxCommandEvent& event); void ConfigExtension(wxCommandEvent& event); diff --git a/Source/Core/DolphinWX/Src/LogConfigWindow.cpp b/Source/Core/DolphinWX/Src/LogConfigWindow.cpp index d771a75c30..162647c64d 100644 --- a/Source/Core/DolphinWX/Src/LogConfigWindow.cpp +++ b/Source/Core/DolphinWX/Src/LogConfigWindow.cpp @@ -21,9 +21,6 @@ #include "LogWindow.h" #include "FileUtil.h" -#define _connect_macro_(b, f, c, s) \ - (b)->Connect(wxID_ANY, (c), wxCommandEventHandler(f), (wxObject*)0, (wxEvtHandler*)s) - LogConfigWindow::LogConfigWindow(wxWindow* parent, CLogWindow *log_window, wxWindowID id) : wxPanel(parent, id, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _("Log Configuration")) , m_LogWindow(log_window), enableAll(true) @@ -53,29 +50,29 @@ void LogConfigWindow::CreateGUIControls() m_verbosity = new wxRadioBox(this, wxID_ANY, _("Verbosity"), wxDefaultPosition, wxDefaultSize, wxLevelsUse, 0, wxRA_SPECIFY_ROWS, wxDefaultValidator); - _connect_macro_(m_verbosity, LogConfigWindow::OnVerbosityChange, wxEVT_COMMAND_RADIOBOX_SELECTED, this); + m_verbosity->Bind(wxEVT_COMMAND_RADIOBOX_SELECTED, &LogConfigWindow::OnVerbosityChange, this); // Options m_writeFileCB = new wxCheckBox(this, wxID_ANY, _("Write to File")); - _connect_macro_(m_writeFileCB, LogConfigWindow::OnWriteFileChecked, wxEVT_COMMAND_CHECKBOX_CLICKED, this); + m_writeFileCB->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &LogConfigWindow::OnWriteFileChecked, this); m_writeConsoleCB = new wxCheckBox(this, wxID_ANY, _("Write to Console")); - _connect_macro_(m_writeConsoleCB, LogConfigWindow::OnWriteConsoleChecked, wxEVT_COMMAND_CHECKBOX_CLICKED, this); + m_writeConsoleCB->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &LogConfigWindow::OnWriteConsoleChecked, this); m_writeWindowCB = new wxCheckBox(this, wxID_ANY, _("Write to Window")); - _connect_macro_(m_writeWindowCB, LogConfigWindow::OnWriteWindowChecked, wxEVT_COMMAND_CHECKBOX_CLICKED, this); + m_writeWindowCB->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &LogConfigWindow::OnWriteWindowChecked, this); m_writeDebuggerCB = NULL; #ifdef _MSC_VER if (IsDebuggerPresent()) { m_writeDebuggerCB = new wxCheckBox(this, wxID_ANY, _("Write to Debugger")); - _connect_macro_(m_writeDebuggerCB, LogConfigWindow::OnWriteDebuggerChecked, wxEVT_COMMAND_CHECKBOX_CLICKED, this); + m_writeDebuggerCB->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &LogConfigWindow::OnWriteDebuggerChecked, this); } #endif wxButton *btn_toggle_all = new wxButton(this, wxID_ANY, _("Toggle All Log Types"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); - _connect_macro_(btn_toggle_all, LogConfigWindow::OnToggleAll, wxEVT_COMMAND_BUTTON_CLICKED, this); + btn_toggle_all->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &LogConfigWindow::OnToggleAll, this); m_checks = new wxCheckListBox(this, wxID_ANY); - _connect_macro_(m_checks, LogConfigWindow::OnLogCheck, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, this); + m_checks->Bind(wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, &LogConfigWindow::OnLogCheck, this); for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; i++) m_checks->Append(wxString::FromAscii(m_LogManager->GetFullName((LogTypes::LOG_TYPE)i))); diff --git a/Source/Core/DolphinWX/Src/NetWindow.cpp b/Source/Core/DolphinWX/Src/NetWindow.cpp index 0347385e73..142a7ea00c 100644 --- a/Source/Core/DolphinWX/Src/NetWindow.cpp +++ b/Source/Core/DolphinWX/Src/NetWindow.cpp @@ -24,9 +24,6 @@ #include -#define _connect_macro_(b, f, c, s) \ - (b)->Connect(wxID_ANY, (c), wxCommandEventHandler(f), (wxObject*)0, (wxEvtHandler*)s) - #define NETPLAY_TITLEBAR "Dolphin NetPlay" BEGIN_EVENT_TABLE(NetPlayDiag, wxFrame) @@ -86,7 +83,7 @@ NetPlaySetupDiag::NetPlaySetupDiag(wxWindow* const parent, const CGameListCtrl* m_connect_port_text = new wxTextCtrl(connect_tab, wxID_ANY, wxString::FromAscii(port.c_str())); wxButton* const connect_btn = new wxButton(connect_tab, wxID_ANY, _("Connect")); - _connect_macro_(connect_btn, NetPlaySetupDiag::OnJoin, wxEVT_COMMAND_BUTTON_CLICKED, this); + connect_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlaySetupDiag::OnJoin, this); wxStaticText* const alert_lbl = new wxStaticText(connect_tab, wxID_ANY, _("ALERT:\n\nNetPlay will currently only work properly when using the following settings:\n - Dual Core [OFF]\n - Audio Throttle [OFF]\n - DSP-HLE with \"Null Audio\" or DSP-LLE\n - Manually set the exact number of controllers that will be used to [Standard Controller]\n\nAll players should try to use the same Dolphin version and settings.\nDisable all memory cards or send them to all players before starting.\nWiimote support has not been implemented.\n\nYou must forward TCP port to host!!"), @@ -119,10 +116,10 @@ NetPlaySetupDiag::NetPlaySetupDiag(wxWindow* const parent, const CGameListCtrl* m_host_port_text = new wxTextCtrl(host_tab, wxID_ANY, wxString::FromAscii(port.c_str())); wxButton* const host_btn = new wxButton(host_tab, wxID_ANY, _("Host")); - _connect_macro_(host_btn, NetPlaySetupDiag::OnHost, wxEVT_COMMAND_BUTTON_CLICKED, this); + host_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlaySetupDiag::OnHost, this); m_game_lbox = new wxListBox(host_tab, wxID_ANY); - _connect_macro_(m_game_lbox, NetPlaySetupDiag::OnHost, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, this); + m_game_lbox->Bind(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, &NetPlaySetupDiag::OnHost, this); std::istringstream ss(game_list->GetGameNames()); std::string game; @@ -143,7 +140,7 @@ NetPlaySetupDiag::NetPlaySetupDiag(wxWindow* const parent, const CGameListCtrl* // bottom row wxButton* const quit_btn = new wxButton(panel, wxID_ANY, _("Quit")); - _connect_macro_(quit_btn, NetPlaySetupDiag::OnQuit, wxEVT_COMMAND_BUTTON_CLICKED, this); + quit_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlaySetupDiag::OnQuit, this); // main sizer wxBoxSizer* const main_szr = new wxBoxSizer(wxVERTICAL); @@ -257,7 +254,7 @@ NetPlayDiag::NetPlayDiag(wxWindow* const parent, const CGameListCtrl* const game wxDefaultPosition, wxDefaultSize, wxBU_LEFT); if (is_hosting) - _connect_macro_(m_game_btn, NetPlayDiag::OnChangeGame, wxEVT_COMMAND_BUTTON_CLICKED, this); + m_game_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlayDiag::OnChangeGame, this); else m_game_btn->Disable(); @@ -269,10 +266,10 @@ NetPlayDiag::NetPlayDiag(wxWindow* const parent, const CGameListCtrl* const game m_chat_msg_text = new wxTextCtrl(panel, wxID_ANY, wxEmptyString , wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); - _connect_macro_(m_chat_msg_text, NetPlayDiag::OnChat, wxEVT_COMMAND_TEXT_ENTER, this); + m_chat_msg_text->Bind(wxEVT_COMMAND_TEXT_ENTER, &NetPlayDiag::OnChat, this); wxButton* const chat_msg_btn = new wxButton(panel, wxID_ANY, _("Send")); - _connect_macro_(chat_msg_btn, NetPlayDiag::OnChat, wxEVT_COMMAND_BUTTON_CLICKED, this); + chat_msg_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlayDiag::OnChat, this); wxBoxSizer* const chat_msg_szr = new wxBoxSizer(wxHORIZONTAL); chat_msg_szr->Add(m_chat_msg_text, 1); @@ -290,7 +287,7 @@ NetPlayDiag::NetPlayDiag(wxWindow* const parent, const CGameListCtrl* const game if (is_hosting) { wxButton* const player_config_btn = new wxButton(panel, wxID_ANY, _("Configure Pads")); - _connect_macro_(player_config_btn, NetPlayDiag::OnConfigPads, wxEVT_COMMAND_BUTTON_CLICKED, this); + player_config_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlayDiag::OnConfigPads, this); player_szr->Add(player_config_btn, 0, wxEXPAND | wxTOP, 5); } @@ -300,23 +297,23 @@ NetPlayDiag::NetPlayDiag(wxWindow* const parent, const CGameListCtrl* const game // bottom crap wxButton* const quit_btn = new wxButton(panel, wxID_ANY, _("Quit")); - _connect_macro_(quit_btn, NetPlayDiag::OnQuit, wxEVT_COMMAND_BUTTON_CLICKED, this); + quit_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlayDiag::OnQuit, this); wxBoxSizer* const bottom_szr = new wxBoxSizer(wxHORIZONTAL); if (is_hosting) { wxButton* const start_btn = new wxButton(panel, wxID_ANY, _("Start")); - _connect_macro_(start_btn, NetPlayDiag::OnStart, wxEVT_COMMAND_BUTTON_CLICKED, this); + start_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlayDiag::OnStart, this); bottom_szr->Add(start_btn); wxButton* const stop_btn = new wxButton(panel, wxID_ANY, _("Stop")); - _connect_macro_(stop_btn, NetPlayDiag::OnStop, wxEVT_COMMAND_BUTTON_CLICKED, this); + stop_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlayDiag::OnStop, this); bottom_szr->Add(stop_btn); bottom_szr->Add(new wxStaticText(panel, wxID_ANY, _("Buffer:")), 0, wxLEFT | wxCENTER, 5 ); wxSpinCtrl* const padbuf_spin = new wxSpinCtrl(panel, wxID_ANY, wxT("20") , wxDefaultPosition, wxSize(64, -1), wxSP_ARROW_KEYS, 0, 200, 20); - _connect_macro_(padbuf_spin, NetPlayDiag::OnAdjustBuffer, wxEVT_COMMAND_SPINCTRL_UPDATED, this); + padbuf_spin->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &NetPlayDiag::OnAdjustBuffer, this); wxButton* const padbuf_btn = new wxButton(panel, wxID_ANY, wxT("?"), wxDefaultPosition, wxSize(22, -1)); - _connect_macro_(padbuf_btn, NetPlayDiag::OnPadBuffHelp, wxEVT_COMMAND_BUTTON_CLICKED, this); + padbuf_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &NetPlayDiag::OnPadBuffHelp, this); bottom_szr->Add(padbuf_spin, 0, wxCENTER); bottom_szr->Add(padbuf_btn); } @@ -550,7 +547,7 @@ ChangeGameDiag::ChangeGameDiag(wxWindow* const parent, const CGameListCtrl* cons , m_game_name(game_name) { m_game_lbox = new wxListBox(this, wxID_ANY); - _connect_macro_(m_game_lbox, ChangeGameDiag::OnPick, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, this); + m_game_lbox->Bind(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, &ChangeGameDiag::OnPick, this); // fill list with games std::istringstream ss(game_list->GetGameNames()); @@ -559,7 +556,7 @@ ChangeGameDiag::ChangeGameDiag(wxWindow* const parent, const CGameListCtrl* cons m_game_lbox->Append(wxString(game.c_str(), *wxConvCurrent)); wxButton* const ok_btn = new wxButton(this, wxID_OK, _("Change")); - _connect_macro_(ok_btn, ChangeGameDiag::OnPick, wxEVT_COMMAND_BUTTON_CLICKED, this); + ok_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &ChangeGameDiag::OnPick, this); wxBoxSizer* const szr = new wxBoxSizer(wxVERTICAL); szr->Add(m_game_lbox, 1, wxLEFT | wxRIGHT | wxTOP | wxEXPAND, 5); @@ -604,7 +601,7 @@ PadMapDiag::PadMapDiag(wxWindow* const parent, int map[]) = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 5, pad_names); pad_cbox->Select(m_mapping[i] + 1); - _connect_macro_(pad_cbox, PadMapDiag::OnAdjust, wxEVT_COMMAND_CHOICE_SELECTED, this); + pad_cbox->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &PadMapDiag::OnAdjust, this); wxBoxSizer* const v_szr = new wxBoxSizer(wxVERTICAL); v_szr->Add(new wxStaticText(this,wxID_ANY, pad_names[i + 1]), 1, wxALIGN_CENTER_HORIZONTAL); diff --git a/Source/Core/DolphinWX/Src/UDPConfigDiag.cpp b/Source/Core/DolphinWX/Src/UDPConfigDiag.cpp index d66e6c1fc5..2f31311495 100644 --- a/Source/Core/DolphinWX/Src/UDPConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/UDPConfigDiag.cpp @@ -6,8 +6,6 @@ #include "IniFile.h" #include -#define _connect_macro_(b, f, c, s) (b)->Connect(wxID_ANY, (c), wxCommandEventHandler( f ), (wxObject*)0, (wxEvtHandler*)s) - UDPConfigDiag::UDPConfigDiag(wxWindow * const parent, UDPWrapper * _wrp) : wxDialog(parent, -1, _("UDP Wiimote"), wxDefaultPosition, wxDefaultSize), wrp(_wrp) @@ -31,13 +29,13 @@ UDPConfigDiag::UDPConfigDiag(wxWindow * const parent, UDPWrapper * _wrp) : port_tbox = new wxTextCtrl(this, wxID_ANY, wxString::FromUTF8(wrp->port.c_str())); port_sizer->Add(port_tbox, 1, wxLEFT | wxEXPAND, 5); - _connect_macro_(enable, UDPConfigDiag::ChangeState, wxEVT_COMMAND_CHECKBOX_CLICKED, this); - _connect_macro_(butt, UDPConfigDiag::ChangeUpdateFlags, wxEVT_COMMAND_CHECKBOX_CLICKED, this); - _connect_macro_(accel, UDPConfigDiag::ChangeUpdateFlags, wxEVT_COMMAND_CHECKBOX_CLICKED, this); - _connect_macro_(point, UDPConfigDiag::ChangeUpdateFlags, wxEVT_COMMAND_CHECKBOX_CLICKED, this); - _connect_macro_(nun, UDPConfigDiag::ChangeUpdateFlags, wxEVT_COMMAND_CHECKBOX_CLICKED, this); - _connect_macro_(nunaccel, UDPConfigDiag::ChangeUpdateFlags, wxEVT_COMMAND_CHECKBOX_CLICKED, this); - _connect_macro_(port_tbox, UDPConfigDiag::ChangeState, wxEVT_COMMAND_TEXT_UPDATED, this); + enable->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &UDPConfigDiag::ChangeState, this); + butt->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &UDPConfigDiag::ChangeUpdateFlags, this); + accel->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &UDPConfigDiag::ChangeUpdateFlags, this); + point->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &UDPConfigDiag::ChangeUpdateFlags, this); + nun->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &UDPConfigDiag::ChangeUpdateFlags, this); + nunaccel->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &UDPConfigDiag::ChangeUpdateFlags, this); + port_tbox->Bind(wxEVT_COMMAND_TEXT_UPDATED, &UDPConfigDiag::ChangeState, this); enable->SetValue(wrp->udpEn); butt->SetValue(wrp->updButt); diff --git a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp index d99bd97e8d..83b1d64c4c 100644 --- a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp @@ -11,8 +11,6 @@ #include #endif -#define _connect_macro_(b, f, c, s) (b)->Connect(wxID_ANY, (c), wxCommandEventHandler( f ), (wxObject*)0, (wxEvtHandler*)s) - extern CFrame* main_frame; // template instantiation @@ -27,7 +25,7 @@ SettingCheckBox::BoolSetting(wxWindow* parent, const wxString& label, const wxSt { SetToolTip(tooltip); SetValue(m_setting ^ m_reverse); - _connect_macro_(this, SettingCheckBox::UpdateValue, wxEVT_COMMAND_CHECKBOX_CLICKED, this); + this->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &SettingCheckBox::UpdateValue, this); } template <> @@ -38,7 +36,7 @@ SettingRadioButton::BoolSetting(wxWindow* parent, const wxString& label, const w { SetToolTip(tooltip); SetValue(m_setting ^ m_reverse); - _connect_macro_(this, SettingRadioButton::UpdateValue, wxEVT_COMMAND_RADIOBUTTON_SELECTED, this); + this->Bind(wxEVT_COMMAND_RADIOBUTTON_SELECTED, &SettingRadioButton::UpdateValue, this); } SettingChoice::SettingChoice(wxWindow* parent, int &setting, const wxString& tooltip, int num, const wxString choices[], long style) @@ -47,7 +45,7 @@ SettingChoice::SettingChoice(wxWindow* parent, int &setting, const wxString& too { SetToolTip(tooltip); Select(m_setting); - _connect_macro_(this, SettingChoice::UpdateValue, wxEVT_COMMAND_CHOICE_SELECTED, this); + this->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &SettingChoice::UpdateValue, this); } void SettingChoice::UpdateValue(wxCommandEvent& ev) @@ -217,7 +215,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con choice_backend->AppendString(wxGetTranslation(wxString::FromAscii((*it)->GetName().c_str()))); choice_backend->SetStringSelection(wxGetTranslation(wxString::FromAscii(g_video_backend->GetName().c_str()))); - _connect_macro_(choice_backend, VideoConfigDiag::Event_Backend, wxEVT_COMMAND_CHOICE_SELECTED, this); + choice_backend->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &VideoConfigDiag::Event_Backend, this); szr_basic->Add(label_backend, 1, wxALIGN_CENTER_VERTICAL, 5); szr_basic->Add(choice_backend, 1, 0, 0); @@ -259,7 +257,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con wxStaticText* const label_display_resolution = new wxStaticText(page_general, wxID_ANY, _("Fullscreen resolution:")); choice_display_resolution = new wxChoice(page_general, wxID_ANY, wxDefaultPosition, wxDefaultSize, res_list); RegisterControl(choice_display_resolution, wxGetTranslation(display_res_desc)); - _connect_macro_(choice_display_resolution, VideoConfigDiag::Event_DisplayResolution, wxEVT_COMMAND_CHOICE_SELECTED, this); + choice_display_resolution->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &VideoConfigDiag::Event_DisplayResolution, this); choice_display_resolution->SetStringSelection(wxString::FromAscii(SConfig::GetInstance().m_LocalCoreStartupParameter.strFullscreenResolution.c_str())); @@ -389,7 +387,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con else choice_ppshader->SetStringSelection(wxString::FromAscii(vconfig.sPostProcessingShader.c_str())); - _connect_macro_(choice_ppshader, VideoConfigDiag::Event_PPShader, wxEVT_COMMAND_CHOICE_SELECTED, this); + choice_ppshader->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &VideoConfigDiag::Event_PPShader, this); szr_enh->Add(new wxStaticText(page_enh, -1, _("Post-Processing Effect:")), 1, wxALIGN_CENTER_VERTICAL, 0); szr_enh->Add(choice_ppshader); @@ -455,7 +453,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con // TODO: Use wxSL_MIN_MAX_LABELS or wxSL_VALUE_LABEL with wx 2.9.1 wxSlider* const stc_slider = new wxSlider(page_hacks, wxID_ANY, 0, 0, 2, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_BOTTOM); - _connect_macro_(stc_slider, VideoConfigDiag::Event_Stc, wxEVT_COMMAND_SLIDER_UPDATED, this); + stc_slider->Bind(wxEVT_COMMAND_SLIDER_UPDATED, &VideoConfigDiag::Event_Stc, this); RegisterControl(stc_slider, wxGetTranslation(stc_desc)); if (vconfig.iSafeTextureCache_ColorSamples == 0) stc_slider->SetValue(0); @@ -556,7 +554,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con { wxCheckBox* const cb_prog_scan = new wxCheckBox(page_advanced, wxID_ANY, _("Enable Progressive Scan")); RegisterControl(cb_prog_scan, wxGetTranslation(prog_scan_desc)); - _connect_macro_(cb_prog_scan, VideoConfigDiag::Event_ProgressiveScan, wxEVT_COMMAND_CHECKBOX_CLICKED, this); + cb_prog_scan->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &VideoConfigDiag::Event_ProgressiveScan, this); if (Core::GetState() != Core::CORE_UNINITIALIZED) cb_prog_scan->Disable(); @@ -579,7 +577,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con } wxButton* const btn_close = new wxButton(this, wxID_OK, _("Close"), wxDefaultPosition); - _connect_macro_(btn_close, VideoConfigDiag::Event_ClickClose, wxEVT_COMMAND_BUTTON_CLICKED, this); + btn_close->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &VideoConfigDiag::Event_ClickClose, this); Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, wxCloseEventHandler(VideoConfigDiag::Event_Close), (wxObject*)0, this); diff --git a/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp b/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp index b232bf6461..d94c099531 100644 --- a/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp @@ -4,8 +4,6 @@ #include "HW/WiimoteReal/WiimoteReal.h" #include "Frame.h" -#define _connect_macro_(b, f, c, s) (b)->Connect(wxID_ANY, (c), wxCommandEventHandler(f), (wxObject*)0, (wxEvtHandler*)s) - const wxString& ConnectedWiimotesString() { static wxString str; @@ -42,9 +40,9 @@ WiimoteConfigDiag::WiimoteConfigDiag(wxWindow* const parent, InputPlugin& plugin wiimote_label[i] = new wxStaticText(this, wxID_ANY, str); wiimote_source_ch[i] = new wxChoice(this, source_ctrl_id, wxDefaultPosition, wxDefaultSize, sizeof(src_choices)/sizeof(*src_choices), src_choices); - _connect_macro_(wiimote_source_ch[i], WiimoteConfigDiag::SelectSource, wxEVT_COMMAND_CHOICE_SELECTED, this); + wiimote_source_ch[i]->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &WiimoteConfigDiag::SelectSource, this); wiimote_configure_bt[i] = new wxButton(this, config_bt_id, _("Configure")); - _connect_macro_(wiimote_configure_bt[i], WiimoteConfigDiag::ConfigEmulatedWiimote, wxEVT_COMMAND_BUTTON_CLICKED, this); + wiimote_configure_bt[i]->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &WiimoteConfigDiag::ConfigEmulatedWiimote, this); m_orig_wiimote_sources[i] = g_wiimote_sources[i]; wiimote_source_ch[i]->Select(m_orig_wiimote_sources[i]); @@ -69,11 +67,11 @@ WiimoteConfigDiag::WiimoteConfigDiag(wxWindow* const parent, InputPlugin& plugin connected_wiimotes_txt = new wxStaticText(this, -1, ConnectedWiimotesString()); wxButton* const refresh_btn = new wxButton(this, -1, _("Refresh"), wxDefaultPosition); - _connect_macro_(refresh_btn, WiimoteConfigDiag::RefreshRealWiimotes, wxEVT_COMMAND_BUTTON_CLICKED, this); + refresh_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &WiimoteConfigDiag::RefreshRealWiimotes, this); #ifdef _WIN32 wxButton* const pairup_btn = new wxButton(this, -1, _("Pair Up"), wxDefaultPosition); - _connect_macro_(pairup_btn, WiimoteConfigDiag::PairUpRealWiimotes, wxEVT_COMMAND_BUTTON_CLICKED, this); + pairup_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &WiimoteConfigDiag::PairUpRealWiimotes, this); #endif @@ -133,11 +131,11 @@ WiimoteConfigDiag::WiimoteConfigDiag(wxWindow* const parent, InputPlugin& plugin WiimoteMotor->SetValue(SConfig::GetInstance().m_SYSCONF->GetData("BT.MOT")); WiimoteReconnectOnLoad->SetValue(SConfig::GetInstance().m_WiimoteReconnectOnLoad); - _connect_macro_(WiiSensBarPos, WiimoteConfigDiag::OnSensorBarPos, wxEVT_COMMAND_CHOICE_SELECTED, this); - _connect_macro_(WiiSensBarSens, WiimoteConfigDiag::OnSensorBarSensitivity, wxEVT_COMMAND_SLIDER_UPDATED, this); - _connect_macro_(WiimoteSpkVolume, WiimoteConfigDiag::OnSpeakerVolume, wxEVT_COMMAND_SLIDER_UPDATED, this); - _connect_macro_(WiimoteMotor, WiimoteConfigDiag::OnMotor, wxEVT_COMMAND_CHECKBOX_CLICKED, this); - _connect_macro_(WiimoteReconnectOnLoad, WiimoteConfigDiag::OnReconnectOnLoad, wxEVT_COMMAND_CHECKBOX_CLICKED, this); + WiiSensBarPos->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &WiimoteConfigDiag::OnSensorBarPos, this); + WiiSensBarSens->Bind(wxEVT_COMMAND_SLIDER_UPDATED, &WiimoteConfigDiag::OnSensorBarSensitivity, this); + WiimoteSpkVolume->Bind(wxEVT_COMMAND_SLIDER_UPDATED, &WiimoteConfigDiag::OnSpeakerVolume, this); + WiimoteMotor->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &WiimoteConfigDiag::OnMotor, this); + WiimoteReconnectOnLoad->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &WiimoteConfigDiag::OnReconnectOnLoad, this); // "General Settings" layout diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/VideoConfigDialog.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/VideoConfigDialog.cpp index 792d90e61c..c18ac28d33 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/VideoConfigDialog.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/VideoConfigDialog.cpp @@ -21,8 +21,6 @@ #include "FileUtil.h" #include "Core.h" -#define _connect_macro_(b, f, c, s) (b)->Connect(wxID_ANY, (c), wxCommandEventHandler( f ), (wxObject*)0, (wxEvtHandler*)s) - template IntegerSetting::IntegerSetting(wxWindow* parent, const wxString& label, T& setting, int minVal, int maxVal, long style) : wxSpinCtrl(parent, -1, label, wxDefaultPosition, wxDefaultSize, style), @@ -30,7 +28,7 @@ IntegerSetting::IntegerSetting(wxWindow* parent, const wxString& label, T& se { SetRange(minVal, maxVal); SetValue(m_setting); - _connect_macro_(this, IntegerSetting::UpdateValue, wxEVT_COMMAND_SPINCTRL_UPDATED, this); + this->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &IntegerSetting::UpdateValue, this); } @@ -70,7 +68,7 @@ VideoConfigDialog::VideoConfigDialog(wxWindow* parent, const std::string& title, // TODO: How to get the translated plugin name? choice_backend->SetStringSelection(wxString::FromAscii(g_video_backend->GetName().c_str())); - _connect_macro_(choice_backend, VideoConfigDialog::Event_Backend, wxEVT_COMMAND_CHOICE_SELECTED, this); + choice_backend->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &VideoConfigDialog::Event_Backend, this); szr_rendering->Add(label_backend, 1, wxALIGN_CENTER_VERTICAL, 5); szr_rendering->Add(choice_backend, 1, 0, 0); -- cgit v1.2.3 From 6e5c26a3d4e07a1a748195ba7385472cd6746c36 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 03:12:29 -0600 Subject: kill _connect_macro_ ugliness in BreakpointWindow. --- Source/Core/DolphinWX/Src/Debugger/BreakpointWindow.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/Debugger/BreakpointWindow.cpp b/Source/Core/DolphinWX/Src/Debugger/BreakpointWindow.cpp index 7d40e820f2..35f957d71a 100644 --- a/Source/Core/DolphinWX/Src/Debugger/BreakpointWindow.cpp +++ b/Source/Core/DolphinWX/Src/Debugger/BreakpointWindow.cpp @@ -31,13 +31,10 @@ extern "C" { #include "../../resources/toolbar_debugger_delete.c" } -#define _connect_macro_(id, handler) \ - Connect(id, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(handler), (wxObject*)0, (wxEvtHandler*)parent) - class CBreakPointBar : public wxAuiToolBar { public: - CBreakPointBar(wxWindow* parent, const wxWindowID id) + CBreakPointBar(CBreakPointWindow* parent, const wxWindowID id) : wxAuiToolBar(parent, id, wxDefaultPosition, wxDefaultSize, wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_TEXT) { @@ -51,26 +48,26 @@ public: wxBitmap(wxGetBitmapFromMemory(toolbar_add_memcheck_png).ConvertToImage().Rescale(24, 24)); AddTool(ID_DELETE, wxT("Delete"), m_Bitmaps[Toolbar_Delete]); - _connect_macro_(ID_DELETE, CBreakPointWindow::OnDelete); + Bind(wxEVT_COMMAND_TOOL_CLICKED, &CBreakPointWindow::OnDelete, parent, ID_DELETE); AddTool(ID_CLEAR, wxT("Clear"), m_Bitmaps[Toolbar_Delete]); - _connect_macro_(ID_CLEAR, CBreakPointWindow::OnClear); + Bind(wxEVT_COMMAND_TOOL_CLICKED, &CBreakPointWindow::OnClear, parent, ID_CLEAR); AddTool(ID_ADDBP, wxT("+BP"), m_Bitmaps[Toolbar_Add_BP]); - _connect_macro_(ID_ADDBP, CBreakPointWindow::OnAddBreakPoint); + Bind(wxEVT_COMMAND_TOOL_CLICKED, &CBreakPointWindow::OnAddBreakPoint, parent, ID_ADDBP); // Add memory breakpoints if you can use them if (Memory::AreMemoryBreakpointsActivated()) { AddTool(ID_ADDMC, wxT("+MC"), m_Bitmaps[Toolbar_Add_MC]); - _connect_macro_(ID_ADDMC, CBreakPointWindow::OnAddMemoryCheck); + Bind(wxEVT_COMMAND_TOOL_CLICKED, &CBreakPointWindow::OnAddMemoryCheck, parent, ID_ADDMC); } AddTool(ID_LOAD, wxT("Load"), m_Bitmaps[Toolbar_Delete]); - _connect_macro_(ID_LOAD, CBreakPointWindow::LoadAll); + Bind(wxEVT_COMMAND_TOOL_CLICKED, &CBreakPointWindow::LoadAll, parent, ID_LOAD); AddTool(ID_SAVE, wxT("Save"), m_Bitmaps[Toolbar_Delete]); - _connect_macro_(ID_SAVE, CBreakPointWindow::Event_SaveAll); + Bind(wxEVT_COMMAND_TOOL_CLICKED, &CBreakPointWindow::Event_SaveAll, parent, ID_SAVE); } private: -- cgit v1.2.3 From 5dbc3b32197bdac2037f7ba261adbf15303c98a0 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 03:33:11 -0600 Subject: replace this->Bind with Bind --- Source/Core/DolphinWX/Src/VideoConfigDiag.cpp | 6 +++--- Source/Plugins/Plugin_VideoSoftware/Src/VideoConfigDialog.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp index 83b1d64c4c..f099272686 100644 --- a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp @@ -25,7 +25,7 @@ SettingCheckBox::BoolSetting(wxWindow* parent, const wxString& label, const wxSt { SetToolTip(tooltip); SetValue(m_setting ^ m_reverse); - this->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &SettingCheckBox::UpdateValue, this); + Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &SettingCheckBox::UpdateValue, this); } template <> @@ -36,7 +36,7 @@ SettingRadioButton::BoolSetting(wxWindow* parent, const wxString& label, const w { SetToolTip(tooltip); SetValue(m_setting ^ m_reverse); - this->Bind(wxEVT_COMMAND_RADIOBUTTON_SELECTED, &SettingRadioButton::UpdateValue, this); + Bind(wxEVT_COMMAND_RADIOBUTTON_SELECTED, &SettingRadioButton::UpdateValue, this); } SettingChoice::SettingChoice(wxWindow* parent, int &setting, const wxString& tooltip, int num, const wxString choices[], long style) @@ -45,7 +45,7 @@ SettingChoice::SettingChoice(wxWindow* parent, int &setting, const wxString& too { SetToolTip(tooltip); Select(m_setting); - this->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &SettingChoice::UpdateValue, this); + Bind(wxEVT_COMMAND_CHOICE_SELECTED, &SettingChoice::UpdateValue, this); } void SettingChoice::UpdateValue(wxCommandEvent& ev) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/VideoConfigDialog.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/VideoConfigDialog.cpp index c18ac28d33..bd085a3edf 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/VideoConfigDialog.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/VideoConfigDialog.cpp @@ -28,7 +28,7 @@ IntegerSetting::IntegerSetting(wxWindow* parent, const wxString& label, T& se { SetRange(minVal, maxVal); SetValue(m_setting); - this->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &IntegerSetting::UpdateValue, this); + Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &IntegerSetting::UpdateValue, this); } -- cgit v1.2.3 From 60a73bcd77a5207a54ff0b1ad4d2d03eee297510 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 11:46:30 -0600 Subject: Replace a bunch of Connect calls with Bind. --- Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp | 40 ++++++++++----------- Source/Core/DolphinWX/Src/TASInputDlg.cpp | 56 ++++++++++++++--------------- 2 files changed, 48 insertions(+), 48 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp index 160aaf211a..b1ed09c139 100644 --- a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp +++ b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp @@ -307,26 +307,26 @@ void FifoPlayerDlg::CreateGUIControls() // Connect Events Connect(wxEVT_PAINT, wxPaintEventHandler(FifoPlayerDlg::OnPaint)); - m_FrameFromCtrl->Connect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnFrameFrom), NULL, this); - m_FrameToCtrl->Connect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnFrameTo), NULL, this); - m_ObjectFromCtrl->Connect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnObjectFrom), NULL, this); - m_ObjectToCtrl->Connect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnObjectTo), NULL, this); - m_EarlyMemoryUpdates->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnCheckEarlyMemoryUpdates), NULL, this); - m_RecordStop->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnRecordStop), NULL, this); - m_Save->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnSaveFile), NULL, this); - m_FramesToRecordCtrl->Connect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnNumFramesToRecord), NULL, this); - Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnCloseClick), NULL, this); - - m_framesList->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(FifoPlayerDlg::OnFrameListSelectionChanged), NULL, this); - m_objectsList->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(FifoPlayerDlg::OnObjectListSelectionChanged), NULL, this); - m_objectCmdList->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(FifoPlayerDlg::OnObjectCmdListSelectionChanged), NULL, this); - - m_beginSearch->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnBeginSearch), NULL, this); - m_findNext->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnFindNextClick), NULL, this); - m_findPrevious->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnFindPreviousClick), NULL, this); - - m_searchField->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(FifoPlayerDlg::OnBeginSearch), NULL, this); - m_searchField->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(FifoPlayerDlg::OnSearchFieldTextChanged), NULL, this); + m_FrameFromCtrl->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnFrameFrom, this); + m_FrameToCtrl->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnFrameTo, this); + m_ObjectFromCtrl->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnObjectFrom, this); + m_ObjectToCtrl->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnObjectTo, this); + m_EarlyMemoryUpdates->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &FifoPlayerDlg::OnCheckEarlyMemoryUpdates, this); + m_RecordStop->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &FifoPlayerDlg::OnRecordStop, this); + m_Save->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &FifoPlayerDlg::OnSaveFile, this); + m_FramesToRecordCtrl->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnNumFramesToRecord, this); + Bind(wxEVT_COMMAND_BUTTON_CLICKED, &FifoPlayerDlg::OnCloseClick, this); + + m_framesList->Bind(wxEVT_COMMAND_LISTBOX_SELECTED, &FifoPlayerDlg::OnFrameListSelectionChanged, this); + m_objectsList->Bind(wxEVT_COMMAND_LISTBOX_SELECTED, &FifoPlayerDlg::OnObjectListSelectionChanged, this); + m_objectCmdList->Bind(wxEVT_COMMAND_LISTBOX_SELECTED, &FifoPlayerDlg::OnObjectCmdListSelectionChanged, this); + + m_beginSearch->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &FifoPlayerDlg::OnBeginSearch, this); + m_findNext->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &FifoPlayerDlg::OnFindNextClick, this); + m_findPrevious->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &FifoPlayerDlg::OnFindPreviousClick, this); + + m_searchField->Bind(wxEVT_COMMAND_TEXT_ENTER, &FifoPlayerDlg::OnBeginSearch, this); + m_searchField->Bind(wxEVT_COMMAND_TEXT_UPDATED, &FifoPlayerDlg::OnSearchFieldTextChanged, this); // Setup command copying wxAcceleratorEntry entry; diff --git a/Source/Core/DolphinWX/Src/TASInputDlg.cpp b/Source/Core/DolphinWX/Src/TASInputDlg.cpp index b4f4c77397..51b340c55a 100644 --- a/Source/Core/DolphinWX/Src/TASInputDlg.cpp +++ b/Source/Core/DolphinWX/Src/TASInputDlg.cpp @@ -54,8 +54,8 @@ TASInputDlg::TASInputDlg(wxWindow *parent, wxWindowID id, const wxString &title, wxBoxSizer* const main_stick_box = new wxBoxSizer(wxVERTICAL); static_bitmap_main = new wxStaticBitmap(this, ID_MAIN_STICK, TASInputDlg::CreateStickBitmap(128,128), wxDefaultPosition, wxDefaultSize); - static_bitmap_main->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(TASInputDlg::OnMouseUpL), NULL, this); - static_bitmap_main->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(TASInputDlg::OnMouseUpR), NULL, this); + static_bitmap_main->Bind(wxEVT_LEFT_UP, &TASInputDlg::OnMouseUpL, this); + static_bitmap_main->Bind(wxEVT_RIGHT_UP, &TASInputDlg::OnMouseUpR, this); wx_mainX_s = new wxSlider(this, ID_MAIN_X_SLIDER, 128, 0, 255, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL); wx_mainX_s->SetMinSize(wxSize(120,-1)); wx_mainX_t = new wxTextCtrl(this, ID_MAIN_X_TEXT, wxT("128"), wxDefaultPosition, wxSize(40, 20)); @@ -80,8 +80,8 @@ TASInputDlg::TASInputDlg(wxWindow *parent, wxWindowID id, const wxString &title, wxBoxSizer* const c_stick_box = new wxBoxSizer(wxVERTICAL); static_bitmap_c = new wxStaticBitmap(this, ID_C_STICK, TASInputDlg::CreateStickBitmap(128,128), wxDefaultPosition, wxDefaultSize); - static_bitmap_c->Connect(wxEVT_LEFT_UP, wxMouseEventHandler(TASInputDlg::OnMouseUpL), NULL, this); - static_bitmap_c->Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(TASInputDlg::OnMouseUpR), NULL, this); + static_bitmap_c->Bind(wxEVT_LEFT_UP, &TASInputDlg::OnMouseUpL, this); + static_bitmap_c->Bind(wxEVT_RIGHT_UP, &TASInputDlg::OnMouseUpR, this); wx_cX_s = new wxSlider(this, ID_C_X_SLIDER, 128, 0, 255, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL); wx_cX_s->SetMinSize(wxSize(120,-1)); wx_cX_t = new wxTextCtrl(this, ID_C_X_TEXT, wxT("128"), wxDefaultPosition, wxSize(40, 20)); @@ -120,29 +120,29 @@ TASInputDlg::TASInputDlg(wxWindow *parent, wxWindowID id, const wxString &title, wxGridSizer* const buttons_grid = new wxGridSizer(4); wx_a_button = new wxCheckBox(this,ID_A,_T("A"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_a_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_a_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_a_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_a_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_b_button = new wxCheckBox(this,ID_B,_T("B"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_b_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_b_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_b_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_b_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_x_button = new wxCheckBox(this,ID_X,_T("X"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_x_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_x_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_x_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_x_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_y_button = new wxCheckBox(this,ID_Y,_T("Y"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_y_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_y_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_y_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_y_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_l_button = new wxCheckBox(this,ID_L,_T("L"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_l_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_l_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_l_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_l_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_r_button = new wxCheckBox(this,ID_R,_T("R"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_r_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_r_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_r_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_r_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_z_button = new wxCheckBox(this,ID_Z,_T("Z"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_z_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_z_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_z_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_z_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_start_button = new wxCheckBox(this,ID_START,_T("Start"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_start_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_start_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_start_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_start_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); buttons_grid->Add(wx_a_button,false); buttons_grid->Add(wx_b_button,false); @@ -157,17 +157,17 @@ TASInputDlg::TASInputDlg(wxWindow *parent, wxWindowID id, const wxString &title, wxGridSizer* const buttons_dpad = new wxGridSizer(3); wx_up_button = new wxCheckBox(this,ID_UP,_T("Up"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_up_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_up_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_up_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_up_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_right_button = new wxCheckBox(this,ID_RIGHT,_T("Right"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_right_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_right_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_right_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_right_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_down_button = new wxCheckBox(this,ID_DOWN,_T("Down"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_down_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_down_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_down_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_down_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); wx_left_button = new wxCheckBox(this,ID_LEFT,_T("Left"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,wxCheckBoxNameStr); - wx_left_button->Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurbo), NULL, this); - wx_left_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(TASInputDlg::SetTurboFalse), NULL, this); + wx_left_button->Bind(wxEVT_RIGHT_DOWN, &TASInputDlg::SetTurbo, this); + wx_left_button->Bind(wxEVT_LEFT_DOWN, &TASInputDlg::SetTurboFalse, this); buttons_dpad->AddSpacer(20); buttons_dpad->Add(wx_up_button,false); -- cgit v1.2.3 From 70427b3f3583ee2588a007a3ac62b929bdb89325 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 12:07:45 -0600 Subject: Replace all of Connect/Disconnect with Bind/Unbind. --- Source/Core/DolphinWX/Src/CheatsWindow.cpp | 8 +-- Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp | 44 +++++++------- Source/Core/DolphinWX/Src/FifoPlayerDlg.h | 4 +- Source/Core/DolphinWX/Src/Frame.cpp | 4 +- Source/Core/DolphinWX/Src/FrameAui.cpp | 8 +-- Source/Core/DolphinWX/Src/FrameTools.cpp | 80 +++++++------------------ Source/Core/DolphinWX/Src/GCMicDlg.cpp | 8 +-- Source/Core/DolphinWX/Src/HotkeyDlg.cpp | 8 +-- Source/Core/DolphinWX/Src/ISOProperties.cpp | 3 +- Source/Core/DolphinWX/Src/InputConfigDiag.cpp | 4 +- Source/Core/DolphinWX/Src/MemcardManager.h | 6 +- Source/Core/DolphinWX/Src/VideoConfigDiag.cpp | 8 +-- Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp | 4 +- 13 files changed, 69 insertions(+), 120 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/CheatsWindow.cpp b/Source/Core/DolphinWX/Src/CheatsWindow.cpp index b07d9d9571..63ddced86b 100644 --- a/Source/Core/DolphinWX/Src/CheatsWindow.cpp +++ b/Source/Core/DolphinWX/Src/CheatsWindow.cpp @@ -136,7 +136,7 @@ void wxCheatsWindow::Init_ChildControls() wxButton* const button_cancel = new wxButton(panel, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize); button_cancel->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &wxCheatsWindow::OnEvent_ButtonClose_Press, this); - Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, wxCloseEventHandler(wxCheatsWindow::OnEvent_Close), (wxObject*)0, this); + Bind(wxEVT_CLOSE_WINDOW, &wxCheatsWindow::OnEvent_Close, this); wxStdDialogButtonSizer* const sButtons = new wxStdDialogButtonSizer(); sButtons->AddButton(button_apply); @@ -588,9 +588,9 @@ CreateCodeDialog::CreateCodeDialog(wxWindow* const parent, const u32 address) sizer_main->Add(textctrl_value, 0, wxALL, 5); sizer_main->Add(CreateButtonSizer(wxOK | wxCANCEL | wxNO_DEFAULT), 0, wxALL, 5); - Connect(wxID_OK, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CreateCodeDialog::PressOK)); - Connect(wxID_CANCEL, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(CreateCodeDialog::PressCancel)); - Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, wxCloseEventHandler(CreateCodeDialog::OnEvent_Close), (wxObject*)0, this); + Bind(wxEVT_COMMAND_BUTTON_CLICKED, &CreateCodeDialog::PressOK, this, wxID_OK); + Bind(wxEVT_COMMAND_BUTTON_CLICKED, &CreateCodeDialog::PressCancel, this, wxID_CANCEL); + Bind(wxEVT_CLOSE_WINDOW, &CreateCodeDialog::OnEvent_Close, this); SetSizerAndFit(sizer_main); SetFocus(); diff --git a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp index b1ed09c139..d33f507282 100644 --- a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp +++ b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp @@ -56,24 +56,24 @@ FifoPlayerDlg::FifoPlayerDlg(wxWindow * const parent) : FifoPlayerDlg::~FifoPlayerDlg() { - Disconnect(RECORDING_FINISHED_EVENT, wxCommandEventHandler(FifoPlayerDlg::OnRecordingFinished), NULL, this); - Disconnect(FRAME_WRITTEN_EVENT, wxCommandEventHandler(FifoPlayerDlg::OnFrameWritten), NULL, this); + Unbind(RECORDING_FINISHED_EVENT, &FifoPlayerDlg::OnRecordingFinished, this); + Unbind(FRAME_WRITTEN_EVENT, &FifoPlayerDlg::OnFrameWritten, this); // Disconnect Events - Disconnect(wxEVT_PAINT, wxPaintEventHandler(FifoPlayerDlg::OnPaint), NULL, this); - m_FrameFromCtrl->Disconnect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnFrameFrom), NULL, this); - m_FrameToCtrl->Disconnect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnFrameTo), NULL, this); - m_ObjectFromCtrl->Disconnect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnObjectFrom), NULL, this); - m_ObjectToCtrl->Disconnect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnObjectTo), NULL, this); - m_EarlyMemoryUpdates->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnCheckEarlyMemoryUpdates), NULL, this); - m_RecordStop->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnRecordStop), NULL, this); - m_Save->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnSaveFile), NULL, this); - m_FramesToRecordCtrl->Disconnect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(FifoPlayerDlg::OnNumFramesToRecord), NULL, this); - m_Close->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FifoPlayerDlg::OnCloseClick), NULL, this); - - m_framesList->Disconnect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(FifoPlayerDlg::OnFrameListSelectionChanged), NULL, this); - m_objectsList->Disconnect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(FifoPlayerDlg::OnObjectListSelectionChanged), NULL, this); - m_objectCmdList->Disconnect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(FifoPlayerDlg::OnObjectCmdListSelectionChanged), NULL, this); + Unbind(wxEVT_PAINT, &FifoPlayerDlg::OnPaint, this); + m_FrameFromCtrl->Unbind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnFrameFrom, this); + m_FrameToCtrl->Unbind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnFrameTo, this); + m_ObjectFromCtrl->Unbind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnObjectFrom, this); + m_ObjectToCtrl->Unbind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnObjectTo, this); + m_EarlyMemoryUpdates->Unbind(wxEVT_COMMAND_CHECKBOX_CLICKED, &FifoPlayerDlg::OnCheckEarlyMemoryUpdates, this); + m_RecordStop->Unbind(wxEVT_COMMAND_BUTTON_CLICKED, &FifoPlayerDlg::OnRecordStop, this); + m_Save->Unbind(wxEVT_COMMAND_BUTTON_CLICKED, &FifoPlayerDlg::OnSaveFile, this); + m_FramesToRecordCtrl->Unbind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnNumFramesToRecord, this); + m_Close->Unbind(wxEVT_COMMAND_BUTTON_CLICKED, &FifoPlayerDlg::OnCloseClick, this); + + m_framesList->Unbind(wxEVT_COMMAND_LISTBOX_SELECTED, &FifoPlayerDlg::OnFrameListSelectionChanged, this); + m_objectsList->Unbind(wxEVT_COMMAND_LISTBOX_SELECTED, &FifoPlayerDlg::OnObjectListSelectionChanged, this); + m_objectCmdList->Unbind(wxEVT_COMMAND_LISTBOX_SELECTED, &FifoPlayerDlg::OnObjectCmdListSelectionChanged, this); FifoPlayer::GetInstance().SetFrameWrittenCallback(NULL); @@ -306,7 +306,7 @@ void FifoPlayerDlg::CreateGUIControls() Center(wxBOTH); // Connect Events - Connect(wxEVT_PAINT, wxPaintEventHandler(FifoPlayerDlg::OnPaint)); + Bind(wxEVT_PAINT, &FifoPlayerDlg::OnPaint, this); m_FrameFromCtrl->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnFrameFrom, this); m_FrameToCtrl->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnFrameTo, this); m_ObjectFromCtrl->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &FifoPlayerDlg::OnObjectFrom, this); @@ -333,10 +333,10 @@ void FifoPlayerDlg::CreateGUIControls() entry.Set(wxACCEL_CTRL, (int)'C', wxID_COPY); wxAcceleratorTable accel(1, &entry); m_objectCmdList->SetAcceleratorTable(accel); - m_objectCmdList->Connect(wxID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FifoPlayerDlg::OnObjectCmdListSelectionCopy), NULL, this); + m_objectCmdList->Bind(wxEVT_COMMAND_MENU_SELECTED, &FifoPlayerDlg::OnObjectCmdListSelectionCopy, this, wxID_COPY); - Connect(RECORDING_FINISHED_EVENT, wxCommandEventHandler(FifoPlayerDlg::OnRecordingFinished), NULL, this); - Connect(FRAME_WRITTEN_EVENT, wxCommandEventHandler(FifoPlayerDlg::OnFrameWritten), NULL, this); + Bind(RECORDING_FINISHED_EVENT, &FifoPlayerDlg::OnRecordingFinished, this); + Bind(FRAME_WRITTEN_EVENT, &FifoPlayerDlg::OnFrameWritten, this); Show(); } @@ -784,7 +784,7 @@ void FifoPlayerDlg::OnCloseClick(wxCommandEvent& WXUNUSED(event)) Hide(); } -void FifoPlayerDlg::OnRecordingFinished(wxCommandEvent& WXUNUSED(event)) +void FifoPlayerDlg::OnRecordingFinished(wxEvent&) { m_RecordStop->SetLabel(_("Record")); m_RecordStop->Enable(); @@ -792,7 +792,7 @@ void FifoPlayerDlg::OnRecordingFinished(wxCommandEvent& WXUNUSED(event)) UpdateRecorderGui(); } -void FifoPlayerDlg::OnFrameWritten(wxCommandEvent& WXUNUSED(event)) +void FifoPlayerDlg::OnFrameWritten(wxEvent&) { m_CurrentFrameLabel->SetLabel(CreateCurrentFrameLabel()); m_NumObjectsLabel->SetLabel(CreateFileObjectCountLabel()); diff --git a/Source/Core/DolphinWX/Src/FifoPlayerDlg.h b/Source/Core/DolphinWX/Src/FifoPlayerDlg.h index eb5f9a33e9..f00af6119b 100644 --- a/Source/Core/DolphinWX/Src/FifoPlayerDlg.h +++ b/Source/Core/DolphinWX/Src/FifoPlayerDlg.h @@ -51,8 +51,8 @@ private: void OnSearchFieldTextChanged(wxCommandEvent& event); void ChangeSearchResult(unsigned int result_idx); - void OnRecordingFinished(wxCommandEvent& event); - void OnFrameWritten(wxCommandEvent& event); + void OnRecordingFinished(wxEvent& event); + void OnFrameWritten(wxEvent& event); void OnFrameListSelectionChanged(wxCommandEvent& event); void OnObjectListSelectionChanged(wxCommandEvent& event); diff --git a/Source/Core/DolphinWX/Src/Frame.cpp b/Source/Core/DolphinWX/Src/Frame.cpp index 750696f6c7..e45544c5eb 100644 --- a/Source/Core/DolphinWX/Src/Frame.cpp +++ b/Source/Core/DolphinWX/Src/Frame.cpp @@ -424,9 +424,7 @@ CFrame::CFrame(wxFrame* parent, // ------------------------- // Connect event handlers - m_Mgr->Connect(wxID_ANY, wxEVT_AUI_RENDER, // Resize - wxAuiManagerEventHandler(CFrame::OnManagerResize), - (wxObject*)0, this); + m_Mgr->Bind(wxEVT_AUI_RENDER, &CFrame::OnManagerResize, this); // ---------- // Update controls diff --git a/Source/Core/DolphinWX/Src/FrameAui.cpp b/Source/Core/DolphinWX/Src/FrameAui.cpp index 503d6994af..0550c5cd39 100644 --- a/Source/Core/DolphinWX/Src/FrameAui.cpp +++ b/Source/Core/DolphinWX/Src/FrameAui.cpp @@ -1004,15 +1004,11 @@ wxFrame * CFrame::CreateParentFrame(wxWindowID Id, const wxString& Title, m_MainSizer->Add(Child, 1, wxEXPAND); - Frame->Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, - wxCloseEventHandler(CFrame::OnFloatingPageClosed), - (wxObject*)0, this); + Frame->Bind(wxEVT_CLOSE_WINDOW, &CFrame::OnFloatingPageClosed, this); if (Id == IDM_CONSOLEWINDOW_PARENT) { - Frame->Connect(wxID_ANY, wxEVT_SIZE, - wxSizeEventHandler(CFrame::OnFloatingPageSize), - (wxObject*)0, this); + Frame->Bind(wxEVT_SIZE, &CFrame::OnFloatingPageSize, this); } // Main sizer diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index d4cf35b121..6846150359 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -958,15 +958,9 @@ void CFrame::StartGame(const std::string& filename) wxSize size(SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowWidth, SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowHeight); m_RenderFrame->SetClientSize(size.GetWidth(), size.GetHeight()); - m_RenderFrame->Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, - wxCloseEventHandler(CFrame::OnRenderParentClose), - (wxObject*)0, this); - m_RenderFrame->Connect(wxID_ANY, wxEVT_ACTIVATE, - wxActivateEventHandler(CFrame::OnActive), - (wxObject*)0, this); - m_RenderFrame->Connect(wxID_ANY, wxEVT_MOVE, - wxMoveEventHandler(CFrame::OnRenderParentMove), - (wxObject*)0, this); + m_RenderFrame->Bind(wxEVT_CLOSE_WINDOW, &CFrame::OnRenderParentClose, this); + m_RenderFrame->Bind(wxEVT_ACTIVATE, &CFrame::OnActive, this); + m_RenderFrame->Bind(wxEVT_MOVE, &CFrame::OnRenderParentMove, this); m_RenderParent = new CPanel(m_RenderFrame, wxID_ANY); m_RenderFrame->Show(); } @@ -999,30 +993,14 @@ void CFrame::StartGame(const std::string& filename) m_RenderParent->SetFocus(); #endif - wxTheApp->Connect(wxID_ANY, wxEVT_KEY_DOWN, // Keyboard - wxKeyEventHandler(CFrame::OnKeyDown), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_KEY_UP, - wxKeyEventHandler(CFrame::OnKeyUp), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_RIGHT_DOWN, // Mouse - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_RIGHT_UP, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_MIDDLE_DOWN, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_MIDDLE_UP, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Connect(wxID_ANY, wxEVT_MOTION, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - m_RenderParent->Connect(wxID_ANY, wxEVT_SIZE, - wxSizeEventHandler(CFrame::OnRenderParentResize), - (wxObject*)0, this); + wxTheApp->Bind(wxEVT_KEY_DOWN, &CFrame::OnKeyDown, this); + wxTheApp->Bind(wxEVT_KEY_UP, &CFrame::OnKeyUp, this); + wxTheApp->Bind(wxEVT_RIGHT_DOWN, &CFrame::OnMouse, this); + wxTheApp->Bind(wxEVT_RIGHT_UP, &CFrame::OnMouse, this); + wxTheApp->Bind(wxEVT_MIDDLE_DOWN, &CFrame::OnMouse, this); + wxTheApp->Bind(wxEVT_MIDDLE_UP, &CFrame::OnMouse, this); + wxTheApp->Bind(wxEVT_MOTION, &CFrame::OnMouse, this); + m_RenderParent->Bind(wxEVT_SIZE, &CFrame::OnRenderParentResize, this); } wxEndBusyCursor(); @@ -1125,30 +1103,18 @@ void CFrame::DoStop() m_RenderFrame->SetTitle(wxString::FromAscii(scm_rev_str)); // Destroy the renderer frame when not rendering to main - m_RenderParent->Disconnect(wxID_ANY, wxEVT_SIZE, - wxSizeEventHandler(CFrame::OnRenderParentResize), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_KEY_DOWN, // Keyboard - wxKeyEventHandler(CFrame::OnKeyDown), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_KEY_UP, - wxKeyEventHandler(CFrame::OnKeyUp), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_RIGHT_DOWN, // Mouse - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_RIGHT_UP, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_MIDDLE_DOWN, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_MIDDLE_UP, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); - wxTheApp->Disconnect(wxID_ANY, wxEVT_MOTION, - wxMouseEventHandler(CFrame::OnMouse), - (wxObject*)0, this); + m_RenderParent->Unbind(wxEVT_SIZE, &CFrame::OnRenderParentResize, this); + + // Keyboard + wxTheApp->Unbind(wxEVT_KEY_DOWN, &CFrame::OnKeyDown, this); + wxTheApp->Unbind(wxEVT_KEY_UP, &CFrame::OnKeyUp, this); + + // Mouse + wxTheApp->Unbind(wxEVT_RIGHT_DOWN, &CFrame::OnMouse, this); + wxTheApp->Unbind(wxEVT_RIGHT_UP, &CFrame::OnMouse, this); + wxTheApp->Unbind(wxEVT_MIDDLE_DOWN, &CFrame::OnMouse, this); + wxTheApp->Unbind(wxEVT_MIDDLE_UP, &CFrame::OnMouse, this); + wxTheApp->Unbind(wxEVT_MOTION, &CFrame::OnMouse, this); if (SConfig::GetInstance().m_LocalCoreStartupParameter.bHideCursor) m_RenderParent->SetCursor(wxNullCursor); DoFullscreen(false); diff --git a/Source/Core/DolphinWX/Src/GCMicDlg.cpp b/Source/Core/DolphinWX/Src/GCMicDlg.cpp index 1cdd166cf5..ddf804b57b 100644 --- a/Source/Core/DolphinWX/Src/GCMicDlg.cpp +++ b/Source/Core/DolphinWX/Src/GCMicDlg.cpp @@ -56,9 +56,7 @@ void GCMicDialog::SaveButtonMapping(int Id, int Key, int Modkey) void GCMicDialog::EndGetButtons(void) { - wxTheApp->Disconnect(wxID_ANY, wxEVT_KEY_DOWN, // Keyboard - wxKeyEventHandler(GCMicDialog::OnKeyDown), - (wxObject*)0, this); + wxTheApp->Unbind(wxEVT_KEY_DOWN, &GCMicDialog::OnKeyDown, this); m_ButtonMappingTimer->Stop(); GetButtonWaitingTimer = 0; GetButtonWaitingID = 0; @@ -153,9 +151,7 @@ void GCMicDialog::OnButtonClick(wxCommandEvent& event) if (m_ButtonMappingTimer->IsRunning()) return; - wxTheApp->Connect(wxID_ANY, wxEVT_KEY_DOWN, // Keyboard - wxKeyEventHandler(GCMicDialog::OnKeyDown), - (wxObject*)0, this); + wxTheApp->Bind(wxEVT_KEY_DOWN, &GCMicDialog::OnKeyDown, this); // Get the button ClickedButton = (wxButton *)event.GetEventObject(); diff --git a/Source/Core/DolphinWX/Src/HotkeyDlg.cpp b/Source/Core/DolphinWX/Src/HotkeyDlg.cpp index ecd4f49ace..c214fac466 100644 --- a/Source/Core/DolphinWX/Src/HotkeyDlg.cpp +++ b/Source/Core/DolphinWX/Src/HotkeyDlg.cpp @@ -56,9 +56,7 @@ void HotkeyConfigDialog::SaveButtonMapping(int Id, int Key, int Modkey) void HotkeyConfigDialog::EndGetButtons(void) { - wxTheApp->Disconnect(wxID_ANY, wxEVT_KEY_DOWN, // Keyboard - wxKeyEventHandler(HotkeyConfigDialog::OnKeyDown), - (wxObject*)0, this); + wxTheApp->Unbind(wxEVT_KEY_DOWN, &HotkeyConfigDialog::OnKeyDown, this); m_ButtonMappingTimer->Stop(); GetButtonWaitingTimer = 0; GetButtonWaitingID = 0; @@ -153,9 +151,7 @@ void HotkeyConfigDialog::OnButtonClick(wxCommandEvent& event) if (m_ButtonMappingTimer->IsRunning()) return; - wxTheApp->Connect(wxID_ANY, wxEVT_KEY_DOWN, // Keyboard - wxKeyEventHandler(HotkeyConfigDialog::OnKeyDown), - (wxObject*)0, this); + wxTheApp->Bind(wxEVT_KEY_DOWN, &HotkeyConfigDialog::OnKeyDown, this); // Get the button ClickedButton = (wxButton *)event.GetEventObject(); diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp index 0b75b03d59..f06b3daa8a 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.cpp +++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp @@ -212,8 +212,7 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW // Here we set all the info to be shown (be it SJIS or Ascii) + we set the window title ChangeBannerDetails((int)SConfig::GetInstance().m_LocalCoreStartupParameter.SelectedLanguage); m_Banner->SetBitmap(OpenGameListItem->GetImage()); - m_Banner->Connect(wxID_ANY, wxEVT_RIGHT_DOWN, - wxMouseEventHandler(CISOProperties::RightClickOnBanner), (wxObject*)NULL, this); + m_Banner->Bind(wxEVT_RIGHT_DOWN, &CISOProperties::RightClickOnBanner, this); // Filesystem browser/dumper // TODO : Should we add a way to browse the wad file ? diff --git a/Source/Core/DolphinWX/Src/InputConfigDiag.cpp b/Source/Core/DolphinWX/Src/InputConfigDiag.cpp index 3994660686..8cdd2e16cb 100644 --- a/Source/Core/DolphinWX/Src/InputConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/InputConfigDiag.cpp @@ -971,7 +971,7 @@ InputConfigDialog::InputConfigDialog(wxWindow* const parent, InputPlugin& plugin UpdateDeviceComboBox(); UpdateProfileComboBox(); - Connect(wxID_OK, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(InputConfigDialog::ClickSave)); + Bind(wxEVT_COMMAND_BUTTON_CLICKED, &InputConfigDialog::ClickSave, this, wxID_OK); wxBoxSizer* const szr = new wxBoxSizer(wxVERTICAL); szr->Add(m_pad_notebook, 0, wxEXPAND|wxTOP|wxLEFT|wxRIGHT, 5); @@ -982,7 +982,7 @@ InputConfigDialog::InputConfigDialog(wxWindow* const parent, InputPlugin& plugin // live preview update timer m_update_timer = new wxTimer(this, -1); - Connect(wxID_ANY, wxEVT_TIMER, wxTimerEventHandler(InputConfigDialog::UpdateBitmaps), (wxObject*)0, this); + Bind(wxEVT_TIMER, &InputConfigDialog::UpdateBitmaps, this); m_update_timer->Start(PREVIEW_UPDATE_TIME, wxTIMER_CONTINUOUS); } diff --git a/Source/Core/DolphinWX/Src/MemcardManager.h b/Source/Core/DolphinWX/Src/MemcardManager.h index beff71b671..537b0eb111 100644 --- a/Source/Core/DolphinWX/Src/MemcardManager.h +++ b/Source/Core/DolphinWX/Src/MemcardManager.h @@ -149,13 +149,11 @@ class CMemcardManager : public wxDialog : wxListCtrl(parent, id, pos, size, style) , __mcmSettings(_mcmSetngs) { - Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler( - CMemcardListCtrl::OnRightClick)); + Bind(wxEVT_RIGHT_DOWN, &CMemcardListCtrl::OnRightClick, this); } ~CMemcardListCtrl() { - Disconnect(wxEVT_RIGHT_DOWN, wxMouseEventHandler( - CMemcardListCtrl::OnRightClick)); + Unbind(wxEVT_RIGHT_DOWN, &CMemcardListCtrl::OnRightClick, this); } _mcmSettings & __mcmSettings; bool prevPage, diff --git a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp index f099272686..71c4c1ac93 100644 --- a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp @@ -188,7 +188,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con { vconfig.Load((File::GetUserPath(D_CONFIG_IDX) + ininame + ".ini").c_str()); - Connect(wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(VideoConfigDiag::OnUpdateUI), NULL, this); + Bind(wxEVT_UPDATE_UI, &VideoConfigDiag::OnUpdateUI, this); wxNotebook* const notebook = new wxNotebook(this, -1, wxDefaultPosition, wxDefaultSize); @@ -579,7 +579,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con wxButton* const btn_close = new wxButton(this, wxID_OK, _("Close"), wxDefaultPosition); btn_close->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &VideoConfigDiag::Event_ClickClose, this); - Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, wxCloseEventHandler(VideoConfigDiag::Event_Close), (wxObject*)0, this); + Bind(wxEVT_CLOSE_WINDOW, &VideoConfigDiag::Event_Close, this); wxBoxSizer* const szr_main = new wxBoxSizer(wxVERTICAL); szr_main->Add(notebook, 1, wxEXPAND | wxALL, 5); @@ -627,8 +627,8 @@ SettingRadioButton* VideoConfigDiag::CreateRadioButton(wxWindow* parent, const w wxControl* VideoConfigDiag::RegisterControl(wxControl* const control, const wxString& description) { ctrl_descs.insert(std::pair(control, description)); - control->Connect(wxID_ANY, wxEVT_ENTER_WINDOW, wxMouseEventHandler(VideoConfigDiag::Evt_EnterControl), NULL, this); - control->Connect(wxID_ANY, wxEVT_LEAVE_WINDOW, wxMouseEventHandler(VideoConfigDiag::Evt_LeaveControl), NULL, this); + control->Bind(wxEVT_ENTER_WINDOW, &VideoConfigDiag::Evt_EnterControl, this); + control->Bind(wxEVT_LEAVE_WINDOW, &VideoConfigDiag::Evt_LeaveControl, this); return control; } diff --git a/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp b/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp index d94c099531..22914366b0 100644 --- a/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp @@ -173,8 +173,8 @@ WiimoteConfigDiag::WiimoteConfigDiag(wxWindow* const parent, InputPlugin& plugin main_sizer->Add(general_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, 5); main_sizer->Add(CreateButtonSizer(wxOK | wxCANCEL), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, 5); - Connect(wxID_OK, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(WiimoteConfigDiag::Save)); - Connect(wxID_CANCEL, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(WiimoteConfigDiag::Cancel)); + Bind(wxEVT_COMMAND_BUTTON_CLICKED, &WiimoteConfigDiag::Save, this, wxID_OK); + Bind(wxEVT_COMMAND_BUTTON_CLICKED, &WiimoteConfigDiag::Cancel, this, wxID_CANCEL); SetSizerAndFit(main_sizer); Center(); -- cgit v1.2.3 From 6b8dc6802ba2303f039919be48ba59caeb411dd7 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 12:57:17 -0600 Subject: Fix two warnings. --- Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp | 2 +- Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp b/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp index a6467f0366..dd94295859 100644 --- a/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp +++ b/Source/Core/Core/Src/FifoPlayer/FifoRecordAnalyzer.cpp @@ -151,7 +151,7 @@ void FifoRecordAnalyzer::ProcessLoadTlut1() void FifoRecordAnalyzer::ProcessPreloadTexture() { BPS_TmemConfig& tmem_cfg = m_BpMem->tmem_config; - u32 tmem_addr = tmem_cfg.preload_tmem_even * TMEM_LINE_SIZE; + //u32 tmem_addr = tmem_cfg.preload_tmem_even * TMEM_LINE_SIZE; u32 size = tmem_cfg.preload_tile_info.count * TMEM_LINE_SIZE; // TODO: Should this be half size for RGBA8 preloads? FifoRecorder::GetInstance().WriteMemory(tmem_cfg.preload_addr << 5, size, MemoryUpdate::TMEM); diff --git a/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp b/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp index fa30ba5c62..dad0c6bbf8 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/Xlib/Xlib.cpp @@ -115,7 +115,6 @@ KeyboardMouse::Key::Key(Display* const display, KeyCode keycode, const char* key ControlState KeyboardMouse::Key::GetState() const { - const KeyCode shift = XKeysymToKeycode(m_display, XK_Shift_L); return (m_keyboard[m_keycode / 8] & (1 << (m_keycode % 8))) != 0; } -- cgit v1.2.3 From 6b3a3ff0540b9a4df4f75b35842da70faa6d35b4 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 9 Jan 2013 23:42:16 -0600 Subject: Kill theme selection from GUI. --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 25 ------------------------- Source/Core/DolphinWX/Src/ConfigMain.h | 3 --- 2 files changed, 28 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 12deddb572..0277a117ea 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -127,7 +127,6 @@ EVT_SLIDER(ID_VOLUME, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_INTERFACE_CONFIRMSTOP, CConfigMain::DisplaySettingsChanged) EVT_CHECKBOX(ID_INTERFACE_USEPANICHANDLERS, CConfigMain::DisplaySettingsChanged) EVT_CHECKBOX(ID_INTERFACE_ONSCREENDISPLAYMESSAGES, CConfigMain::DisplaySettingsChanged) -EVT_CHOICE(ID_INTERFACE_THEME, CConfigMain::DisplaySettingsChanged) EVT_CHOICE(ID_INTERFACE_LANG, CConfigMain::DisplaySettingsChanged) EVT_BUTTON(ID_HOTKEY_CONFIG, CConfigMain::DisplaySettingsChanged) @@ -253,14 +252,6 @@ void CConfigMain::InitializeGUILists() arrayStringFor_DSPEngine.Add(_("DSP LLE recompiler")); arrayStringFor_DSPEngine.Add(_("DSP LLE interpreter (slow)")); - - // Display page - // Themes - arrayStringFor_Themes.Add(wxT("Boomy")); - arrayStringFor_Themes.Add(wxT("Vista")); - arrayStringFor_Themes.Add(wxT("X-Plastik")); - arrayStringFor_Themes.Add(wxT("KDE")); - // Gamecube page // GC Language arrayStrings arrayStringFor_GCSystemLang.Add(_("English")); @@ -340,7 +331,6 @@ void CConfigMain::InitializeGUIValues() ConfirmStop->SetValue(startup_params.bConfirmStop); UsePanicHandlers->SetValue(startup_params.bUsePanicHandlers); OnScreenDisplayMessages->SetValue(startup_params.bOnScreenDisplayMessages); - Theme->SetSelection(startup_params.iTheme); // need redesign for (unsigned int i = 0; i < sizeof(langIds) / sizeof(wxLanguage); i++) { @@ -499,9 +489,6 @@ void CConfigMain::InitializeGUITooltips() UsePanicHandlers->SetToolTip(_("Show a message box when a potentially serious error has occured.\nDisabling this may avoid annoying and non-fatal messages, but it may also mean that Dolphin suddenly crashes without any explanation at all.")); OnScreenDisplayMessages->SetToolTip(_("Show messages on the emulation screen area.\nThese messages include memory card writes, video backend and CPU information, and JIT cache clearing.")); - // Display - Themes: Copyright notice - Theme->SetToolTip(_("Boomy: Milosz Wlazlo [miloszwl@miloszwl.com]\nVista: VistaIcons.com\nX-Plastik: black_rider [ForumW.org]\nKDE: KDE-Look.org")); - InterfaceLang->SetToolTip(_("Change the language of the user interface.\nRequires restart.")); // Audio tooltips @@ -576,9 +563,6 @@ void CConfigMain::CreateGUIControls() // Hotkey configuration HotkeyConfig = new wxButton(DisplayPage, ID_HOTKEY_CONFIG, _("Hotkeys"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator); - // Themes - Theme = new wxChoice(DisplayPage, ID_INTERFACE_THEME, wxDefaultPosition, - wxDefaultSize, arrayStringFor_Themes, 0, wxDefaultValidator); // Interface settings ConfirmStop = new wxCheckBox(DisplayPage, ID_INTERFACE_CONFIRMSTOP, _("Confirm on Stop"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); @@ -592,15 +576,10 @@ void CConfigMain::CreateGUIControls() sInterface->Add(InterfaceLang, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); sInterface->AddStretchSpacer(); sInterface->Add(HotkeyConfig, 0, wxALIGN_RIGHT | wxALL, 5); - wxBoxSizer* scInterface = new wxBoxSizer(wxHORIZONTAL); - scInterface->Add(TEXT_BOX(DisplayPage, _("Theme:")), 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); - scInterface->Add(Theme, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); - scInterface->AddStretchSpacer(); sbInterface = new wxStaticBoxSizer(wxVERTICAL, DisplayPage, _("Interface Settings")); sbInterface->Add(ConfirmStop, 0, wxALL, 5); sbInterface->Add(UsePanicHandlers, 0, wxALL, 5); sbInterface->Add(OnScreenDisplayMessages, 0, wxALL, 5); - sbInterface->Add(scInterface, 0, wxEXPAND | wxALL, 5); sbInterface->Add(sInterface, 0, wxEXPAND | wxALL, 5); sDisplayPage = new wxBoxSizer(wxVERTICAL); sDisplayPage->Add(sbInterface, 0, wxEXPAND | wxALL, 5); @@ -886,10 +865,6 @@ void CConfigMain::DisplaySettingsChanged(wxCommandEvent& event) SConfig::GetInstance().m_LocalCoreStartupParameter.bOnScreenDisplayMessages = OnScreenDisplayMessages->IsChecked(); SetEnableAlert(OnScreenDisplayMessages->IsChecked()); break; - case ID_INTERFACE_THEME: - SConfig::GetInstance().m_LocalCoreStartupParameter.iTheme = Theme->GetSelection(); - main_frame->InitBitmaps(); - break; case ID_INTERFACE_LANG: if (SConfig::GetInstance().m_InterfaceLanguage != langIds[InterfaceLang->GetSelection()]) SuccessAlertT("You must restart Dolphin in order for the change to take effect."); diff --git a/Source/Core/DolphinWX/Src/ConfigMain.h b/Source/Core/DolphinWX/Src/ConfigMain.h index 0e594101df..1c4a87b754 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.h +++ b/Source/Core/DolphinWX/Src/ConfigMain.h @@ -87,7 +87,6 @@ private: ID_INTERFACE_CONFIRMSTOP, ID_INTERFACE_USEPANICHANDLERS, ID_INTERFACE_ONSCREENDISPLAYMESSAGES, - ID_INTERFACE_THEME, ID_INTERFACE_LANG, ID_HOTKEY_CONFIG, @@ -165,7 +164,6 @@ private: wxCheckBox* ConfirmStop; wxCheckBox* UsePanicHandlers; wxCheckBox* OnScreenDisplayMessages; - wxChoice* Theme; wxChoice* InterfaceLang; wxButton* HotkeyConfig; @@ -227,7 +225,6 @@ private: wxArrayString arrayStringFor_CPUEngine; wxArrayString arrayStringFor_DSPEngine; wxArrayString arrayStringFor_FullscreenResolution; - wxArrayString arrayStringFor_Themes; wxArrayString arrayStringFor_InterfaceLang; wxArrayString arrayStringFor_GCSystemLang; wxArrayString arrayStringFor_WiiSensBarPos; -- cgit v1.2.3 From 0c95673478881d7280109f5ad49483816c86b48d Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 9 Jan 2013 23:52:42 -0600 Subject: Kill themes in the config and load pngs from "theme" directory for now. --- Source/Core/Core/Src/ConfigManager.cpp | 2 - Source/Core/Core/Src/CoreParameter.cpp | 1 - Source/Core/Core/Src/CoreParameter.h | 1 - Source/Core/DolphinWX/Src/Frame.h | 9 --- Source/Core/DolphinWX/Src/FrameTools.cpp | 129 +++++-------------------------- 5 files changed, 18 insertions(+), 124 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 180e6c981d..1c353a3a85 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -164,7 +164,6 @@ void SConfig::SaveSettings() ini.Set("Interface", "OnScreenDisplayMessages", m_LocalCoreStartupParameter.bOnScreenDisplayMessages); ini.Set("Interface", "HideCursor", m_LocalCoreStartupParameter.bHideCursor); ini.Set("Interface", "AutoHideCursor", m_LocalCoreStartupParameter.bAutoHideCursor); - ini.Set("Interface", "Theme", m_LocalCoreStartupParameter.iTheme); ini.Set("Interface", "MainWindowPosX", (m_LocalCoreStartupParameter.iPosX == -32000) ? 0 : m_LocalCoreStartupParameter.iPosX); // TODO - HAX ini.Set("Interface", "MainWindowPosY", (m_LocalCoreStartupParameter.iPosY == -32000) ? 0 : m_LocalCoreStartupParameter.iPosY); // TODO - HAX ini.Set("Interface", "MainWindowWidth", m_LocalCoreStartupParameter.iWidth); @@ -302,7 +301,6 @@ void SConfig::LoadSettings() ini.Get("Interface", "OnScreenDisplayMessages", &m_LocalCoreStartupParameter.bOnScreenDisplayMessages, true); ini.Get("Interface", "HideCursor", &m_LocalCoreStartupParameter.bHideCursor, false); ini.Get("Interface", "AutoHideCursor", &m_LocalCoreStartupParameter.bAutoHideCursor, false); - ini.Get("Interface", "Theme", &m_LocalCoreStartupParameter.iTheme, 0); ini.Get("Interface", "MainWindowPosX", &m_LocalCoreStartupParameter.iPosX, 100); ini.Get("Interface", "MainWindowPosY", &m_LocalCoreStartupParameter.iPosY, 100); ini.Get("Interface", "MainWindowWidth", &m_LocalCoreStartupParameter.iWidth, 800); diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index dee2452cb3..a1298ae846 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -59,7 +59,6 @@ SCoreStartupParameter::SCoreStartupParameter() bRenderWindowAutoSize(false), bKeepWindowOnTop(false), bFullscreen(false), bRenderToMain(false), bProgressive(false), bDisableScreenSaver(false), - iTheme(0), iPosX(100), iPosY(100), iWidth(800), iHeight(600) { LoadDefaults(); diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index 8aa6be83e5..516b7d1117 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -136,7 +136,6 @@ struct SCoreStartupParameter bool bFullscreen, bRenderToMain; bool bProgressive, bDisableScreenSaver; - int iTheme; int iPosX, iPosY, iWidth, iHeight; enum EBootBS2 diff --git a/Source/Core/DolphinWX/Src/Frame.h b/Source/Core/DolphinWX/Src/Frame.h index 8c8285f842..45a0eb1ad4 100644 --- a/Source/Core/DolphinWX/Src/Frame.h +++ b/Source/Core/DolphinWX/Src/Frame.h @@ -210,15 +210,6 @@ private: EToolbar_Max }; - enum EBitmapsThemes - { - BOOMY, - VISTA, - XPLASTIK, - KDE, - THEMES_MAX - }; - wxBitmap m_Bitmaps[EToolbar_Max]; wxBitmap m_BitmapsMenu[EToolbar_Max]; diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index 6846150359..3f5c77641e 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -78,23 +78,6 @@ Core::GetWindowHandle(). // Resources extern "C" { #include "../resources/Dolphin.c" // Dolphin icon -#include "../resources/toolbar_browse.c" -#include "../resources/toolbar_file_open.c" -#include "../resources/toolbar_fullscreen.c" -#include "../resources/toolbar_help.c" -#include "../resources/toolbar_pause.c" -#include "../resources/toolbar_play.c" -#include "../resources/toolbar_plugin_dsp.c" -#include "../resources/toolbar_plugin_gfx.c" -#include "../resources/toolbar_plugin_options.c" -#include "../resources/toolbar_plugin_pad.c" -#include "../resources/toolbar_plugin_wiimote.c" -#include "../resources/toolbar_refresh.c" -#include "../resources/toolbar_stop.c" -#include "../resources/Boomy.h" // Theme packages -#include "../resources/Vista.h" -#include "../resources/X-Plastik.h" -#include "../resources/KDE.h" }; bool confirmStop = false; @@ -512,102 +495,26 @@ void CFrame::RecreateToolbar() void CFrame::InitBitmaps() { - // Get selected theme - int Theme = SConfig::GetInstance().m_LocalCoreStartupParameter.iTheme; - - // Save memory by only having one set of bitmaps loaded at any time. I mean, they are still - // in the exe, which is in memory, but at least we wont make another copy of all of them. - switch (Theme) - { - case BOOMY: - { - // These are stored as 48x48 - m_Bitmaps[Toolbar_FileOpen] = wxGetBitmapFromMemory(toolbar_file_open_png); - m_Bitmaps[Toolbar_Refresh] = wxGetBitmapFromMemory(toolbar_refresh_png); - m_Bitmaps[Toolbar_Browse] = wxGetBitmapFromMemory(toolbar_browse_png); - m_Bitmaps[Toolbar_Play] = wxGetBitmapFromMemory(toolbar_play_png); - m_Bitmaps[Toolbar_Stop] = wxGetBitmapFromMemory(toolbar_stop_png); - m_Bitmaps[Toolbar_Pause] = wxGetBitmapFromMemory(toolbar_pause_png); - m_Bitmaps[Toolbar_ConfigMain] = wxGetBitmapFromMemory(toolbar_plugin_options_png); - m_Bitmaps[Toolbar_ConfigGFX] = wxGetBitmapFromMemory(toolbar_plugin_gfx_png); - m_Bitmaps[Toolbar_ConfigDSP] = wxGetBitmapFromMemory(toolbar_plugin_dsp_png); - m_Bitmaps[Toolbar_ConfigPAD] = wxGetBitmapFromMemory(toolbar_plugin_pad_png); - m_Bitmaps[Toolbar_Wiimote] = wxGetBitmapFromMemory(toolbar_plugin_wiimote_png); - m_Bitmaps[Toolbar_Screenshot] = wxGetBitmapFromMemory(toolbar_fullscreen_png); - m_Bitmaps[Toolbar_FullScreen] = wxGetBitmapFromMemory(toolbar_fullscreen_png); - m_Bitmaps[Toolbar_Help] = wxGetBitmapFromMemory(toolbar_help_png); - - // Scale the 48x48 bitmaps to 24x24 - for (size_t n = Toolbar_FileOpen; n < EToolbar_Max; n++) - { - m_Bitmaps[n] = wxBitmap(m_Bitmaps[n].ConvertToImage().Scale(24, 24)); - } - } - break; - - case VISTA: - { - // These are stored as 24x24 and need no scaling - m_Bitmaps[Toolbar_FileOpen] = wxGetBitmapFromMemory(Toolbar_Open1_png); - m_Bitmaps[Toolbar_Refresh] = wxGetBitmapFromMemory(Toolbar_Refresh1_png); - m_Bitmaps[Toolbar_Browse] = wxGetBitmapFromMemory(Toolbar_Browse1_png); - m_Bitmaps[Toolbar_Play] = wxGetBitmapFromMemory(Toolbar_Play1_png); - m_Bitmaps[Toolbar_Stop] = wxGetBitmapFromMemory(Toolbar_Stop1_png); - m_Bitmaps[Toolbar_Pause] = wxGetBitmapFromMemory(Toolbar_Pause1_png); - m_Bitmaps[Toolbar_ConfigMain] = wxGetBitmapFromMemory(Toolbar_Options1_png); - m_Bitmaps[Toolbar_ConfigGFX] = wxGetBitmapFromMemory(Toolbar_Gfx1_png); - m_Bitmaps[Toolbar_ConfigDSP] = wxGetBitmapFromMemory(Toolbar_DSP1_png); - m_Bitmaps[Toolbar_ConfigPAD] = wxGetBitmapFromMemory(Toolbar_Pad1_png); - m_Bitmaps[Toolbar_Wiimote] = wxGetBitmapFromMemory(Toolbar_Wiimote1_png); - m_Bitmaps[Toolbar_Screenshot] = wxGetBitmapFromMemory(Toolbar_Fullscreen1_png); - m_Bitmaps[Toolbar_FullScreen] = wxGetBitmapFromMemory(Toolbar_Fullscreen1_png); - m_Bitmaps[Toolbar_Help] = wxGetBitmapFromMemory(Toolbar_Help1_png); - } - break; - - case XPLASTIK: - { - m_Bitmaps[Toolbar_FileOpen] = wxGetBitmapFromMemory(Toolbar_Open2_png); - m_Bitmaps[Toolbar_Refresh] = wxGetBitmapFromMemory(Toolbar_Refresh2_png); - m_Bitmaps[Toolbar_Browse] = wxGetBitmapFromMemory(Toolbar_Browse2_png); - m_Bitmaps[Toolbar_Play] = wxGetBitmapFromMemory(Toolbar_Play2_png); - m_Bitmaps[Toolbar_Stop] = wxGetBitmapFromMemory(Toolbar_Stop2_png); - m_Bitmaps[Toolbar_Pause] = wxGetBitmapFromMemory(Toolbar_Pause2_png); - m_Bitmaps[Toolbar_ConfigMain] = wxGetBitmapFromMemory(Toolbar_Options2_png); - m_Bitmaps[Toolbar_ConfigGFX] = wxGetBitmapFromMemory(Toolbar_Gfx2_png); - m_Bitmaps[Toolbar_ConfigDSP] = wxGetBitmapFromMemory(Toolbar_DSP2_png); - m_Bitmaps[Toolbar_ConfigPAD] = wxGetBitmapFromMemory(Toolbar_Pad2_png); - m_Bitmaps[Toolbar_Wiimote] = wxGetBitmapFromMemory(Toolbar_Wiimote2_png); - m_Bitmaps[Toolbar_Screenshot] = wxGetBitmapFromMemory(Toolbar_Fullscreen2_png); - m_Bitmaps[Toolbar_FullScreen] = wxGetBitmapFromMemory(Toolbar_Fullscreen2_png); - m_Bitmaps[Toolbar_Help] = wxGetBitmapFromMemory(Toolbar_Help2_png); - } - break; - - case KDE: - { - m_Bitmaps[Toolbar_FileOpen] = wxGetBitmapFromMemory(Toolbar_Open3_png); - m_Bitmaps[Toolbar_Refresh] = wxGetBitmapFromMemory(Toolbar_Refresh3_png); - m_Bitmaps[Toolbar_Browse] = wxGetBitmapFromMemory(Toolbar_Browse3_png); - m_Bitmaps[Toolbar_Play] = wxGetBitmapFromMemory(Toolbar_Play3_png); - m_Bitmaps[Toolbar_Stop] = wxGetBitmapFromMemory(Toolbar_Stop3_png); - m_Bitmaps[Toolbar_Pause] = wxGetBitmapFromMemory(Toolbar_Pause3_png); - m_Bitmaps[Toolbar_ConfigMain] = wxGetBitmapFromMemory(Toolbar_Options3_png); - m_Bitmaps[Toolbar_ConfigGFX] = wxGetBitmapFromMemory(Toolbar_Gfx3_png); - m_Bitmaps[Toolbar_ConfigDSP] = wxGetBitmapFromMemory(Toolbar_DSP3_png); - m_Bitmaps[Toolbar_ConfigPAD] = wxGetBitmapFromMemory(Toolbar_Pad3_png); - m_Bitmaps[Toolbar_Wiimote] = wxGetBitmapFromMemory(Toolbar_Wiimote3_png); - m_Bitmaps[Toolbar_Screenshot] = wxGetBitmapFromMemory(Toolbar_Fullscreen3_png); - m_Bitmaps[Toolbar_FullScreen] = wxGetBitmapFromMemory(Toolbar_Fullscreen3_png); - m_Bitmaps[Toolbar_Help] = wxGetBitmapFromMemory(Toolbar_Help3_png); - } - break; - - default: PanicAlertT("Theme selection went wrong"); - } + wxString dir("theme/"); + + m_Bitmaps[Toolbar_FileOpen].LoadFile(dir + "open.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Refresh].LoadFile(dir + "refresh.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Browse].LoadFile(dir + "browse.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Play].LoadFile(dir + "play.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Stop].LoadFile(dir + "stop.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Pause].LoadFile(dir + "pause.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_ConfigMain].LoadFile(dir + "config.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_ConfigGFX].LoadFile(dir + "graphics.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_ConfigDSP].LoadFile(dir + "dsp.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_ConfigPAD].LoadFile(dir + "gcpad.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Wiimote].LoadFile(dir + "wiimote.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Screenshot].LoadFile(dir + "screenshot.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_FullScreen].LoadFile(dir + "fullscreen.png", wxBITMAP_TYPE_PNG); + m_Bitmaps[Toolbar_Help].LoadFile(dir + "help.png", wxBITMAP_TYPE_PNG); // Update in case the bitmap has been updated - if (m_ToolBar != NULL) RecreateToolbar(); + if (m_ToolBar != NULL) + RecreateToolbar(); } // Menu items -- cgit v1.2.3 From 6f7b11b9bebf4a80a6d09d344c312241a9abe16e Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 14:06:15 -0600 Subject: themes directory stuffs --- Source/Core/Common/Src/CommonPaths.h | 1 + Source/Core/Common/Src/FileUtil.cpp | 1 + Source/Core/Common/Src/FileUtil.h | 1 + Source/Core/Core/Src/ConfigManager.cpp | 2 ++ Source/Core/Core/Src/CoreParameter.h | 1 + Source/Core/DolphinWX/Src/FrameTools.cpp | 2 +- 6 files changed, 7 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/CommonPaths.h b/Source/Core/Common/Src/CommonPaths.h index 430a0c0cd8..c39056a946 100644 --- a/Source/Core/Common/Src/CommonPaths.h +++ b/Source/Core/Common/Src/CommonPaths.h @@ -89,6 +89,7 @@ #define MAIL_LOGS_DIR LOGS_DIR DIR_SEP "Mail" #define SHADERS_DIR "Shaders" #define WII_SYSCONF_DIR "shared2" DIR_SEP "sys" +#define THEMES_DIR "Themes" // Filenames // Files in the directory returned by GetUserPath(D_CONFIG_IDX) diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp index 77290528a6..acd4588126 100644 --- a/Source/Core/Common/Src/FileUtil.cpp +++ b/Source/Core/Common/Src/FileUtil.cpp @@ -678,6 +678,7 @@ std::string &GetUserPath(const unsigned int DirIDX, const std::string &newPath) paths[D_DUMPDSP_IDX] = paths[D_USER_IDX] + DUMP_DSP_DIR DIR_SEP; paths[D_LOGS_IDX] = paths[D_USER_IDX] + LOGS_DIR DIR_SEP; paths[D_MAILLOGS_IDX] = paths[D_USER_IDX] + MAIL_LOGS_DIR DIR_SEP; + paths[D_THEMES_IDX] = paths[D_USER_IDX] + THEMES_DIR DIR_SEP; paths[D_WIISYSCONF_IDX] = paths[D_WIIUSER_IDX] + WII_SYSCONF_DIR DIR_SEP; paths[F_DOLPHINCONFIG_IDX] = paths[D_CONFIG_IDX] + DOLPHIN_CONFIG; paths[F_DSPCONFIG_IDX] = paths[D_CONFIG_IDX] + DSP_CONFIG; diff --git a/Source/Core/Common/Src/FileUtil.h b/Source/Core/Common/Src/FileUtil.h index 9134bcf44e..0947db4f5c 100644 --- a/Source/Core/Common/Src/FileUtil.h +++ b/Source/Core/Common/Src/FileUtil.h @@ -50,6 +50,7 @@ enum { D_LOGS_IDX, D_MAILLOGS_IDX, D_WIISYSCONF_IDX, + D_THEMES_IDX, F_DOLPHINCONFIG_IDX, F_DSPCONFIG_IDX, F_DEBUGGERCONFIG_IDX, diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 1c353a3a85..959a2bba0a 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -174,6 +174,7 @@ void SConfig::SaveSettings() ini.Set("Interface", "ShowLogWindow", m_InterfaceLogWindow); ini.Set("Interface", "ShowLogConfigWindow", m_InterfaceLogConfigWindow); ini.Set("Interface", "ShowConsole", m_InterfaceConsole); + ini.Set("Interface", "ThemeName", m_LocalCoreStartupParameter.theme_name); // Hotkeys for (int i = 0; i < NUM_HOTKEYS; i++) @@ -311,6 +312,7 @@ void SConfig::LoadSettings() ini.Get("Interface", "ShowLogWindow", &m_InterfaceLogWindow, false); ini.Get("Interface", "ShowLogConfigWindow", &m_InterfaceLogConfigWindow, false); ini.Get("Interface", "ShowConsole", &m_InterfaceConsole, false); + ini.Get("Interface", "ThemeName", &m_LocalCoreStartupParameter.theme_name, "Boomy"); // Hotkeys for (int i = 0; i < NUM_HOTKEYS; i++) diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index 516b7d1117..6ee8fb8b54 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -123,6 +123,7 @@ struct SCoreStartupParameter // Interface settings bool bConfirmStop, bHideCursor, bAutoHideCursor, bUsePanicHandlers, bOnScreenDisplayMessages; + std::string theme_name; // Hotkeys int iHotkey[NUM_HOTKEYS]; diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index 3f5c77641e..f07fcd10f3 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -495,7 +495,7 @@ void CFrame::RecreateToolbar() void CFrame::InitBitmaps() { - wxString dir("theme/"); + wxString dir(File::GetUserPath(D_THEMES_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name + "/"); m_Bitmaps[Toolbar_FileOpen].LoadFile(dir + "open.png", wxBITMAP_TYPE_PNG); m_Bitmaps[Toolbar_Refresh].LoadFile(dir + "refresh.png", wxBITMAP_TYPE_PNG); -- cgit v1.2.3 From a9ff3709e485a4f38189c694c540652468cc1d19 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 15:32:26 -0600 Subject: Attempt to make file searching stuff less crappy on Linux. Supports a * search now. --- Source/Core/Common/Src/FileSearch.cpp | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/FileSearch.cpp b/Source/Core/Common/Src/FileSearch.cpp index c60ce9beda..595dfe7000 100644 --- a/Source/Core/Common/Src/FileSearch.cpp +++ b/Source/Core/Common/Src/FileSearch.cpp @@ -25,6 +25,7 @@ #endif #include +#include #include "FileSearch.h" @@ -72,36 +73,36 @@ void CFileSearch::FindFiles(const std::string& _searchString, const std::string& #else - size_t dot_pos = _searchString.rfind("."); + // TODO: super lame/broken - if (dot_pos == std::string::npos) - return; + auto end_match(_searchString); + + // assuming we have a "*.blah"-like pattern + if (!end_match.empty() && end_match[0] == '*') + end_match.erase(0, 1); + + // ugly + if (end_match == ".*") + end_match.clear(); - std::string ext = _searchString.substr(dot_pos); DIR* dir = opendir(_strPath.c_str()); if (!dir) return; - dirent* dp; - - while (true) + while (auto const dp = readdir(dir)) { - dp = readdir(dir); - - if (!dp) - break; - - std::string s(dp->d_name); + std::string found(dp->d_name); - if ( (!ext.compare(".*") && s.compare(".") && s.compare("..")) || - ((s.size() > ext.size()) && (!strcasecmp(s.substr(s.size() - ext.size()).c_str(), ext.c_str())) )) + if ((found != ".") && (found != "..") + && (found.size() >= end_match.size()) + && std::equal(end_match.rbegin(), end_match.rend(), found.rbegin())) { std::string full_name; if (_strPath.c_str()[_strPath.size()-1] == DIR_SEP_CHR) - full_name = _strPath + s; + full_name = _strPath + found; else - full_name = _strPath + DIR_SEP + s; + full_name = _strPath + DIR_SEP + found; m_FileNames.push_back(full_name); } -- cgit v1.2.3 From c6e8239fd93e1670daa538eced2dcbbfbfd84e47 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 15:39:53 -0600 Subject: theme selection working now --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 0277a117ea..1f1d8a3619 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -17,10 +17,12 @@ #include // System #include +#include #include #include "Common.h" #include "CommonPaths.h" +#include "FileSearch.h" #include "Core.h" // Core #include "HW/EXI.h" @@ -576,10 +578,40 @@ void CConfigMain::CreateGUIControls() sInterface->Add(InterfaceLang, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); sInterface->AddStretchSpacer(); sInterface->Add(HotkeyConfig, 0, wxALIGN_RIGHT | wxALL, 5); + + // theme selection + auto const theme_selection = new wxChoice(DisplayPage, wxID_ANY); + + CFileSearch cfs(CFileSearch::XStringVector(1, "*"), CFileSearch::XStringVector(1, File::GetUserPath(D_THEMES_IDX))); + auto const& sv = cfs.GetFileNames(); + std::for_each(sv.begin(), sv.end(), [theme_selection](const std::string& filename) + { + std::string name, ext; + SplitPath(filename, NULL, &name, &ext); + + name += ext; + theme_selection->Append(name); + + if (SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name == name) + theme_selection->SetSelection(theme_selection->GetCount() - 1); + }); + + theme_selection->Bind(wxEVT_COMMAND_CHOICE_SELECTED, [this,theme_selection](wxEvent&) + { + SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name = theme_selection->GetStringSelection(); + main_frame->InitBitmaps(); + }); + + auto const scInterface = new wxBoxSizer(wxHORIZONTAL); + scInterface->Add(TEXT_BOX(DisplayPage, _("Theme:")), 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); + scInterface->Add(theme_selection, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); + scInterface->AddStretchSpacer(); + sbInterface = new wxStaticBoxSizer(wxVERTICAL, DisplayPage, _("Interface Settings")); sbInterface->Add(ConfirmStop, 0, wxALL, 5); sbInterface->Add(UsePanicHandlers, 0, wxALL, 5); sbInterface->Add(OnScreenDisplayMessages, 0, wxALL, 5); + sbInterface->Add(scInterface, 0, wxEXPAND | wxALL, 5); sbInterface->Add(sInterface, 0, wxEXPAND | wxALL, 5); sDisplayPage = new wxBoxSizer(wxVERTICAL); sDisplayPage->Add(sbInterface, 0, wxEXPAND | wxALL, 5); -- cgit v1.2.3 From d3f8e8e8f36c597d3288a99cbdc8610cce5c028b Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 15:46:21 -0600 Subject: remove some now-unused resource files --- Source/Core/DolphinWX/Src/Frame.cpp | 16 - Source/Core/DolphinWX/resources/Boomy.h | 312 -- Source/Core/DolphinWX/resources/KDE.h | 3651 -------------------- Source/Core/DolphinWX/resources/Vista.h | 2751 --------------- Source/Core/DolphinWX/resources/X-Plastik.h | 3040 ---------------- Source/Core/DolphinWX/resources/toolbar_browse.c | 303 -- .../Core/DolphinWX/resources/toolbar_file_open.c | 214 -- .../Core/DolphinWX/resources/toolbar_fullscreen.c | 209 -- Source/Core/DolphinWX/resources/toolbar_help.c | 306 -- .../Core/DolphinWX/resources/toolbar_plugin_dsp.c | 316 -- .../Core/DolphinWX/resources/toolbar_plugin_gfx.c | 291 -- .../Core/DolphinWX/resources/toolbar_plugin_pad.c | 239 -- .../DolphinWX/resources/toolbar_plugin_wiimote.c | 174 - Source/Core/DolphinWX/resources/toolbar_refresh.c | 306 -- Source/Core/DolphinWX/resources/toolbar_stop.c | 260 -- 15 files changed, 12388 deletions(-) delete mode 100644 Source/Core/DolphinWX/resources/Boomy.h delete mode 100644 Source/Core/DolphinWX/resources/KDE.h delete mode 100644 Source/Core/DolphinWX/resources/Vista.h delete mode 100644 Source/Core/DolphinWX/resources/X-Plastik.h delete mode 100644 Source/Core/DolphinWX/resources/toolbar_browse.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_file_open.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_fullscreen.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_help.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_plugin_dsp.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_plugin_gfx.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_plugin_pad.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_plugin_wiimote.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_refresh.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_stop.c (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/Frame.cpp b/Source/Core/DolphinWX/Src/Frame.cpp index e45544c5eb..b2a60b606c 100644 --- a/Source/Core/DolphinWX/Src/Frame.cpp +++ b/Source/Core/DolphinWX/Src/Frame.cpp @@ -52,22 +52,6 @@ extern "C" { #include "../resources/Dolphin.c" // Dolphin icon -#include "../resources/toolbar_browse.c" -#include "../resources/toolbar_file_open.c" -#include "../resources/toolbar_fullscreen.c" -#include "../resources/toolbar_help.c" -#include "../resources/toolbar_pause.c" -#include "../resources/toolbar_play.c" -#include "../resources/toolbar_plugin_dsp.c" -#include "../resources/toolbar_plugin_gfx.c" -#include "../resources/toolbar_plugin_options.c" -#include "../resources/toolbar_plugin_pad.c" -#include "../resources/toolbar_refresh.c" -#include "../resources/toolbar_stop.c" -#include "../resources/Boomy.h" // Theme packages -#include "../resources/Vista.h" -#include "../resources/X-Plastik.h" -#include "../resources/KDE.h" }; diff --git a/Source/Core/DolphinWX/resources/Boomy.h b/Source/Core/DolphinWX/resources/Boomy.h deleted file mode 100644 index f2060ebba7..0000000000 --- a/Source/Core/DolphinWX/resources/Boomy.h +++ /dev/null @@ -1,312 +0,0 @@ -/* - Automatic generated header by: - - wxInclude by Kim De Deyn, use --help for more information. - Version 1.0, compiled at Sep 12 2007 17:26:17 - - Header: myheader - Macros: no - Const: yes -*/ - -#ifndef _WXINCLUDE_MYHEADER_0_H_ -#define _WXINCLUDE_MYHEADER_0_H_ - -static const unsigned char Toolbar_Log_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x05, 0xC0, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xB5, 0x56, 0x79, 0x6C, 0x14, 0x75, 0x14, -0xFE, 0x66, 0xF6, 0xE8, 0x5E, 0xED, 0x1E, 0x6D, 0x77, 0xDB, -0xED, 0x1E, 0x3D, 0x96, 0x5E, 0x58, 0x5A, 0xDA, 0xD2, 0x42, -0xA5, 0x35, 0x6D, 0x38, 0x24, 0xB6, 0x85, 0x42, 0x29, 0x06, -0xAD, 0x78, 0x80, 0x5A, 0xA2, 0x26, 0x42, 0x62, 0x48, 0x10, -0x83, 0x09, 0x68, 0x8C, 0x4D, 0x4A, 0x0C, 0x12, 0x45, 0x12, -0x30, 0x2A, 0x04, 0xFF, 0x30, 0x8A, 0x04, 0x08, 0x06, 0x91, -0x48, 0xC2, 0x65, 0x15, 0xA5, 0x45, 0x10, 0x28, 0x45, 0xE9, -0x96, 0x76, 0xDB, 0xED, 0x76, 0x69, 0xF7, 0x9A, 0x99, 0x1D, -0xDF, 0x0C, 0x52, 0xA9, 0x85, 0xF8, 0x8F, 0xFE, 0x92, 0x97, -0xDF, 0xCC, 0xFC, 0x66, 0xBE, 0xF7, 0xDE, 0xF7, 0xBE, 0xF7, -0x76, 0x81, 0xFF, 0x79, 0x29, 0x1E, 0x74, 0xF0, 0x7D, 0x3B, -0xD8, 0xD6, 0x1A, 0x68, 0x1F, 0xAF, 0x41, 0xC6, 0x8A, 0xB9, -0x28, 0x6D, 0xAE, 0xC2, 0xFC, 0xE6, 0xB9, 0x58, 0xD5, 0x34, -0x1B, 0xF5, 0x8D, 0x15, 0xA8, 0xAF, 0x2F, 0xC7, 0x63, 0x0D, -0x95, 0xC8, 0x6F, 0xAC, 0x82, 0x50, 0x3F, 0x0B, 0x03, 0x07, -0xCF, 0x22, 0x7E, 0x3F, 0x1C, 0xF6, 0x9F, 0x0F, 0x7E, 0xDC, -0x05, 0xC5, 0xD9, 0x1D, 0xC8, 0x65, 0x95, 0x78, 0x95, 0x51, -0x33, 0xFB, 0x35, 0x49, 0xAA, 0xD3, 0x46, 0x9B, 0xF6, 0x98, -0x35, 0x2B, 0xF9, 0x43, 0x6B, 0x66, 0xF2, 0xCB, 0x36, 0x97, -0x69, 0xAD, 0xCD, 0x95, 0xD4, 0x96, 0xEE, 0x32, 0xB4, 0xE9, -0x0D, 0xCA, 0xF6, 0x38, 0x8F, 0x13, 0xA2, 0x88, 0x77, 0xB6, -0xBF, 0x08, 0xFD, 0xBF, 0x66, 0x70, 0x66, 0x27, 0x98, 0x78, -0x0C, 0xAB, 0xE8, 0x72, 0x4F, 0x82, 0xD1, 0xD4, 0x9C, 0x9A, -0x5F, 0x99, 0x9B, 0x51, 0xD2, 0x68, 0x70, 0x96, 0xAC, 0x80, -0xBB, 0x74, 0x99, 0x6C, 0xAE, 0xE2, 0x7A, 0x64, 0xCE, 0x5C, -0x00, 0x77, 0x51, 0x05, 0x12, 0x8D, 0x2C, 0xFA, 0x7B, 0xAE, -0x29, 0xA3, 0x51, 0x71, 0x8E, 0x08, 0xE4, 0x2E, 0x2C, 0xC5, -0xA1, 0x23, 0x9D, 0xE0, 0x1E, 0x98, 0x01, 0x17, 0x85, 0x9B, -0xE3, 0xD0, 0x9E, 0xE8, 0x9C, 0xE6, 0xC8, 0x6B, 0x78, 0x0F, -0x9E, 0xBA, 0x03, 0xB0, 0x15, 0x6E, 0x81, 0xDE, 0x3A, 0x1F, -0x50, 0xA7, 0x22, 0x16, 0x19, 0x05, 0x17, 0x19, 0x02, 0x37, -0xDE, 0x8B, 0x38, 0x1F, 0x40, 0xB2, 0x23, 0x1B, 0x6A, 0x8D, -0x06, 0xE2, 0x1D, 0x72, 0x9A, 0x29, 0x93, 0x8E, 0xF6, 0xA7, -0xA1, 0xBA, 0x17, 0x53, 0x79, 0xEF, 0x8D, 0xC0, 0xE1, 0x51, -0x85, 0x4A, 0x61, 0x71, 0xCE, 0x5E, 0x07, 0x9D, 0xB9, 0x15, -0xC1, 0xC1, 0x93, 0xB8, 0xDE, 0xF9, 0x11, 0x46, 0xFB, 0x4F, -0x93, 0x73, 0x3F, 0x44, 0x21, 0x0E, 0x96, 0xB8, 0xD3, 0xEA, -0x75, 0x30, 0x5B, 0x53, 0xA0, 0xD2, 0x6A, 0x11, 0x8B, 0xF1, -0x88, 0x93, 0x03, 0x81, 0x52, 0xA0, 0x7D, 0x8D, 0x08, 0xE6, -0xCC, 0xD6, 0x95, 0xE2, 0x9E, 0x8D, 0x7B, 0x21, 0x4C, 0xCA, -0xE0, 0xC8, 0x5B, 0x60, 0x29, 0x83, 0x6A, 0xBD, 0xD5, 0x01, -0x7D, 0x6A, 0x3D, 0xC6, 0x03, 0x9D, 0x38, 0xB5, 0xBF, 0x01, -0x17, 0x8E, 0xEE, 0x85, 0xAF, 0x77, 0x18, 0xB1, 0x28, 0x8B, -0xB8, 0xA0, 0x42, 0x34, 0x22, 0xC0, 0xD7, 0x37, 0x8C, 0xEB, -0x17, 0x7B, 0x10, 0x1A, 0x8F, 0x41, 0xA3, 0xD3, 0x41, 0xA9, -0x52, 0x41, 0xA5, 0x56, 0x42, 0xA1, 0x60, 0x40, 0x7E, 0xB6, -0x12, 0x5C, 0xDA, 0x14, 0x8A, 0x14, 0x2A, 0x18, 0x63, 0x31, -0x94, 0x19, 0x6C, 0xB9, 0x60, 0x60, 0x06, 0x17, 0x3E, 0x8D, -0x9C, 0xB2, 0x2A, 0x34, 0xBC, 0xB6, 0x1E, 0x8B, 0x37, 0xAC, -0xC3, 0xBC, 0x67, 0xDB, 0x50, 0xBD, 0xB2, 0x15, 0xD5, 0x2D, -0x2D, 0x64, 0x4B, 0x51, 0x5C, 0x57, 0x8B, 0x14, 0x67, 0x16, -0x8A, 0xAA, 0x2B, 0x51, 0x51, 0x37, 0x13, 0xE5, 0x55, 0x39, -0x30, 0x99, 0xB5, 0x10, 0x04, 0x91, 0x23, 0xAA, 0xC4, 0x29, -0x45, 0x7E, 0xA2, 0x0E, 0x56, 0xA2, 0x68, 0x63, 0xC6, 0x8C, -0x79, 0x2A, 0x63, 0xFA, 0x2C, 0xA8, 0x54, 0x97, 0xA0, 0x37, -0x25, 0xC1, 0xEF, 0xED, 0x43, 0xDF, 0xAF, 0x5D, 0x18, 0xB8, -0x72, 0x89, 0x32, 0xE9, 0xC1, 0x60, 0x6F, 0x2F, 0x3D, 0xF3, -0x82, 0xE7, 0x62, 0x14, 0xB9, 0x06, 0xA9, 0x0E, 0x3B, 0x2C, -0xE9, 0x16, 0xE8, 0x35, 0x3C, 0x2E, 0x77, 0x7B, 0x31, 0x16, -0xE4, 0xBE, 0x7D, 0x7D, 0x1F, 0x76, 0xDD, 0xC5, 0x65, 0xEE, -0x5E, 0x7C, 0xB9, 0x09, 0x0F, 0xAB, 0x13, 0x70, 0xB2, 0xA4, -0x69, 0x03, 0xD2, 0xF2, 0x9F, 0xC4, 0x85, 0x23, 0x2F, 0xE0, -0xF2, 0xA9, 0x73, 0x08, 0x07, 0x63, 0x60, 0x29, 0x0C, 0x25, -0x55, 0x8B, 0xE8, 0x87, 0x42, 0xA9, 0x90, 0x3F, 0x63, 0x88, -0x0E, 0xA9, 0x1E, 0x46, 0x5B, 0x1A, 0xB2, 0x4B, 0x1E, 0x42, -0x68, 0xB8, 0x1F, 0xDF, 0x7C, 0xFD, 0x93, 0x18, 0x0C, 0x08, -0x9B, 0x36, 0xED, 0x93, 0x69, 0x9A, 0x9C, 0x41, 0x4B, 0x35, -0x6A, 0x59, 0x15, 0x9A, 0xEC, 0x05, 0x73, 0xA0, 0xD1, 0x9B, -0x70, 0xE9, 0xC4, 0x6E, 0xA8, 0xB5, 0x66, 0x38, 0x0B, 0x33, -0xE1, 0x29, 0x2B, 0x86, 0x7B, 0x7A, 0x1E, 0x9C, 0x05, 0xB9, -0xC8, 0x2A, 0x2A, 0xA0, 0x3D, 0x1F, 0x69, 0x59, 0xD3, 0xA0, -0x33, 0x9A, 0x21, 0xB1, 0x91, 0x98, 0xA4, 0xC5, 0xF0, 0xAD, -0x21, 0xF4, 0x5E, 0xF5, 0x89, 0x3C, 0x87, 0x9D, 0xC7, 0xBB, -0xD0, 0x3D, 0xC5, 0xC1, 0xF2, 0x1A, 0xCC, 0x20, 0xE2, 0x9A, -0xEC, 0x79, 0x95, 0xD0, 0x9B, 0x2D, 0xA4, 0xF1, 0x30, 0x3C, -0x14, 0x99, 0x39, 0x3D, 0x8D, 0x0A, 0xA8, 0xA2, 0x02, 0x82, -0xE4, 0xC8, 0x43, 0x14, 0x49, 0x1C, 0xF4, 0xA2, 0x96, 0xC0, -0xD3, 0x3C, 0x79, 0x70, 0x14, 0x4C, 0x87, 0x42, 0x8C, 0xE2, -0x5A, 0xD7, 0x55, 0xDC, 0xBC, 0x31, 0x1A, 0x27, 0xFE, 0x3F, -0x25, 0x07, 0xBF, 0x4D, 0x91, 0x69, 0x5C, 0xB8, 0x23, 0x2B, -0x46, 0xA9, 0x25, 0x2A, 0x18, 0x84, 0x03, 0xC3, 0xE8, 0xE9, -0xFC, 0x19, 0xC3, 0xDE, 0x01, 0x84, 0xC7, 0x23, 0x04, 0x1E, -0x27, 0x13, 0x26, 0x48, 0x4D, 0xD0, 0x69, 0x60, 0xB2, 0xDA, -0x60, 0xCD, 0xCA, 0x41, 0xAA, 0x4D, 0x8F, 0x70, 0x58, 0xA0, -0xBA, 0x40, 0x64, 0xD8, 0xC9, 0xBD, 0x35, 0x91, 0x41, 0x53, -0x15, 0x8A, 0xE8, 0x70, 0x99, 0x3D, 0xB7, 0x00, 0x1A, 0x83, -0x11, 0xE7, 0xBE, 0xDA, 0x83, 0xBE, 0x6B, 0x03, 0x60, 0x18, -0x1E, 0xBA, 0x44, 0x03, 0x0C, 0xA6, 0x44, 0x24, 0x59, 0x92, -0x64, 0xFD, 0x27, 0xA6, 0x58, 0xA0, 0x35, 0x18, 0xC8, 0xF1, -0x18, 0xC9, 0xD9, 0x4F, 0xD9, 0xEA, 0xE0, 0xBB, 0x35, 0x02, -0x6F, 0xDF, 0x6D, 0x49, 0x3D, 0x9F, 0x7D, 0xD7, 0x85, 0x2B, -0x53, 0x1C, 0x2C, 0xAE, 0x42, 0x09, 0x05, 0xD7, 0x94, 0xEE, -0xC9, 0x96, 0xB9, 0x8D, 0xF8, 0xAF, 0xC0, 0x55, 0x98, 0x8D, -0x9C, 0xE2, 0x42, 0x38, 0x72, 0xB3, 0x90, 0x96, 0x99, 0x81, -0x14, 0x07, 0x45, 0xEC, 0x76, 0xC2, 0xEE, 0xC9, 0x81, 0xA3, -0x70, 0x06, 0x5C, 0x25, 0x15, 0xF4, 0x2C, 0x13, 0x52, 0xDD, -0x47, 0x7D, 0x3E, 0x78, 0x6F, 0x8E, 0x30, 0x1C, 0x8F, 0x63, -0x27, 0xBA, 0x71, 0x7E, 0x0A, 0x45, 0xC4, 0x2B, 0x1F, 0x8D, -0x00, 0xD1, 0x31, 0x3F, 0xF1, 0xCD, 0x13, 0xA0, 0x83, 0x64, -0x93, 0x00, 0xFF, 0xA0, 0x1F, 0x63, 0x23, 0x41, 0x70, 0xD4, -0x24, 0x02, 0x59, 0x9C, 0x62, 0x54, 0x25, 0x68, 0xA0, 0xD4, -0xE8, 0x69, 0x54, 0xB8, 0x61, 0xC9, 0xC8, 0x84, 0x36, 0xD9, -0x0E, 0x9B, 0xFD, 0x06, 0xD5, 0xEA, 0x0F, 0x26, 0x1C, 0xE2, -0x2A, 0x09, 0x6D, 0xF7, 0x14, 0x99, 0x7E, 0xBC, 0x1E, 0x65, -0x34, 0x87, 0x7E, 0x98, 0x5E, 0xEE, 0x41, 0x45, 0xF3, 0x1A, -0x5C, 0x3C, 0xFA, 0x09, 0x7A, 0xBA, 0x7B, 0x30, 0x16, 0x08, -0xC9, 0x45, 0x65, 0x64, 0xA9, 0xB2, 0x44, 0x5F, 0xA2, 0xFC, -0xBE, 0x20, 0x08, 0x34, 0x97, 0x42, 0xD4, 0xC9, 0x66, 0xD8, -0x49, 0x5D, 0x0E, 0x97, 0x19, 0x07, 0xF6, 0x9E, 0xC4, 0xEF, -0xBD, 0xC1, 0xAB, 0x24, 0x88, 0xCA, 0x37, 0x3F, 0x87, 0x5F, -0x7A, 0x6F, 0xA2, 0x20, 0x14, 0x9C, 0x8F, 0xB6, 0xC8, 0x50, -0x1F, 0x35, 0x51, 0x6C, 0x0C, 0x42, 0x9C, 0x81, 0x92, 0x1A, -0x23, 0xBB, 0x38, 0x1F, 0x45, 0x35, 0x95, 0x98, 0xD3, 0x30, -0x9F, 0x6C, 0x21, 0xCA, 0x17, 0xD4, 0x62, 0xD6, 0x22, 0xBA, -0x5E, 0xB2, 0x04, 0x55, 0x2D, 0xAD, 0xC8, 0x9B, 0xFB, 0x08, -0xF5, 0x42, 0x3A, 0x05, 0xA0, 0x86, 0xCB, 0x65, 0xA0, 0xDE, -0x60, 0xB2, 0x09, 0xA7, 0xEE, 0x2E, 0xEE, 0x84, 0x03, 0x12, -0xC9, 0x30, 0x05, 0x7A, 0xDE, 0x37, 0x18, 0x42, 0x7F, 0xF7, -0x59, 0x64, 0x78, 0x3C, 0x28, 0x9C, 0x99, 0x05, 0xB7, 0x27, -0x05, 0x46, 0x93, 0x02, 0x91, 0xE0, 0x08, 0x82, 0x43, 0x03, -0x08, 0xDC, 0xBA, 0x29, 0x5B, 0xC8, 0xEF, 0x85, 0x96, 0x1D, -0x43, 0xBA, 0x83, 0xA8, 0x4A, 0x4E, 0x80, 0xC8, 0x85, 0x60, -0xB3, 0x4A, 0x72, 0x66, 0x58, 0xA2, 0xA5, 0x6D, 0xF3, 0x8A, -0x3B, 0x53, 0x75, 0x82, 0x22, 0x69, 0x7D, 0xF0, 0x12, 0xDE, -0x27, 0x47, 0x6B, 0x1D, 0x6E, 0x13, 0xF2, 0x8B, 0x5C, 0x08, -0x0C, 0x0C, 0x60, 0xD0, 0xC7, 0xE1, 0xF6, 0xED, 0x18, 0x22, -0x61, 0x0E, 0x3C, 0x8D, 0x4C, 0x51, 0x9A, 0x9A, 0x22, 0x75, -0x31, 0xF1, 0xA0, 0x54, 0xAB, 0x61, 0xB6, 0xE8, 0x61, 0x49, -0xD6, 0xC0, 0x9C, 0x24, 0x22, 0xE0, 0x1B, 0xA1, 0x0A, 0x07, -0x08, 0x54, 0xE4, 0x09, 0xAE, 0x71, 0xF3, 0x7E, 0x1C, 0x9E, -0xE4, 0x60, 0x47, 0x1B, 0x16, 0xD1, 0xF7, 0x87, 0x24, 0xB7, -0x4A, 0x92, 0x46, 0x9C, 0x2A, 0xCA, 0xF3, 0x71, 0xA9, 0x47, -0x64, 0x60, 0x9A, 0xD6, 0xF2, 0xEC, 0xE7, 0xFF, 0xDA, 0xA5, -0x7B, 0xD9, 0x19, 0x2B, 0x39, 0x64, 0xA4, 0x41, 0x07, 0x81, -0x17, 0x65, 0xC5, 0xD0, 0x6A, 0x20, 0x07, 0x07, 0x27, 0xFD, -0x1E, 0xF0, 0x02, 0x8E, 0x33, 0x0C, 0xBE, 0x20, 0xB0, 0xA5, -0x3C, 0x27, 0x48, 0xAF, 0xF5, 0x92, 0xB3, 0xC3, 0x74, 0xF4, -0x0B, 0xF9, 0xF2, 0xD2, 0x1E, 0x26, 0x3C, 0x29, 0x28, 0x03, -0x9D, 0x25, 0xD3, 0x5E, 0x40, 0xA0, 0xA5, 0x04, 0x5A, 0x44, -0xD7, 0x16, 0xE9, 0x84, 0x91, 0x27, 0xB6, 0x3C, 0x8B, 0x8E, -0xE2, 0x7E, 0xAB, 0x63, 0x35, 0x52, 0xC9, 0xB6, 0x6D, 0x5B, -0x8D, 0x57, 0x3A, 0x9E, 0x83, 0xB3, 0xE3, 0x79, 0x28, 0x3B, -0xD6, 0x80, 0x7D, 0xF7, 0x99, 0xBF, 0xE9, 0x7C, 0xBB, 0x15, -0xCC, 0xD6, 0xA7, 0xC0, 0x6E, 0x59, 0x09, 0xE5, 0x1B, 0xCB, -0x61, 0x22, 0xBE, 0xB3, 0xC9, 0x6A, 0xC9, 0x5A, 0xC9, 0x4A, -0xC8, 0x1E, 0xF8, 0x67, 0xE2, 0x3F, 0x5F, 0x7F, 0x02, 0x1C, -0xAC, 0x2A, 0x6C, 0xAB, 0x0A, 0x12, 0x89, 0x00, 0x00, 0x00, -0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Zoom_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x05, 0x1C, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xB5, 0x95, 0x6B, 0x6C, 0x14, 0x55, 0x18, -0x86, 0x9F, 0x99, 0x9D, 0x9D, 0xBD, 0x74, 0x77, 0xBB, 0xDB, -0x42, 0x8B, 0xF4, 0x4A, 0x57, 0x28, 0x2D, 0xA4, 0x14, 0xB0, -0x96, 0x0A, 0x04, 0xA1, 0x5C, 0x02, 0x96, 0x4B, 0x81, 0x6A, -0x55, 0xAE, 0x82, 0xA0, 0x09, 0xC4, 0x00, 0x11, 0x03, 0x14, -0x02, 0x05, 0x6F, 0x44, 0x40, 0x91, 0x10, 0xF1, 0x8F, 0x11, -0x83, 0x31, 0x11, 0x0D, 0x04, 0x7E, 0x48, 0x10, 0x2C, 0x06, -0x68, 0x2B, 0x77, 0xCB, 0x45, 0x2A, 0x45, 0xB1, 0xD4, 0x2D, -0xDB, 0xB2, 0xD0, 0x6E, 0x69, 0x77, 0xBB, 0x97, 0xF1, 0x2C, -0x0A, 0x88, 0x52, 0x08, 0x18, 0xDF, 0xE4, 0xCC, 0xEC, 0x9C, -0xB3, 0xF9, 0x9E, 0xF3, 0x7D, 0xDF, 0x7B, 0x66, 0xE0, 0x7F, -0x96, 0xAE, 0xC3, 0x95, 0xA5, 0x7B, 0x65, 0x06, 0x3C, 0x97, -0x44, 0xCE, 0xE4, 0x71, 0xE4, 0x14, 0x2E, 0xA2, 0xFF, 0xB8, -0xC5, 0xF4, 0x1B, 0x5B, 0x48, 0xDF, 0x31, 0x09, 0xF4, 0x1D, -0xDD, 0x42, 0xF6, 0x48, 0x0F, 0x27, 0xBF, 0x09, 0x3F, 0x08, -0x20, 0xDF, 0x73, 0xB6, 0xF4, 0x60, 0x8C, 0x58, 0x5A, 0x20, -0x85, 0xE5, 0xC3, 0x06, 0x83, 0x69, 0x6B, 0x54, 0xB4, 0x63, -0x9A, 0x2D, 0x36, 0x2E, 0xCF, 0x6C, 0xB5, 0x3F, 0xA3, 0xC8, -0xCA, 0x5A, 0x42, 0xDA, 0x31, 0x34, 0x79, 0x0B, 0xD3, 0xD6, -0xA7, 0x32, 0x73, 0xB3, 0xF4, 0x70, 0x80, 0xD2, 0xF2, 0x24, -0x82, 0xDA, 0x97, 0x66, 0xA3, 0xF1, 0xBD, 0xFC, 0xAC, 0xB4, -0x84, 0x35, 0xE3, 0x9F, 0x64, 0x4B, 0xF1, 0x20, 0xD6, 0x4D, -0x1A, 0xC2, 0xA2, 0x82, 0x7C, 0x46, 0x3D, 0x3D, 0x8C, 0xCE, -0x89, 0x69, 0x8A, 0x4E, 0x92, 0x66, 0x12, 0x0E, 0x95, 0xE1, -0xF7, 0x0E, 0x66, 0xFA, 0x86, 0x0E, 0x21, 0x77, 0x03, 0x56, -0x57, 0xD8, 0x09, 0x6B, 0x5B, 0x1C, 0x16, 0xCB, 0xB0, 0x95, -0xC3, 0x33, 0xD9, 0x33, 0x35, 0x9D, 0x57, 0x72, 0x62, 0x68, -0xBE, 0xD1, 0xC6, 0x96, 0x7D, 0x95, 0x54, 0xD4, 0x5C, 0xA2, -0x57, 0x42, 0x02, 0xE3, 0x87, 0xE6, 0x93, 0xDC, 0x3B, 0x17, -0xD9, 0x10, 0x95, 0x82, 0x16, 0xFE, 0x9C, 0xB6, 0x1B, 0xD9, -0x0F, 0x06, 0xAC, 0xA9, 0x90, 0x68, 0xF7, 0x4F, 0x32, 0xC8, -0xD2, 0xE8, 0x79, 0xB9, 0x29, 0xBC, 0x9E, 0x67, 0xA7, 0xB1, -0x0D, 0x36, 0x1E, 0xF1, 0xB3, 0x6A, 0xCF, 0x39, 0x8E, 0x1E, -0x3B, 0xC7, 0x81, 0xD3, 0xE7, 0xD9, 0x75, 0xB6, 0x86, 0x93, -0xEE, 0x6B, 0x58, 0x92, 0xD3, 0xE8, 0x94, 0xD9, 0x0F, 0xBD, -0xC9, 0x94, 0x20, 0x32, 0x59, 0xCE, 0xB8, 0x92, 0xE8, 0xFB, -0x03, 0x9A, 0xAF, 0x5B, 0xA5, 0x80, 0x7F, 0x4E, 0x66, 0xBC, -0x8D, 0x59, 0xD9, 0x0E, 0x7E, 0x69, 0x82, 0x4D, 0xC7, 0x42, -0xE2, 0x1E, 0xC4, 0x6A, 0x10, 0xEB, 0x26, 0x15, 0x55, 0xD5, -0xA3, 0x97, 0x25, 0x7C, 0xC1, 0x20, 0x61, 0x25, 0x84, 0xA3, -0xBB, 0x13, 0x5B, 0x62, 0x0A, 0x92, 0x2C, 0x15, 0xA2, 0x85, -0xEE, 0x99, 0xC5, 0x9D, 0xDA, 0x2D, 0xDC, 0x99, 0xA7, 0xE8, -0xD5, 0xC3, 0xAF, 0x0E, 0xC9, 0x66, 0xE1, 0xC0, 0x78, 0x36, -0x1C, 0x6A, 0xE4, 0xD0, 0xC5, 0x06, 0x11, 0x34, 0x4C, 0x75, -0x6D, 0x1D, 0x57, 0xAF, 0xB8, 0x50, 0x4D, 0x26, 0xEC, 0xB1, -0x9D, 0xD1, 0x24, 0x0D, 0x4B, 0xAC, 0x8D, 0x4E, 0xE9, 0x3D, -0x68, 0xAC, 0xA9, 0xA1, 0xB6, 0x6C, 0x0F, 0x41, 0x6F, 0xF3, -0x2A, 0x11, 0xEE, 0x2D, 0x76, 0xBD, 0xDD, 0xFE, 0x77, 0x80, -0x72, 0xFB, 0x57, 0x28, 0x90, 0xA9, 0xE8, 0x14, 0x3A, 0x99, -0x55, 0x4E, 0xB8, 0xFC, 0x6C, 0xDC, 0x7F, 0x04, 0x3C, 0x0D, -0xA0, 0x0A, 0x27, 0x2B, 0x62, 0x18, 0x55, 0xDA, 0x7D, 0xAD, -0xB8, 0x6B, 0xCE, 0x40, 0x4B, 0x33, 0x0D, 0xED, 0xED, 0x58, -0xE3, 0x67, 0x10, 0xE5, 0x70, 0xA0, 0xD3, 0xE9, 0x08, 0x42, -0x26, 0xB2, 0x2E, 0x92, 0xEB, 0x5D, 0x80, 0x3B, 0x25, 0x0A, -0xF9, 0xD1, 0x82, 0x7E, 0x9A, 0xFC, 0x41, 0x5C, 0x2D, 0x22, -0x9E, 0x4E, 0x42, 0x31, 0x1B, 0xD0, 0xEB, 0x15, 0x24, 0x4D, -0x83, 0x40, 0x00, 0xD1, 0x50, 0x51, 0x0E, 0x3D, 0x18, 0xCC, -0x98, 0x6C, 0x16, 0x8C, 0x46, 0x3D, 0x9A, 0x16, 0x12, 0xD3, -0x62, 0x5D, 0x92, 0xA2, 0xC4, 0xF8, 0x97, 0x2B, 0xEF, 0x4C, -0x84, 0x83, 0xEE, 0xA0, 0xBF, 0x95, 0x73, 0xEE, 0x66, 0x51, -0x5F, 0x23, 0xBD, 0x7B, 0x74, 0x27, 0x3D, 0xBD, 0x27, 0xCE, -0xB4, 0xEE, 0x58, 0xCC, 0xA6, 0x9B, 0xBB, 0x56, 0xC4, 0x4E, -0xE3, 0xD2, 0x33, 0x48, 0x1F, 0x36, 0x84, 0x01, 0x33, 0x8B, -0x70, 0x24, 0x74, 0xA1, 0xB5, 0xD1, 0x4D, 0x28, 0x18, 0x88, -0x00, 0xAA, 0xFF, 0xB9, 0xFB, 0x88, 0xEE, 0x9C, 0xE4, 0xAC, -0xD1, 0xCD, 0x9A, 0x14, 0x9E, 0xD1, 0x26, 0xF6, 0x9D, 0x9A, -0x94, 0x48, 0xAB, 0xA2, 0x60, 0x16, 0xE9, 0x47, 0xEA, 0x7E, -0xB5, 0xFE, 0x77, 0x7C, 0xF5, 0x97, 0x51, 0xAC, 0x56, 0x32, -0x9E, 0xEA, 0x4F, 0xD6, 0xA0, 0x9E, 0xD8, 0xE2, 0xED, 0xB8, -0x5C, 0xAD, 0xD4, 0x55, 0x1E, 0xA4, 0xD5, 0xED, 0x85, 0xB6, -0x2E, 0xCB, 0x38, 0x5E, 0x78, 0x81, 0x96, 0x0F, 0x3B, 0x68, -0xF2, 0xF3, 0xEB, 0x74, 0x44, 0x45, 0x6D, 0x96, 0x8D, 0xC6, -0x39, 0x39, 0x39, 0xB9, 0x24, 0x39, 0xBB, 0xE1, 0x11, 0x25, -0x93, 0x45, 0x09, 0x7E, 0xDC, 0x5F, 0x86, 0xFB, 0xDB, 0xEF, -0x30, 0x67, 0x65, 0x30, 0x62, 0xD6, 0xB3, 0x38, 0x12, 0x63, -0xB9, 0x54, 0x17, 0xE4, 0x42, 0x65, 0x39, 0x75, 0x07, 0x2A, -0xB1, 0xF8, 0x7F, 0x63, 0xAC, 0xE3, 0x68, 0xBF, 0x6D, 0x9F, -0x96, 0x9F, 0xE8, 0xD8, 0x45, 0x11, 0x4D, 0xDF, 0xD8, 0x07, -0x59, 0x2A, 0x37, 0xD8, 0x1D, 0xA6, 0x9E, 0xFD, 0xFB, 0x13, -0x9D, 0x9A, 0x8C, 0xCD, 0x66, 0xC2, 0x73, 0xB9, 0x96, 0xFA, -0x53, 0x55, 0xD8, 0x53, 0x13, 0x49, 0xCA, 0xCE, 0xE2, 0xDA, -0x75, 0x1F, 0xBF, 0x1E, 0x3F, 0x8E, 0xEB, 0xF0, 0x0F, 0x04, -0x3C, 0x7A, 0x66, 0x24, 0x7F, 0xC4, 0x84, 0xE8, 0x33, 0x15, -0xAA, 0x89, 0x97, 0xC6, 0xAC, 0xE2, 0x5C, 0xC7, 0x80, 0x88, -0xA6, 0xAC, 0x9F, 0x2F, 0x1A, 0xB2, 0x51, 0x1F, 0x6D, 0x25, -0x3E, 0xAD, 0x07, 0xD1, 0x09, 0x89, 0x44, 0x75, 0x72, 0xA0, -0x18, 0x0D, 0x04, 0xDB, 0x7C, 0x34, 0xB9, 0xEA, 0xB9, 0x7A, -0xF1, 0x3C, 0xD7, 0xCE, 0xFE, 0x4C, 0xA8, 0xDA, 0x4B, 0xFE, -0x58, 0x2B, 0x1F, 0xBF, 0x70, 0x84, 0x86, 0xEF, 0xBF, 0xC6, -0x5D, 0xC7, 0x01, 0xA2, 0x18, 0x33, 0xEE, 0x0D, 0x5A, 0x3B, -0x06, 0x30, 0x50, 0xA2, 0x78, 0xEC, 0x42, 0x71, 0x70, 0xDE, -0x95, 0x84, 0xFF, 0x54, 0x8B, 0x45, 0x98, 0xC6, 0x84, 0x22, -0xAC, 0x1A, 0xF0, 0xF9, 0xF1, 0x79, 0x5B, 0x08, 0xD4, 0xDF, -0x80, 0x1B, 0x32, 0xA3, 0x72, 0x3D, 0x7C, 0x30, 0x75, 0x27, -0xE9, 0x7D, 0x26, 0xE2, 0xBD, 0xE2, 0xE1, 0xC8, 0xB6, 0x4F, -0xF0, 0x36, 0x85, 0x97, 0x4C, 0x28, 0xE5, 0x9D, 0xFB, 0x00, -0xFE, 0xD2, 0xE4, 0xD5, 0x05, 0xC2, 0x59, 0xF3, 0xC5, 0x6B, -0x60, 0x24, 0x11, 0x9B, 0x12, 0x12, 0x36, 0x15, 0x9E, 0x68, -0x57, 0x48, 0x89, 0xF1, 0x33, 0x77, 0xB8, 0x9D, 0x19, 0x43, -0x9B, 0xE8, 0xA2, 0x6C, 0xA5, 0x45, 0x0E, 0x61, 0xED, 0xFA, -0x26, 0xD5, 0x7B, 0x37, 0x71, 0xBA, 0xEC, 0x64, 0x53, 0x5B, -0x50, 0x1B, 0x3C, 0x65, 0x2D, 0x55, 0x91, 0x30, 0x4A, 0x87, -0x80, 0xED, 0xCB, 0x77, 0x33, 0xA1, 0x44, 0xBC, 0x96, 0x49, -0x17, 0x16, 0xEC, 0x01, 0x71, 0xBA, 0xC7, 0xB4, 0xD3, 0xDD, -0x9E, 0x50, 0x0E, 0xCD, 0x1D, 0x9C, 0x6C, 0xB3, 0xBD, 0x9C, -0x37, 0x42, 0x9C, 0xEA, 0x38, 0x3C, 0xAE, 0x01, 0x22, 0xAB, -0xAF, 0xC4, 0xDF, 0x3E, 0xA3, 0xB3, 0xB3, 0x1F, 0x4A, 0xC5, -0xD9, 0x68, 0x9F, 0xDB, 0x3F, 0x4F, 0x44, 0x98, 0x7B, 0x7F, -0x40, 0x44, 0x3B, 0xD6, 0xB8, 0xC4, 0x35, 0x32, 0xCA, 0x22, -0x8F, 0xAF, 0x0D, 0xC7, 0x18, 0xB4, 0x10, 0xA3, 0xB8, 0xAD, -0xB3, 0xCE, 0x57, 0x25, 0xD1, 0xCB, 0x6C, 0x17, 0x87, 0x37, -0x4D, 0xF4, 0x26, 0x03, 0x4F, 0xF5, 0x29, 0xEC, 0x09, 0x71, -0xE8, 0x2D, 0x66, 0x7C, 0xB5, 0xFE, 0x89, 0xB7, 0x00, 0xF7, -0xFD, 0x58, 0xDC, 0x4B, 0x25, 0x05, 0xF4, 0x96, 0x54, 0x69, -0x47, 0x97, 0xD4, 0x14, 0x67, 0x7E, 0xC1, 0x30, 0xBA, 0x26, -0x77, 0xE5, 0xBA, 0xEB, 0x0C, 0x5E, 0xF7, 0x31, 0xE2, 0xBA, -0xA5, 0x51, 0xBE, 0xEF, 0x0C, 0x3F, 0x55, 0x35, 0xB0, 0x78, -0xEB, 0x9F, 0xB1, 0x1F, 0x1A, 0x70, 0x13, 0x52, 0xC8, 0x6C, -0x9D, 0x41, 0xDD, 0x94, 0xF2, 0xB8, 0xD3, 0x90, 0x93, 0x97, -0x81, 0xC3, 0xDA, 0x26, 0xAA, 0xD8, 0x4C, 0x93, 0xD7, 0x4F, -0xD9, 0xEE, 0x2A, 0x1A, 0x3D, 0xFE, 0xC0, 0x8A, 0x2F, 0x50, -0x1F, 0x19, 0xB0, 0x6C, 0x22, 0xAA, 0x2C, 0x53, 0xA2, 0xA8, -0xA6, 0x92, 0x98, 0xCE, 0x31, 0x52, 0x9A, 0xD3, 0x8E, 0x6A, -0x94, 0x38, 0x7F, 0xEA, 0x22, 0x0D, 0x57, 0x5A, 0x45, 0x3F, -0x58, 0x50, 0xBA, 0x9D, 0xF7, 0x1F, 0x25, 0xF6, 0x6D, 0xAD, -0x28, 0x42, 0x5D, 0x59, 0x24, 0xBD, 0x58, 0x5A, 0xAC, 0xBF, -0xB8, 0xAA, 0xD8, 0xA8, 0xAD, 0x28, 0x52, 0xB4, 0xE5, 0x93, -0xA8, 0x5B, 0x31, 0x89, 0xD9, 0xE2, 0xAE, 0xFE, 0xA7, 0xE0, -0xB7, 0x54, 0x3A, 0x19, 0x69, 0x49, 0x01, 0xCE, 0xA5, 0xE3, -0x99, 0xB2, 0xAC, 0x90, 0xA9, 0x25, 0x13, 0x71, 0xAE, 0x2C, -0xBA, 0xFB, 0x33, 0xFC, 0x07, 0x07, 0x66, 0xCF, 0x92, 0x85, -0x17, 0xB4, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, -0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -#endif - diff --git a/Source/Core/DolphinWX/resources/KDE.h b/Source/Core/DolphinWX/resources/KDE.h deleted file mode 100644 index 23fcd4272b..0000000000 --- a/Source/Core/DolphinWX/resources/KDE.h +++ /dev/null @@ -1,3651 +0,0 @@ -/* - Automatic generated header by: - - wxInclude by Kim De Deyn, use --help for more information. - Version 1.0, compiled at Sep 12 2007 17:26:17 - - Header: myheader - Macros: no - Const: yes -*/ - -#ifndef _WXINCLUDE_MYHEADER_3_H_ -#define _WXINCLUDE_MYHEADER_3_H_ - -static const unsigned char Toolbar_Browse3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x01, -0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xDB, -0xC0, 0x00, 0xAF, 0x92, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x06, -0x24, 0x26, 0x16, 0x57, 0xF6, 0xF6, 0xF9, 0xEB, 0xE7, 0xE5, -0xF1, 0xBC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x6E, 0xBF, 0x00, -0x1C, 0x25, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x02, 0x07, 0x07, 0x03, 0x23, 0x40, -0x57, 0x90, 0x94, 0xF5, 0xEE, 0xE1, 0xEA, 0xA9, 0x97, 0x79, -0x3D, 0x19, 0x22, 0x3D, 0xE9, 0x4E, 0x6B, 0xB9, 0xFF, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xE2, 0xE7, 0xE2, 0x00, 0xFE, 0x05, 0x08, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFF, 0xFF, 0x00, 0x09, 0x2D, 0x32, 0x36, 0x6B, 0x08, 0x0B, -0x14, 0x0E, 0x13, 0x1C, 0x35, 0x23, 0x22, 0x23, 0x1F, 0x58, -0xEF, 0xE9, 0xD8, 0x05, 0xFE, 0xFD, 0xFB, 0x00, 0x04, 0x05, -0x09, 0x00, 0x04, 0x05, 0x09, 0x00, 0x04, 0x05, 0x09, 0x00, -0x02, 0x04, 0x06, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, -0x06, 0x03, 0x20, 0x2E, 0x3C, 0x59, 0x5B, 0x01, 0xFA, 0xE7, -0x00, 0x01, 0xFB, 0xEA, 0x01, 0x33, 0x3F, 0x5D, 0x6B, 0xF8, -0xF5, 0xEB, 0x14, 0xD6, 0xC7, 0x9E, 0x01, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, -0x03, 0x03, 0x00, 0x03, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x09, 0x2C, 0x2E, -0x32, 0x66, 0x0A, 0x0C, 0x0E, 0x10, 0x00, 0xFC, 0xF7, 0x00, -0x00, 0xFC, 0xF5, 0x00, 0x15, 0x1B, 0x2C, 0x23, 0x20, 0x1E, -0x1D, 0x53, 0xC8, 0xB4, 0x7C, 0x06, 0xF8, 0xF5, 0xEE, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x17, -0x1E, 0x00, 0x1C, 0x16, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x02, 0x06, 0x05, 0x02, 0x1E, 0x30, 0x38, 0x47, -0x5D, 0x01, 0xF8, 0xE8, 0x00, 0x00, 0xFB, 0xF4, 0x00, 0x00, -0xFB, 0xF4, 0x00, 0x01, 0xFA, 0xEB, 0x01, 0x34, 0x3B, 0x4F, -0x6C, 0xFD, 0xFA, 0xF5, 0x12, 0xCB, 0xB9, 0x83, 0x01, 0xF4, -0xF0, 0xE5, 0x00, 0xFC, 0xFB, 0xF8, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x04, 0xDD, 0xD0, 0xAE, 0x00, 0xE4, 0xDB, -0xBF, 0x01, 0xF0, 0xE9, 0xD8, 0x02, 0xFF, 0xFF, 0x00, 0x02, -0x00, 0x00, 0x00, 0x01, 0x04, 0x03, 0x01, 0x0E, 0x0B, 0x09, -0x05, 0x22, 0x29, 0x2A, 0x2C, 0x6B, 0x0A, 0x09, 0x03, 0x11, -0x00, 0xFB, 0xF4, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xFF, -0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x16, 0x19, 0x22, 0x25, -0x29, 0x23, 0x1F, 0x6E, 0xDD, 0xC7, 0x95, 0xA9, 0xD4, 0xC1, -0x93, 0xE1, 0x0D, 0x14, 0x23, 0xF5, 0x0C, 0x10, 0x1D, 0xFE, -0x0A, 0x0E, 0x18, 0xFE, 0x0B, 0x0E, 0x18, 0xFF, 0x1E, 0x2A, -0x49, 0xFF, 0x01, 0xA4, 0x7A, 0x0E, 0x31, 0x1A, 0x17, 0x14, -0x45, 0x0F, 0x10, 0x13, 0x24, 0x10, 0x12, 0x14, 0x23, 0x10, -0x12, 0x14, 0x23, 0x0C, 0x0E, 0x10, 0x17, 0x04, 0x08, 0x0D, -0x07, 0x01, 0x01, 0xFF, 0x01, 0x01, 0xFC, 0xF1, 0x00, 0x00, -0x01, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0x04, -0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0xFF, -0x04, 0x11, 0x00, 0xFF, 0xFB, 0xFA, 0xFF, 0xFA, 0xF5, 0xEF, -0xF7, 0xF3, 0xF0, 0xEB, 0xE6, 0xF0, 0xED, 0xE8, 0xDD, 0xF0, -0xEE, 0xE7, 0xDC, 0xF3, 0xF4, 0xF2, 0xDC, 0xDF, 0xE6, 0xE1, -0xB3, 0x01, 0xC7, 0x95, 0x24, 0xA0, 0x35, 0x39, 0x41, 0x5E, -0x03, 0x03, 0xFC, 0x01, 0x00, 0xFF, 0xFB, 0x00, 0x00, 0x00, -0xFC, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, -0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, -0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, -0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, -0x02, 0x00, 0x00, 0xFF, 0x02, 0x00, 0x00, 0xFF, 0x00, 0x00, -0x00, 0xFE, 0x01, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0xFE, -0x00, 0x00, 0xFD, 0xF6, 0xF4, 0xFF, 0xBD, 0xC3, 0xAC, 0x82, -0x04, 0xCE, 0xD8, 0xDC, 0xA5, 0x08, 0x00, 0xFF, 0x2F, 0x28, -0x2C, 0x30, 0x2F, 0x07, 0x09, 0xFE, 0x01, 0x01, 0xFF, 0xFB, -0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x00, 0xFE, 0xFC, 0x00, 0x00, 0xFE, 0xFD, -0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, -0xFF, 0x01, 0x00, 0x00, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x04, -0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, -0xFD, 0x00, 0x00, 0xFF, 0x01, 0x08, 0x00, 0xF8, 0xF5, 0xFF, -0xFF, 0xCC, 0xD5, 0xC7, 0xBE, 0xDB, 0xEB, 0xEC, 0xBC, 0x03, -0x49, 0x36, 0x00, 0xF5, 0xE3, 0xEC, 0xEF, 0xDE, 0x08, 0xFB, -0xF5, 0x26, 0x12, 0x0F, 0x18, 0x19, 0x03, 0x02, 0xFC, 0x00, -0x01, 0xF9, 0xEC, 0x00, 0x00, 0xF8, 0xEE, 0x00, 0x00, 0xF9, -0xED, 0x00, 0x00, 0xF9, 0xF2, 0x00, 0x00, 0xFA, 0xF2, 0x00, -0x00, 0xFA, 0xF4, 0x00, 0x00, 0xF9, 0xF3, 0x00, 0x00, 0xFA, -0xF2, 0x00, 0x00, 0xF8, 0xF1, 0x00, 0xD8, 0xEB, 0xF7, 0x00, -0x98, 0xD4, 0xFB, 0x00, 0xBB, 0xDC, 0xF6, 0x00, 0xE1, 0xF5, -0x14, 0x00, 0x24, 0x06, 0xF7, 0xFF, 0xCC, 0xD6, 0xC9, 0xBB, -0xD2, 0xE9, 0xEA, 0x8D, 0x00, 0x00, 0x00, 0xD3, 0x03, 0x76, -0x73, 0x69, 0xF7, 0xEA, 0xE2, 0xCC, 0xEE, 0xE4, 0xEE, 0xF1, -0xDE, 0x07, 0xF9, 0xF0, 0x23, 0x14, 0x0B, 0x06, 0x1B, 0x02, -0xFE, 0xF7, 0x00, 0x01, 0xFD, 0xFB, 0x00, 0x00, 0xFE, 0xFF, -0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, -0xFD, 0xFF, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0xFD, 0xFF, -0x00, 0x00, 0xFD, 0x00, 0x00, 0xC2, 0xE9, 0xF4, 0x00, 0xEB, -0x38, 0x54, 0x00, 0x02, 0x16, 0x21, 0x00, 0xDD, 0xEF, 0xF7, -0xFF, 0x0A, 0xDF, 0xBB, 0xB7, 0xD6, 0xEC, 0xEF, 0x8D, 0x01, -0x01, 0x01, 0xCC, 0x2E, 0x3F, 0x6E, 0xF0, 0x03, 0x9C, 0xA6, -0xC3, 0xFF, 0xF5, 0xF1, 0xE7, 0xF7, 0xEB, 0xE4, 0xCF, 0xEE, -0xE4, 0xF0, 0xF5, 0xE0, 0x04, 0xFB, 0xF9, 0x20, 0x18, 0x0F, -0x0B, 0x1C, 0x02, 0xFF, 0xFD, 0x00, 0x00, 0xFD, 0xFF, 0x00, -0x00, 0xFE, 0xFE, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0xFD, -0xFF, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xFD, 0xFF, 0x00, -0x00, 0xFD, 0xFF, 0x00, 0xD6, 0xFB, 0xFE, 0x00, 0xF0, 0x2B, -0x33, 0x00, 0xF3, 0xF9, 0xF1, 0x00, 0xEA, 0xE6, 0xEE, 0xF8, -0x04, 0xE5, 0xCF, 0x72, 0x03, 0x02, 0x01, 0xCC, 0x35, 0x48, -0x7C, 0xF0, 0x3B, 0x50, 0x8A, 0xFF, 0x02, 0x04, 0x05, 0x08, -0x00, 0x42, 0x59, 0x9B, 0xFE, 0x22, 0x2E, 0x51, 0xEC, 0x00, -0x00, 0x00, 0xC8, 0xC9, 0xE2, 0xEC, 0x8C, 0xE9, 0xEA, 0xF1, -0xE8, 0x00, 0xFA, 0xFE, 0x00, 0x00, 0xFB, 0xFE, 0x00, 0x00, -0xFB, 0xFE, 0x00, 0x00, 0xFB, 0xFE, 0x00, 0x00, 0xFB, 0xFE, -0x00, 0x00, 0xFB, 0xFE, 0x00, 0x00, 0xFB, 0xFE, 0x00, 0x00, -0xFB, 0xFE, 0x00, 0x00, 0x08, 0x03, 0x00, 0x08, 0x0F, 0x06, -0x00, 0xFB, 0x0B, 0xF9, 0x00, 0xF8, 0x03, 0xFA, 0xFC, 0xFE, -0xFF, 0x00, 0xD0, 0x2F, 0x44, 0x76, 0xF0, 0x37, 0x4B, 0x82, -0xFF, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, -0x01, 0x02, 0x02, 0x00, 0x2F, 0x40, 0x6E, 0xFD, 0xDE, 0xD2, -0xAF, 0xEC, 0x00, 0x00, 0x00, 0xDB, 0x0C, 0x03, 0x01, 0x0B, -0x00, 0xFB, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xD1, 0xF5, 0x11, 0x00, -0xBE, 0xF6, 0xF6, 0x00, 0x03, 0x0D, 0x03, 0x00, 0x08, 0x0B, -0x07, 0x00, 0xE9, 0x10, 0x0C, 0x00, 0x09, 0x02, 0xFB, 0x00, -0xF4, 0xFD, 0xF4, 0x00, 0x19, 0x1C, 0x19, 0x06, 0xB6, 0xD6, -0x26, 0x7F, 0xCB, 0xCD, 0xDD, 0xFA, 0xA5, 0xCC, 0x67, 0x00, -0x18, 0x0C, 0x18, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x07, 0x02, 0x02, 0x12, 0x0A, 0x02, 0x02, 0x0C, 0x00, -0xFB, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0xFF, 0x00, 0x00, 0xBC, 0xDB, 0xEC, 0x00, 0x97, -0x2B, 0xF8, 0x00, 0x28, 0x2E, 0x27, 0x00, 0x29, 0x1C, 0x2A, -0x00, 0x0A, 0x03, 0x0B, 0x00, 0xDE, 0xE9, 0xDC, 0x00, 0xEA, -0xEC, 0xEA, 0x00, 0x09, 0xF2, 0x0C, 0x07, 0x21, 0x43, 0x36, -0x69, 0x09, 0x06, 0x08, 0x00, 0x07, 0x01, 0x07, 0x00, 0xD4, -0xCD, 0xD1, 0xFC, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, -0x10, 0x04, 0x04, 0x28, 0x03, 0xFE, 0xFF, 0x01, 0x00, 0xFE, -0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x00, 0xFD, 0xF6, 0xFE, 0x00, 0xEE, 0xD8, -0xEF, 0x00, 0xC9, 0xFC, 0xC8, 0x00, 0xD9, 0xE7, 0xD7, 0x00, -0x07, 0x02, 0x08, 0x00, 0x03, 0xEF, 0x05, 0x00, 0x0E, 0xF2, -0x10, 0x00, 0x0F, 0x19, 0xFB, 0x00, 0x03, 0x12, 0xFF, 0x00, -0x02, 0x05, 0xFF, 0x00, 0xFC, 0xFB, 0xFA, 0x00, 0xF4, 0x0B, -0xF1, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x12, -0x06, 0x04, 0x27, 0x01, 0xFB, 0xFE, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0x02, 0x04, 0x00, 0xF9, -0xF7, 0xFB, 0xFF, 0x12, 0x0A, 0x13, 0xEF, 0x26, 0x04, 0x04, -0x05, 0x01, 0xE5, 0xFB, 0x0C, 0x04, 0xF0, 0x03, 0x01, 0x02, -0x0E, 0x09, 0x00, 0xE8, 0x04, 0xFB, 0x00, 0xE9, 0x08, 0xD7, -0x00, 0x3D, 0x13, 0x40, 0x00, 0x0D, 0xE6, 0xEF, 0xBA, 0x1F, -0x25, 0x34, 0xFA, 0xFF, 0x00, 0xFF, 0x00, 0x1F, 0x2D, 0x25, -0xFE, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xF7, 0xF5, 0xED, 0x00, 0xFF, 0x00, 0x00, 0x06, 0x12, 0x05, -0x03, 0x25, 0x00, 0xFB, 0xFF, 0x00, 0xFF, 0x07, 0x0F, 0x00, -0xF8, 0xFA, 0x01, 0xFF, 0xDE, 0xE9, 0xEA, 0xDF, 0xD0, 0xF2, -0xEF, 0xB2, 0xF7, 0xFD, 0xE3, 0xCA, 0x5C, 0xF7, 0x00, 0x05, -0x17, 0x03, 0x05, 0x3E, 0x30, 0xFB, 0x12, 0x4A, 0xC5, 0xED, -0x05, 0x18, 0x8E, 0x35, 0x07, 0x01, 0x11, 0x0A, 0x10, 0x00, -0xEF, 0xF9, 0xEF, 0x00, 0x3F, 0xC9, 0xD4, 0x5D, 0x5D, 0x40, -0x9C, 0xEA, 0x0F, 0x15, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, -0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, -0xEC, 0xDD, 0x01, 0x00, 0x00, 0x00, 0x09, 0x12, 0x02, 0x04, -0x22, 0xFD, 0x01, 0x0E, 0xFF, 0xE0, 0xE7, 0xEF, 0xE5, 0xCD, -0xEF, 0xEC, 0xB4, 0xEA, 0xFD, 0xFB, 0xBC, 0x00, 0x00, 0x00, -0xD7, 0x01, 0x01, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x02, 0xE9, -0xFD, 0xFB, 0xD2, 0xB9, 0xF0, 0xE9, 0xBE, 0xDA, 0xF2, 0xF4, -0x63, 0x02, 0x3B, 0x1F, 0x42, 0x0A, 0x0A, 0x0A, 0x00, 0x06, -0xFE, 0x06, 0x00, 0xFC, 0xFB, 0xF7, 0x05, 0xEA, 0xE3, 0xCD, -0x00, 0x0F, 0x15, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xEC, -0xDE, 0x00, 0x00, 0x00, 0x00, 0x02, 0xDC, 0xF4, 0xF8, 0xCA, -0xCE, 0xF0, 0xDD, 0xC6, 0xE5, 0xFD, 0xFA, 0xBB, 0x00, 0x00, -0x00, 0xD7, 0x00, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0xF3, -0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, -0x00, 0xF1, 0x00, 0x00, 0x00, 0xE4, 0xF5, 0xF9, 0xFE, 0x24, -0xFF, 0xFB, 0xFF, 0x42, 0xFB, 0xFB, 0xFB, 0x00, 0xFD, 0xFA, -0xFD, 0x00, 0x00, 0xFF, 0x00, 0x02, 0xF7, 0xF3, 0xEA, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x27, 0x44, -0xFF, 0xD5, 0xC5, 0x99, 0xF0, 0xD7, 0xF9, 0xF7, 0x8A, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, -0xF2, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, -0xFB, 0x09, 0x0C, 0x15, 0xED, 0x22, 0x08, 0x1A, 0xD7, 0xDD, -0xC2, 0xF5, 0xD5, 0xF5, 0x08, 0xF7, 0x02, 0x12, 0x17, 0xFE, -0x00, 0x05, 0x05, 0x08, 0xF5, 0x1F, 0x2B, 0x4A, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xBB, 0x68, -0x3E, 0x68, 0xFE, 0x55, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_DSP3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x02, 0x3E, 0x3E, -0x3E, 0x47, 0x2F, 0x2F, 0x2F, 0x4A, 0x2A, 0x2A, 0x2A, 0x23, -0x07, 0x07, 0x07, 0xFF, 0xCB, 0xCB, 0xCB, 0xDE, 0xC4, 0xC4, -0xC4, 0xB5, 0xD0, 0xD0, 0xD0, 0xBA, 0xFC, 0xFC, 0xFC, 0xFE, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, -0x1A, 0x1A, 0x12, 0x83, 0x83, 0x83, 0xB0, 0x0E, 0x0E, 0x0E, -0x3C, 0xFA, 0xFA, 0xFA, 0x01, 0x11, 0x11, 0x11, 0x00, 0x0C, -0x0C, 0x0C, 0x00, 0xF8, 0xF8, 0xF8, 0x00, 0xFB, 0xFB, 0xFB, -0xFF, 0xD3, 0xD3, 0xD3, 0xC1, 0x86, 0x86, 0x86, 0x54, 0xF2, -0xF2, 0xF2, 0xED, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x09, 0x73, 0x73, -0x73, 0x9C, 0x20, 0x20, 0x20, 0x4A, 0x06, 0x06, 0x06, 0x01, -0x1B, 0x1B, 0x1B, 0x00, 0x2B, 0x2B, 0x2B, 0x00, 0x1F, 0x1F, -0x1F, 0x00, 0x10, 0x10, 0x10, 0x00, 0x07, 0x07, 0x07, 0x01, -0x15, 0x15, 0x15, 0x20, 0x12, 0x12, 0x12, 0x1F, 0xD1, 0xD1, -0xD1, 0xB7, 0xF9, 0xF9, 0xF9, 0xFB, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, -0x3B, 0x3B, 0x43, 0xA7, 0xA7, 0xA7, 0xDC, 0xCA, 0xCA, 0xCA, -0xFF, 0xE6, 0xE6, 0xE6, 0xFF, 0xEF, 0xEF, 0xEF, 0xFF, 0xEB, -0xEB, 0xEB, 0xFF, 0xE8, 0xE8, 0xE8, 0xFF, 0xE8, 0xE8, 0xE8, -0xFF, 0xEB, 0xEB, 0xEB, 0xFF, 0xF1, 0xF1, 0xF1, 0xFF, 0xED, -0xED, 0xED, 0xFF, 0xD5, 0xD5, 0xD5, 0xFF, 0xAD, 0xAD, 0xAD, -0xE0, 0x3F, 0x3F, 0x3F, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x4A, 0x4A, 0x4A, 0x56, 0x72, 0x72, -0x72, 0xA3, 0x2B, 0x2B, 0x2B, 0x06, 0x00, 0x00, 0x00, 0x00, -0xDC, 0xDC, 0xDC, 0x00, 0xD2, 0xD2, 0xD2, 0x00, 0xE1, 0xE1, -0xE1, 0x00, 0xF2, 0xF2, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, -0x10, 0x10, 0x10, 0x00, 0x20, 0x20, 0x20, 0x00, 0x2E, 0x2E, -0x2E, 0x00, 0x23, 0x23, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, -0xD6, 0xD6, 0xD6, 0xFB, 0x8C, 0x8C, 0x8C, 0x61, 0xB5, 0xB5, -0xB5, 0xA5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x21, -0x21, 0x21, 0x21, 0x9A, 0x9A, 0x9A, 0xD1, 0x28, 0x28, 0x28, -0x0D, 0xE0, 0xE0, 0xE0, 0x00, 0xBE, 0xBE, 0xBE, 0x00, 0xC9, -0xC9, 0xC9, 0x00, 0xFD, 0xFD, 0xFD, 0x00, 0x1E, 0x1E, 0x1E, -0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x01, 0x01, 0x01, 0x00, 0xE4, -0xE4, 0xE4, 0x00, 0xE1, 0xE1, 0xE1, 0x00, 0x06, 0x06, 0x06, -0x00, 0x38, 0x38, 0x38, 0x00, 0x41, 0x41, 0x41, 0x00, 0x20, -0x20, 0x20, 0x00, 0xD1, 0xD1, 0xD1, 0xF5, 0x65, 0x65, 0x65, -0x33, 0xE4, 0xE4, 0xE4, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x5D, -0x5D, 0x7B, 0x43, 0x43, 0x43, 0x41, 0xD6, 0xD6, 0xD6, 0x00, -0xBA, 0xBA, 0xBA, 0x00, 0xCC, 0xCC, 0xCC, 0x00, 0x13, 0x13, -0x13, 0x00, 0x48, 0x48, 0x48, 0x00, 0x48, 0x48, 0x48, 0x00, -0x30, 0x30, 0x30, 0x00, 0x29, 0x29, 0x29, 0x00, 0x29, 0x29, -0x29, 0x00, 0x13, 0x13, 0x13, 0x00, 0xE9, 0xE9, 0xE9, 0x00, -0xD8, 0xD8, 0xD8, 0x00, 0xF4, 0xF4, 0xF4, 0x00, 0x05, 0x05, -0x05, 0x00, 0x23, 0x23, 0x23, 0x06, 0xEC, 0xEC, 0xEC, 0x02, -0xCD, 0xCD, 0xCD, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x2B, 0x2B, -0x34, 0xDE, 0xDE, 0xDE, 0x00, 0xE7, 0xE7, 0xE7, 0x00, 0xD8, -0xD8, 0xD8, 0x00, 0x17, 0x17, 0x17, 0x00, 0x18, 0x18, 0x18, -0x00, 0xFB, 0xFB, 0xFB, 0x00, 0xE3, 0xE3, 0xE3, 0x00, 0x0B, -0x0B, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xF4, 0xF4, -0x00, 0xF9, 0xF9, 0xF9, 0x00, 0x23, 0x23, 0x23, 0x00, 0x03, -0x03, 0x03, 0x00, 0xD5, 0xD5, 0xD5, 0x00, 0x24, 0x24, 0x24, -0x00, 0x05, 0x05, 0x05, 0x00, 0x2D, 0x2D, 0x2D, 0x34, 0x00, -0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, -0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x05, -0xDC, 0xDC, 0xDC, 0x00, 0x01, 0x01, 0x01, 0x00, 0x12, 0x12, -0x12, 0x00, 0x15, 0x15, 0x15, 0x00, 0xF5, 0xF5, 0xF5, 0x00, -0xF8, 0xF8, 0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFC, 0xFC, -0xFC, 0x00, 0x01, 0x01, 0x01, 0x00, 0x04, 0x04, 0x04, 0x00, -0x04, 0x04, 0x04, 0x00, 0x17, 0x17, 0x17, 0x00, 0xF7, 0xF7, -0xF7, 0x00, 0x02, 0x02, 0x02, 0x00, 0xF8, 0xF8, 0xF8, 0x00, -0xDA, 0xDB, 0xDA, 0x00, 0x07, 0x0E, 0x07, 0x0F, 0x01, 0x1A, -0x00, 0x2C, 0x00, 0xF7, 0x00, 0xE8, 0xFF, 0xEF, 0x00, 0xE6, -0x04, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xF4, 0xF4, 0xF6, 0xF6, -0xF6, 0xF6, 0x00, 0x1D, 0x1D, 0x1D, 0x00, 0x13, 0x13, 0x13, -0x00, 0x15, 0x15, 0x15, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x0C, -0x0C, 0x0C, 0x00, 0x26, 0x26, 0x26, 0x00, 0xFF, 0xFF, 0xFF, -0x00, 0x02, 0x02, 0x02, 0x00, 0x05, 0x05, 0x05, 0x00, 0x03, -0x11, 0x02, 0x00, 0xC6, 0xDA, 0xC6, 0x00, 0xE8, 0x18, 0xE7, -0x00, 0xFD, 0x1B, 0xFD, 0x00, 0xD9, 0x16, 0xD7, 0x00, 0xFD, -0x06, 0xFD, 0x00, 0x0B, 0x0F, 0x0C, 0x27, 0x86, 0xB2, 0x86, -0xCD, 0xC9, 0xDB, 0xC8, 0xED, 0xB0, 0x60, 0xB2, 0x25, 0x04, -0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xBE, 0x38, 0x38, -0x38, 0x45, 0xF8, 0xF8, 0xF8, 0x00, 0x24, 0x24, 0x24, 0x00, -0x06, 0x06, 0x06, 0x00, 0x18, 0x18, 0x18, 0x00, 0xFD, 0xFD, -0xFD, 0x00, 0xE8, 0xE8, 0xE8, 0x00, 0x12, 0x12, 0x12, 0x00, -0x02, 0x02, 0x02, 0x00, 0xAD, 0xEA, 0xAB, 0x00, 0x28, 0x1E, -0x29, 0x00, 0x4C, 0x28, 0x4D, 0x00, 0x0A, 0x04, 0x0A, 0x00, -0xF0, 0xFA, 0xF0, 0x00, 0xF0, 0xF9, 0xF0, 0x00, 0xEE, 0xF9, -0xEE, 0x00, 0xEC, 0xF7, 0xEC, 0x00, 0xE8, 0xF7, 0xE9, 0x00, -0xD4, 0xF1, 0xD4, 0x0F, 0x00, 0x02, 0x00, 0x15, 0x04, 0x00, -0x00, 0x00, 0x00, 0xB5, 0xB5, 0xB5, 0x9F, 0x35, 0x35, 0x35, -0x64, 0xDA, 0xDA, 0xDA, 0x23, 0x34, 0x34, 0x34, 0x00, 0x16, -0x16, 0x16, 0x00, 0x07, 0x07, 0x07, 0x00, 0x0C, 0x0C, 0x0C, -0x00, 0x07, 0x07, 0x07, 0x00, 0x05, 0x05, 0x05, 0x00, 0xFB, -0xFD, 0xFB, 0x00, 0x0D, 0xFE, 0x0E, 0x00, 0xFE, 0x01, 0xFF, -0x00, 0xC7, 0xE9, 0xC7, 0x00, 0xEA, 0xF7, 0xEA, 0x00, 0xF1, -0xFA, 0xF0, 0x00, 0xF1, 0xF9, 0xF1, 0x00, 0xF0, 0xFA, 0xF1, -0x00, 0xF0, 0xF9, 0xF0, 0x00, 0xE6, 0xF6, 0xE6, 0x00, 0xE7, -0xE9, 0xE5, 0xF7, 0x00, 0xF7, 0x00, 0xF1, 0x03, 0x00, 0x00, -0x00, 0x00, 0xFC, 0xFC, 0xFC, 0xF5, 0xD2, 0xD2, 0xD2, 0xCC, -0x39, 0x39, 0x39, 0x45, 0xDC, 0xDC, 0xDC, 0x0F, 0xFB, 0xFB, -0xFB, 0x00, 0x18, 0x18, 0x18, 0x00, 0x17, 0x17, 0x17, 0x00, -0x09, 0x09, 0x09, 0x00, 0x08, 0x08, 0x08, 0x00, 0x09, 0x08, -0x09, 0x00, 0xBA, 0xE6, 0xB9, 0x00, 0xC9, 0xEE, 0xC9, 0x00, -0xD8, 0xF1, 0xD2, 0x00, 0xE0, 0xF5, 0xD8, 0x00, 0xE0, 0xF3, -0xD7, 0x00, 0xE1, 0xF1, 0xDA, 0x00, 0xE1, 0xEC, 0xDE, 0xFF, -0xE3, 0xE1, 0xE4, 0xF4, 0x3D, 0x1A, 0x3D, 0x02, 0xDE, 0xDE, -0xDE, 0xE9, 0xFD, 0xC6, 0xFE, 0x95, 0x04, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xEA, 0xEA, 0xEA, 0xC7, 0x8E, -0x8E, 0x8E, 0x4C, 0x4B, 0x4B, 0x4B, 0x7E, 0x05, 0x05, 0x05, -0x4C, 0xDA, 0xDA, 0xDA, 0x08, 0x05, 0x05, 0x05, 0x00, 0x20, -0x20, 0x20, 0x00, 0x0D, 0x0D, 0x0D, 0x00, 0x00, 0x00, 0x00, -0x00, 0xDD, 0x0D, 0xD9, 0x00, 0xD6, 0xF5, 0xCF, 0x00, 0x0F, -0xF4, 0x0D, 0x00, 0x10, 0xFA, 0x11, 0xF7, 0xE3, 0xC6, 0xF5, -0xC0, 0xE6, 0xD2, 0xEC, 0xC7, 0xFC, 0xEA, 0x00, 0xD9, 0xFF, -0xF4, 0x00, 0xE4, 0x07, 0x9E, 0x05, 0xA7, 0xFE, 0xF0, 0xFC, -0xEB, 0x00, 0x00, 0x00, 0xFA, 0x04, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF5, 0xF5, -0xF5, 0xD3, 0xAA, 0xAA, 0xAA, 0x63, 0x0F, 0x0F, 0x0F, 0x32, -0x2E, 0x2E, 0x2E, 0x4F, 0x1A, 0x1A, 0x1A, 0x33, 0xF1, 0xF1, -0xF1, 0x1C, 0x0F, 0x0F, 0x0F, 0x0C, 0x01, 0x01, 0x01, 0x00, -0xF1, 0x2C, 0xE7, 0x0E, 0x0A, 0xF5, 0x02, 0xF9, 0x08, 0xAC, -0x17, 0xA3, 0xC9, 0xD1, 0xD1, 0xB7, 0xF2, 0xF2, 0xF2, 0xCE, -0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, -0x00, 0x01, 0xE8, 0xFC, 0xE8, 0x05, 0x01, 0xEF, 0x01, 0xE9, -0x00, 0x00, 0xFF, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, -0x22, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x2D, 0x24, -0x80, 0x09, 0xC5, 0x27, 0x8C, 0x05, 0xDE, 0x00, 0x00, 0x00, -0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, -0x05, 0x27, 0x98, 0x22, 0xEE, 0x07, 0x46, 0x01, 0x9A, 0x00, -0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFA, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0xEC, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xEF, -0xF9, 0xE3, 0x0C, 0x16, 0x00, 0x1E, 0x00, 0x00, 0x00, 0xFA, -0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x08, 0x19, -0x02, 0x1B, 0x0F, 0x1B, 0x0C, 0x30, 0x01, 0x05, 0xFF, 0x02, -0xEA, 0xFD, 0xE9, 0x07, 0x02, 0xF1, 0x01, 0xE6, 0x00, 0x00, -0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x00, 0x00, 0x23, 0x43, 0x19, 0x51, 0x4E, -0x55, 0x4F, 0x61, 0x0E, 0x0F, 0x10, 0x1B, 0xDA, 0x05, 0xCA, -0x17, 0xDC, 0xF0, 0xC1, 0x06, 0x00, 0x00, 0x00, 0x01, 0x04, -0x0C, 0x01, 0x0A, 0x52, 0x7B, 0x46, 0x97, 0x5C, 0x55, 0x66, -0x5B, 0x09, 0x08, 0x0B, 0x03, 0xDC, 0xF1, 0xD9, 0x00, 0x90, -0xD2, 0x88, 0x00, 0xE7, 0xF4, 0xF8, 0xE5, 0xF7, 0x00, 0x00, -0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x19, 0x46, 0x0C, 0x5E, 0x7D, 0x90, 0x85, 0x9F, 0xF6, 0xFE, -0xF5, 0x02, 0xE4, 0xF6, 0xDC, 0x00, 0xF8, 0xF0, 0x00, 0x00, -0xEA, 0xE5, 0x04, 0xF1, 0x01, 0x04, 0xFD, 0x05, 0x13, 0x4E, -0x05, 0x71, 0x19, 0x3F, 0x20, 0x5E, 0xBF, 0xF0, 0xAA, 0x00, -0xF7, 0x00, 0xE6, 0x00, 0xE9, 0xF9, 0xE0, 0x00, 0x14, 0x0B, -0xF9, 0xFF, 0xE6, 0xF4, 0x00, 0xE7, 0x00, 0x00, 0x00, 0x00, -0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, -0x17, 0xF9, 0x3A, 0x96, 0xDB, 0x84, 0x02, 0x1E, 0x13, 0x04, -0x00, 0x15, 0x0C, 0x05, 0x00, 0x11, 0x13, 0xF9, 0x00, 0x2C, -0x0F, 0x16, 0xF1, 0xE2, 0xFE, 0xE3, 0x02, 0x07, 0x02, 0xFF, -0x09, 0xD3, 0xF7, 0xAF, 0x00, 0x2C, 0x0F, 0x13, 0x00, 0x2B, -0x12, 0x18, 0x00, 0x2D, 0xFD, 0x2D, 0xFF, 0xA9, 0xAD, 0xCB, -0xB8, 0xF3, 0xE1, 0xFD, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x03, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xED, -0x01, 0xED, 0x2C, 0x3E, 0x0A, 0x47, 0x38, 0x2A, 0x1D, 0x0B, -0x2E, 0x15, 0x1B, 0xFF, 0xF5, 0xD8, 0x01, 0xE4, 0xAF, 0x77, -0xD8, 0x81, 0xF7, 0xEE, 0xFF, 0xCA, 0xF4, 0xD8, 0xFE, 0xD2, -0x0D, 0xF9, 0x03, 0x0F, 0x11, 0xFB, 0x13, 0xFC, 0xE2, 0xC7, -0xF1, 0xD7, 0xA6, 0x80, 0xCE, 0x9E, 0xD2, 0xAE, 0xF2, 0x8B, -0x00, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x02, 0x01, 0x02, 0x00, 0x23, 0x09, 0x0F, 0x02, 0x24, 0xFF, -0xFF, 0x00, 0x01, 0xF7, 0xF0, 0xFE, 0xE4, 0x00, 0x00, 0x00, -0xDA, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, -0xFE, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF9, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x08, 0x4A, -0xE1, 0x2D, 0xE8, 0x27, 0x03, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Fullscreen3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x01, -0xB3, 0xC9, 0xD3, 0x00, 0xF3, 0xF9, 0xFF, 0x00, 0x10, 0x0D, -0x0B, 0x00, 0x0D, 0x09, 0x07, 0x00, 0x08, 0x04, 0x03, 0x00, -0x00, 0xFE, 0xFD, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFE, -0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0xFD, 0x00, 0xFE, 0xFE, -0xFE, 0x00, 0xFD, 0xFE, 0xFF, 0x00, 0xF4, 0xF6, 0xF8, 0x00, -0xEE, 0xF0, 0xF5, 0x00, 0xF0, 0xF1, 0xF2, 0x00, 0xB6, 0xB6, -0xB6, 0x00, 0xE0, 0xDA, 0xD4, 0x00, 0x04, 0x0F, 0x17, 0x00, -0x06, 0x24, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xF0, -0xF4, 0xF7, 0x00, 0xF0, 0xF8, 0xFE, 0x00, 0x02, 0x04, 0x04, -0x00, 0x02, 0x01, 0x02, 0x00, 0xFF, 0x06, 0xFE, 0x00, 0x00, -0xFE, 0xFD, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0xFD, 0x01, -0x00, 0xFF, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0xFF, 0x00, 0x00, 0xFE, 0xFE, 0xFD, 0x00, 0xFE, 0xFD, 0xFE, -0x00, 0xFC, 0xFD, 0xFE, 0x00, 0xF3, 0xF5, 0xF9, 0x00, 0xEF, -0xF1, 0xF6, 0x00, 0xEB, 0xED, 0xF3, 0x00, 0xDA, 0xDE, 0xE1, -0x00, 0xD9, 0xD4, 0xD6, 0x00, 0x0A, 0x0D, 0xE3, 0x00, 0x8A, -0x7C, 0x79, 0x00, 0x0A, 0x0D, 0x0D, 0x00, 0x04, 0x0A, 0x05, -0x04, 0x39, 0xF0, 0xF9, 0xFB, 0x89, 0xF4, 0xF8, 0xFB, 0x01, -0xFB, 0xFE, 0xFF, 0x00, 0x04, 0x01, 0x01, 0x00, 0xFF, 0xFD, -0xFB, 0x00, 0xFC, 0xFB, 0xFD, 0x00, 0xFC, 0xFA, 0xFD, 0x00, -0xFE, 0xFD, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, -0xFF, 0x00, 0xFE, 0xFD, 0xFD, 0x00, 0xFD, 0xFD, 0xFD, 0x00, -0xFE, 0xFD, 0xFF, 0x00, 0xFB, 0xFB, 0xFC, 0x00, 0xF7, 0xF7, -0xFA, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x0D, 0x0C, 0x0C, 0xA2, -0x05, 0x06, 0x06, 0x9B, 0xFB, 0xF9, 0xF9, 0x00, 0xB3, 0xB1, -0xB1, 0x00, 0x2D, 0x44, 0x46, 0x00, 0x04, 0x0A, 0x06, 0x04, -0x28, 0xFF, 0x03, 0xFE, 0x3D, 0xF5, 0xF9, 0xFA, 0x00, 0xF4, -0xF8, 0xF9, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFB, 0xFB, -0x00, 0xF7, 0xF6, 0xF9, 0x00, 0xF8, 0xF7, 0xF9, 0x00, 0xFC, -0xFA, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFD, 0xFE, -0x00, 0xFE, 0xFD, 0xFD, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0xFF, -0xFD, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xF8, 0xF7, 0xF8, -0x00, 0xDA, 0xDC, 0xDE, 0x00, 0xED, 0xF2, 0xF4, 0xD9, 0x0B, -0x0C, 0x0F, 0x9B, 0x05, 0x0B, 0x0F, 0x00, 0xDA, 0xE0, 0xFA, -0x00, 0x02, 0xC5, 0xCD, 0x00, 0x04, 0xF9, 0xFB, 0xFC, 0x00, -0xE9, 0xEF, 0xF3, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, -0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFD, 0xFB, 0xFD, 0x00, -0xFA, 0xF8, 0xF9, 0x00, 0xFE, 0xFC, 0xFD, 0x00, 0xFD, 0xFB, -0xFB, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFE, 0xFE, 0xFD, 0x00, -0xFF, 0xFD, 0xFE, 0x00, 0xFE, 0xFC, 0xFE, 0x00, 0xFD, 0xFD, -0xFD, 0x00, 0xEB, 0xED, 0xF0, 0x00, 0xEA, 0xEA, 0xEB, 0x00, -0xFB, 0xF8, 0xF7, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x06, 0x0B, -0x0F, 0x00, 0x1E, 0x38, 0x51, 0x00, 0xDC, 0xE6, 0xEC, 0x00, -0xE3, 0xDB, 0xE2, 0x00, 0x04, 0xFC, 0xFE, 0xFF, 0x00, 0xF3, -0xF9, 0xFA, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x00, -0x00, 0xFA, 0xFC, 0xFD, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x02, 0x01, 0x00, 0xFA, 0xFB, 0xFC, 0x00, 0xFB, 0xF9, 0xFB, -0x00, 0xFB, 0xF7, 0xF7, 0x00, 0xFC, 0xF9, 0xFB, 0x00, 0xFF, -0xFC, 0xFD, 0x00, 0xF8, 0xF8, 0xFA, 0x00, 0xF0, 0xF2, 0xF2, -0x00, 0xFD, 0xFB, 0xFB, 0x00, 0xFC, 0xF9, 0xF9, 0x00, 0xFC, -0xF7, 0xF8, 0x00, 0x09, 0x09, 0x0D, 0x06, 0x28, 0x39, 0x4C, -0x13, 0xF1, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xF4, 0xE9, -0xEF, 0xF8, 0xF9, 0x04, 0xFC, 0xFE, 0xFD, 0x00, 0xF4, 0xFA, -0xFA, 0x00, 0x01, 0x02, 0x02, 0x00, 0xF6, 0xFC, 0xFE, 0x00, -0x22, 0x37, 0x32, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x01, -0x01, 0x00, 0x03, 0xFE, 0xFF, 0x00, 0x02, 0xFD, 0xFA, 0x00, -0xFB, 0xF8, 0xFB, 0x00, 0xF8, 0xF6, 0xFB, 0x00, 0xFC, 0xFA, -0xFC, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xFE, 0xFF, 0x00, -0xFF, 0xFD, 0xFD, 0x00, 0xFE, 0xFD, 0xFC, 0x00, 0xFF, 0xFB, -0xFD, 0x00, 0x00, 0xFF, 0x00, 0x5C, 0x00, 0xFF, 0x01, 0x5A, -0x02, 0xFD, 0xFB, 0x00, 0xF6, 0xFC, 0xF4, 0xC2, 0xD1, 0xDE, -0xE5, 0x42, 0x04, 0xFE, 0xFF, 0x00, 0xFF, 0xF6, 0xFA, 0xFC, -0x00, 0x00, 0x00, 0xFF, 0x00, 0xF5, 0xFE, 0xFE, 0x00, 0xF8, -0x02, 0x05, 0x00, 0xF9, 0xFA, 0xFE, 0x00, 0xFF, 0xFE, 0xFE, -0x00, 0xFF, 0xFE, 0x00, 0x00, 0xFB, 0xF9, 0xFF, 0x00, 0xF7, -0xF4, 0xFC, 0x00, 0xF9, 0xF5, 0xFA, 0x00, 0xFD, 0xF9, 0xFA, -0x00, 0xFE, 0xFD, 0xFE, 0x00, 0xFF, 0xFC, 0xFC, 0x00, 0xFE, -0xFC, 0xFC, 0x00, 0xFF, 0xFB, 0xFE, 0x00, 0xFF, 0xFC, 0xFE, -0x00, 0x01, 0x00, 0x00, 0x01, 0xEF, 0xE9, 0xEF, 0x03, 0xD3, -0xD7, 0xDF, 0x00, 0xF2, 0xF8, 0xF3, 0x0D, 0x00, 0x07, 0x08, -0x00, 0x04, 0xF8, 0xF4, 0xF6, 0x00, 0xEE, 0xE3, 0xE7, 0x00, -0x00, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x05, 0x00, 0xDE, 0xEB, -0xF5, 0x00, 0xF5, 0xF7, 0xFB, 0x00, 0xFF, 0xFE, 0xFF, 0x00, -0xFE, 0xFC, 0xFE, 0x00, 0xFE, 0xFB, 0xFE, 0x00, 0xFD, 0xFC, -0xFE, 0x00, 0xFE, 0xFA, 0xFD, 0x00, 0xFF, 0xFA, 0xFD, 0x00, -0x00, 0xFB, 0xFB, 0x00, 0xFF, 0xFB, 0xF9, 0x00, 0xFF, 0xFE, -0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0xFB, 0xF8, 0xFC, 0x00, -0xE2, 0xE4, 0xEC, 0x00, 0xEB, 0xEE, 0xF1, 0x00, 0xFF, 0xFB, -0xFC, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x00, 0x01, 0x03, 0x00, -0x04, 0xFE, 0xFC, 0xFC, 0xFF, 0xF8, 0xF0, 0xF2, 0x00, 0x00, -0x01, 0x00, 0x00, 0xF7, 0x08, 0x09, 0x00, 0xE9, 0xFE, 0x00, -0x00, 0xFC, 0x02, 0x03, 0x00, 0x02, 0x05, 0x04, 0x00, 0x00, -0x08, 0x01, 0x00, 0xFF, 0x02, 0x02, 0x00, 0xFE, 0xF8, 0xFB, -0x00, 0xFB, 0xF2, 0xF6, 0x00, 0xFB, 0xF8, 0xFA, 0x00, 0xFC, -0xF8, 0xFA, 0x00, 0xFE, 0xF8, 0xFA, 0x00, 0xFD, 0xF5, 0xF8, -0x00, 0xF3, 0xEE, 0xF5, 0x00, 0xEE, 0xEF, 0xF3, 0x00, 0xFE, -0xFB, 0xFA, 0x00, 0xFF, 0xF7, 0xF4, 0x00, 0x00, 0xF6, 0xF3, -0x00, 0x00, 0xFB, 0xF8, 0x00, 0x00, 0x01, 0x02, 0x00, 0x04, -0xFF, 0xFD, 0xFE, 0xFF, 0xFB, 0xF7, 0xF8, 0x00, 0xFF, 0xFF, -0xFF, 0x00, 0xF9, 0xFF, 0x01, 0x00, 0xEE, 0xFA, 0xFD, 0x00, -0xFF, 0xFB, 0xFE, 0x00, 0x00, 0x01, 0xFD, 0x00, 0x01, 0x00, -0x02, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFE, 0xF9, 0xFD, 0x00, -0xFE, 0xF8, 0xFB, 0x00, 0xFD, 0xFC, 0xFD, 0x00, 0xFC, 0xF8, -0xF9, 0x00, 0xF8, 0xEF, 0xF1, 0x00, 0xF5, 0xF4, 0xF8, 0x00, -0xFD, 0xF9, 0xFE, 0x00, 0xFF, 0x03, 0x01, 0x00, 0xFF, 0xF9, -0xFD, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x01, 0x00, -0x00, 0xFF, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x04, 0xFF, -0xFE, 0xFF, 0xFF, 0xFC, 0xF9, 0xFA, 0x00, 0x01, 0x01, 0x01, -0x00, 0xFD, 0xF9, 0xFC, 0x00, 0xEE, 0xEF, 0xFA, 0x00, 0xFF, -0xFC, 0xFB, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0xFE, 0x00, -0x00, 0xFF, 0xFB, 0xFC, 0x00, 0xFD, 0xF2, 0xF7, 0x00, 0xFD, -0xF2, 0xF4, 0x00, 0xFE, 0xF7, 0xF4, 0x00, 0xFC, 0xF3, 0xF3, -0x00, 0xFD, 0xF6, 0xF8, 0x00, 0x00, 0xFA, 0xFE, 0x00, 0x00, -0xFF, 0xFF, 0x00, 0x00, 0xF4, 0xF6, 0x00, 0x00, 0xF9, 0xF5, -0x00, 0x00, 0xF8, 0xF4, 0x00, 0x00, 0xFC, 0xF8, 0x00, 0x00, -0xFE, 0xFB, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x04, 0x02, 0x03, -0x04, 0xFF, 0x03, 0x05, 0x05, 0x00, 0x01, 0x01, 0x01, 0x00, -0x01, 0xFB, 0xFC, 0x00, 0xF2, 0xD1, 0xDA, 0x00, 0x00, 0xFE, -0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, -0x01, 0xFF, 0x00, 0x00, 0xFF, 0xFC, 0xFE, 0x00, 0x00, 0xFA, -0xFA, 0x00, 0xFF, 0xFB, 0xF8, 0x00, 0xFF, 0xFB, 0xF9, 0x00, -0x00, 0x00, 0x02, 0x00, 0x01, 0x07, 0x07, 0x00, 0xFF, 0xFC, -0xFF, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00, -0x00, 0xFE, 0xF3, 0x00, 0x00, 0xF8, 0xF4, 0x00, 0x00, 0xFA, -0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x02, 0x02, -0x00, 0x06, 0x02, 0x03, 0x00, 0x02, 0x03, 0x03, 0x00, 0xFA, -0xFC, 0xFF, 0x00, 0xFF, 0xF0, 0xEF, 0x00, 0x00, 0xFF, 0xFD, -0x00, 0x00, 0xFF, 0x02, 0x00, 0x00, 0x01, 0xFF, 0x00, 0xFF, -0xFF, 0x02, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFC, 0xFC, -0x00, 0x00, 0xFC, 0xFB, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, -0x02, 0x04, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFE, 0xFF, -0x00, 0xFE, 0xFE, 0xFD, 0x00, 0x00, 0xFE, 0xFD, 0x00, 0x00, -0xFE, 0xFC, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0xFE, 0xFD, -0x00, 0x00, 0x00, 0xFE, 0x00, 0x04, 0x25, 0x21, 0x20, 0xEA, -0x4A, 0x41, 0x01, 0xF3, 0x01, 0x03, 0x03, 0x01, 0xE3, 0xEB, -0xEE, 0x02, 0xCE, 0xC8, 0xE0, 0x0A, 0xFF, 0x00, 0xFF, 0x00, -0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x02, -0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0x00, -0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, -0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFC, 0xFD, 0x00, -0x00, 0xFE, 0xFC, 0x00, 0x00, 0xFE, 0xFD, 0x00, 0x00, 0xFF, -0xFD, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0xFE, 0xFD, 0xFF, -0x00, 0xFE, 0xFD, 0x00, 0x04, 0xFA, 0xF8, 0xF8, 0xBA, 0xFA, -0xF4, 0xF6, 0x0E, 0x00, 0x03, 0x02, 0x00, 0xC2, 0xD2, 0xDE, -0x34, 0xFF, 0xFE, 0x00, 0xCB, 0x00, 0xFF, 0x00, 0x00, 0x00, -0x01, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0x00, -0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, -0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x01, 0x01, 0xFE, -0x00, 0xFF, 0xFD, 0xFB, 0x00, 0x00, 0xFA, 0xFA, 0x00, 0x00, -0xFA, 0xFA, 0x00, 0x00, 0xFB, 0xF8, 0x00, 0x00, 0xFC, 0xFB, -0x00, 0x00, 0xFD, 0xFD, 0x00, 0x00, 0xFD, 0xFC, 0x00, 0x00, -0xFD, 0xFE, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, -0xFF, 0x00, 0xAC, 0xD1, 0xE1, 0x00, 0xD4, 0xEA, 0xF9, 0x00, -0x01, 0x0F, 0x11, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x02, -0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01, 0x03, 0x03, 0x00, -0xFF, 0xFD, 0xFC, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x01, -0xFD, 0x00, 0x00, 0x02, 0xFE, 0x00, 0x00, 0x03, 0x01, 0x00, -0x00, 0x04, 0x03, 0x00, 0x00, 0xFE, 0x07, 0x00, 0x00, 0x05, -0xFD, 0x00, 0x04, 0xFF, 0x01, 0x02, 0x00, 0xD7, 0xF0, 0x00, -0x00, 0x03, 0x05, 0x0D, 0x00, 0x30, 0x20, 0x0D, 0x00, 0x07, -0x07, 0x08, 0x00, 0x02, 0x05, 0x05, 0x00, 0x03, 0x04, 0x04, -0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, -0x05, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x05, 0x03, -0x00, 0x00, 0x05, 0x05, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, -0xFC, 0xFA, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0xFE, 0xFA, 0xFA, -0x00, 0xFD, 0xFC, 0xFD, 0x00, 0xFD, 0xF9, 0xF6, 0x00, 0xFE, -0xF7, 0xF1, 0x00, 0xFB, 0xF2, 0xED, 0x00, 0xF5, 0xEB, 0xEC, -0x00, 0x04, 0xF2, 0xE9, 0xDB, 0x00, 0xF9, 0xD1, 0xA2, 0x00, -0x21, 0x00, 0x00, 0x00, 0xFE, 0x08, 0x14, 0xE0, 0x32, 0x48, -0x60, 0xA1, 0xF8, 0xF9, 0xF7, 0x0C, 0xED, 0xF0, 0xEC, 0x0A, -0xFE, 0x03, 0x01, 0x08, 0x00, 0x02, 0xFF, 0x03, 0xFF, 0x01, -0xFF, 0x01, 0x00, 0xFD, 0xFF, 0x00, 0x01, 0xFE, 0xFF, 0x01, -0x00, 0xFD, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, -0xFF, 0x00, 0x01, 0x02, 0xFF, 0x00, 0x00, 0x05, 0xFE, 0xFE, -0x01, 0x02, 0xFE, 0xFB, 0x02, 0x07, 0x02, 0xF7, 0x1B, 0x27, -0x26, 0xF7, 0xF3, 0xF0, 0xEB, 0xC6, 0xC0, 0xAC, 0xB6, 0x00, -0x01, 0xFA, 0xFA, 0xFA, 0x00, 0x05, 0x05, 0x05, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x02, 0x01, 0x01, 0x01, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, -0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, -0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, -0xFF, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFB, 0x00, -0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x00, 0x00, -0xFA, 0xFF, 0xFF, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0xFF, 0x04, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFE, -0x00, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x00, -0x00, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, -0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x78, 0x37, -0xB5, 0x40, 0x48, 0xBA, 0x99, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Gfx3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x0A, -0x0C, 0x0A, 0x11, 0x1B, 0x21, 0x34, 0xF9, 0xFA, 0xFC, 0x01, -0x01, 0x01, 0x01, 0x00, 0x02, 0x02, 0x01, 0x00, 0x01, 0x01, -0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, -0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, -0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, -0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFE, -0xFF, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0xFE, 0xFE, 0xFE, 0x00, -0xFF, 0xFE, 0xFF, 0x00, 0x0C, 0x09, 0x05, 0xF5, 0xE2, 0xDC, -0xD6, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0C, 0x1B, 0x26, -0x41, 0x33, 0x67, 0x84, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, -0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFE, -0x00, 0xFF, 0xFE, 0xFE, 0x00, 0xFF, 0xFE, 0xFE, 0x00, 0xFF, -0xFD, 0xFD, 0x00, 0xFF, 0xFD, 0xFD, 0x00, 0xFF, 0xFD, 0xFD, -0x00, 0xFE, 0xFD, 0xFD, 0x00, 0xFE, 0xFD, 0xFC, 0x00, 0xFA, -0xF7, 0xF6, 0x00, 0xEA, 0xD9, 0xDB, 0xF0, 0x02, 0xE0, 0xDE, -0x12, 0xFE, 0xFC, 0xF8, 0xFF, 0x04, 0xFD, 0xFD, 0xFD, 0x02, -0x10, 0x03, 0xFD, 0x00, 0x15, 0xF7, 0xE1, 0x00, 0xDD, 0x01, -0x1C, 0x00, 0xFD, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFE, 0xFF, 0x00, -0x00, 0xFE, 0xFE, 0x00, 0xFF, 0xFE, 0xFE, 0x00, 0xFE, 0xFD, -0xFD, 0x00, 0xFF, 0xFD, 0xFD, 0x00, 0xFE, 0xFD, 0xFC, 0x00, -0xFF, 0xFD, 0xFC, 0x00, 0xF1, 0xEB, 0xED, 0x00, 0xDC, 0xCF, -0xD4, 0x00, 0x00, 0xFB, 0xF9, 0x01, 0xFF, 0xFF, 0xFF, 0x01, -0x00, 0x00, 0x00, 0xFF, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x0D, -0x05, 0x00, 0x00, 0x5B, 0x48, 0x3B, 0x00, 0x07, 0x02, 0x00, -0x00, 0xFE, 0xFC, 0xFB, 0x00, 0xFE, 0xFC, 0xFC, 0x00, 0xFE, -0xFC, 0xFC, 0x00, 0xFE, 0xFC, 0xFC, 0x00, 0xFF, 0xFD, 0xFD, -0x00, 0xFE, 0xFC, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, -0x01, 0x03, 0x00, 0x01, 0x03, 0x06, 0x00, 0x02, 0x05, 0x09, -0x00, 0x03, 0x06, 0x08, 0x00, 0x03, 0x03, 0x04, 0x00, 0xED, -0xE4, 0xE6, 0x00, 0xE2, 0xD9, 0xDE, 0x00, 0x06, 0x07, 0x06, -0x00, 0x08, 0x0C, 0x0B, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0x00, 0xE1, 0xEE, -0xF7, 0x00, 0x88, 0xB6, 0xD9, 0x00, 0xF7, 0x01, 0x08, 0x00, -0x03, 0x03, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0x00, -0x04, 0x02, 0x01, 0x00, 0x00, 0xFE, 0xFC, 0x00, 0xF8, 0xF7, -0xF8, 0x00, 0xFE, 0xFB, 0xFA, 0x00, 0xFC, 0xFB, 0xF9, 0x00, -0xF9, 0xF4, 0xF7, 0x00, 0xE1, 0xD8, 0xDE, 0x00, 0xF3, 0xF0, -0xF2, 0x00, 0x10, 0x0C, 0x08, 0x00, 0x13, 0x11, 0x0A, 0x00, -0xF5, 0xF6, 0xF8, 0x00, 0xE9, 0xFF, 0xFF, 0x01, 0x00, 0x00, -0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x07, 0x01, 0xFF, -0x00, 0x46, 0x34, 0x04, 0x00, 0xBC, 0xCC, 0xF1, 0x00, 0xEE, -0xF2, 0xFE, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, -0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, -0x0A, 0x04, 0x00, 0x00, 0x03, 0x05, 0x00, 0xF7, 0xFE, 0x01, -0x00, 0xFB, 0xFD, 0x02, 0x00, 0xF0, 0xEA, 0xF4, 0x00, 0xE4, -0xDF, 0xE5, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0x0C, 0x11, 0x16, -0x00, 0x6A, 0x56, 0x30, 0x00, 0x5B, 0x51, 0x40, 0x00, 0xE7, -0xE7, 0xE9, 0x0C, 0x68, 0x67, 0xCE, 0x4B, 0xCC, 0xCC, 0xCC, -0xB2, 0x02, 0xFE, 0xFC, 0xF9, 0x00, 0xF7, 0xF4, 0xF3, 0x00, -0xF7, 0xF2, 0xDA, 0x00, 0xF9, 0xFC, 0x02, 0x00, 0x03, 0x06, -0x0B, 0x00, 0x03, 0x06, 0x0D, 0x00, 0x03, 0x06, 0x0C, 0x00, -0x03, 0x06, 0x0B, 0x00, 0x1B, 0x0F, 0x07, 0x00, 0x8E, 0x63, -0x3E, 0x00, 0x14, 0x05, 0xFA, 0x00, 0x12, 0x0F, 0x0C, 0x00, -0xF5, 0xED, 0xF1, 0x00, 0xEA, 0xE9, 0xEE, 0x00, 0x03, 0x04, -0x01, 0x00, 0x02, 0xFC, 0xF3, 0x00, 0x0B, 0xFE, 0xEA, 0x00, -0x50, 0x45, 0x35, 0x00, 0x01, 0x01, 0x03, 0x00, 0x5A, 0x6A, -0x86, 0xF6, 0xCC, 0xCE, 0xD0, 0xBE, 0x00, 0x00, 0x00, 0x00, -0x04, 0xFF, 0xFF, 0x00, 0x00, 0xF7, 0xF7, 0xFC, 0x00, 0xAE, -0xC5, 0x13, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x00, 0xFF, 0xF5, -0x00, 0x01, 0x00, 0xFF, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, -0x01, 0x01, 0x00, 0xE0, 0xED, 0xF9, 0x00, 0x98, 0xA6, 0xB4, -0x00, 0x4F, 0x32, 0x24, 0x00, 0x86, 0x9D, 0xBD, 0x00, 0x02, -0xFE, 0x06, 0x00, 0x05, 0xFF, 0xFC, 0x00, 0xF8, 0xFC, 0x00, -0x00, 0x08, 0x0C, 0x13, 0x00, 0x2F, 0x28, 0x0D, 0x00, 0xF8, -0xF8, 0xF7, 0x00, 0x05, 0x06, 0x05, 0x00, 0x31, 0x2F, 0x2A, -0xFF, 0x09, 0xFA, 0xDF, 0x32, 0xF3, 0xF1, 0xEF, 0xF5, 0x03, -0x07, 0x0C, 0x14, 0x28, 0x16, 0x24, 0x32, 0x59, 0xFF, 0xFE, -0xFF, 0x00, 0xFF, 0xFE, 0xFF, 0x00, 0xFF, 0xFE, 0x01, 0x00, -0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFF, 0xFF, -0x02, 0x00, 0xFD, 0x00, 0x05, 0x00, 0xCC, 0xD8, 0xEC, 0x00, -0xD4, 0xD6, 0xDB, 0x00, 0x83, 0x6C, 0x50, 0x00, 0xC8, 0xD3, -0xE1, 0x00, 0x11, 0x0E, 0x07, 0x00, 0x03, 0xFE, 0xF7, 0x00, -0x0C, 0xFF, 0xEF, 0x00, 0x35, 0x26, 0x11, 0x00, 0x05, 0x03, -0xFF, 0x00, 0xDC, 0xDD, 0xDC, 0x00, 0x32, 0x2A, 0x1D, 0x06, -0x3A, 0x39, 0x39, 0x5B, 0xAB, 0xAB, 0xAB, 0xA4, 0x04, 0x01, -0x02, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0xFF, 0x00, 0x01, -0x00, 0x00, 0x01, 0x02, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, -0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF8, 0xF5, 0xF3, -0x00, 0xEB, 0xE7, 0xEB, 0x00, 0xFC, 0xFB, 0xFB, 0x00, 0xD9, -0xEF, 0xF9, 0x00, 0x7A, 0x8E, 0xA7, 0x00, 0x83, 0x6E, 0x54, -0x00, 0x8D, 0xA0, 0xBB, 0x00, 0x1A, 0x1A, 0x1B, 0x00, 0x12, -0x07, 0x13, 0x00, 0x53, 0x4D, 0x46, 0x00, 0xB0, 0xB2, 0xAF, -0x00, 0x06, 0x05, 0x06, 0x00, 0xE8, 0xEA, 0xEF, 0xFE, 0xC3, -0xC0, 0xBC, 0x8A, 0xF0, 0xF0, 0xF0, 0xCB, 0x01, 0x0D, 0x17, -0x23, 0x4E, 0x29, 0x45, 0x5E, 0xB1, 0x02, 0x02, 0x03, 0x00, -0x01, 0x02, 0x03, 0x00, 0xFF, 0x01, 0x02, 0x00, 0x00, 0x02, -0x05, 0x00, 0xF4, 0xF2, 0xF8, 0x00, 0xF2, 0xF3, 0xF8, 0x00, -0x02, 0x05, 0x06, 0x00, 0x02, 0x03, 0x05, 0x00, 0xFF, 0xFF, -0xFE, 0x00, 0xFE, 0xFA, 0xF8, 0x00, 0x23, 0x0F, 0xF6, 0x00, -0x80, 0x6D, 0x53, 0x00, 0xB0, 0xB7, 0xC2, 0x00, 0x07, 0xFF, -0xF0, 0x00, 0xF7, 0xF6, 0xF5, 0x00, 0xCF, 0xD7, 0xE6, 0x00, -0xD4, 0xE0, 0xF7, 0x00, 0xFF, 0x03, 0x0A, 0xF2, 0xEF, 0xD7, -0xAF, 0x16, 0xFF, 0xFE, 0xFB, 0xF9, 0x02, 0x00, 0x01, 0x03, -0x01, 0xFF, 0x00, 0x07, 0x00, 0xFD, 0xFE, 0x04, 0x00, 0xFC, -0xFC, 0x01, 0x00, 0xF7, 0xF4, 0xF9, 0x00, 0xE2, 0xD9, 0xDE, -0x00, 0xE7, 0xE1, 0xE3, 0x00, 0xF5, 0xF0, 0xEF, 0x00, 0xF5, -0xEF, 0xEE, 0x00, 0xF3, 0xEE, 0xEC, 0x00, 0xF5, 0xEF, 0xEF, -0x00, 0x04, 0xFE, 0xFB, 0x00, 0xEA, 0xF0, 0xFA, 0x00, 0x9E, -0xA4, 0xAF, 0x00, 0x4E, 0x44, 0x36, 0x00, 0xFF, 0xFD, 0xFE, -0x00, 0xF1, 0xEE, 0xDA, 0x00, 0x11, 0x10, 0xEB, 0x00, 0x0D, -0x0D, 0x06, 0x00, 0xFC, 0xFC, 0x00, 0xFF, 0xFF, 0x00, 0x01, -0xFB, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFE, 0xFC, 0xFC, 0x00, -0xFA, 0xF5, 0xF4, 0x00, 0x00, 0x01, 0x02, 0x00, 0xF3, 0xF2, -0xF5, 0x00, 0xF1, 0xEF, 0xF3, 0x00, 0x00, 0x02, 0x03, 0x00, -0x02, 0x03, 0x03, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x00, -0x00, 0x00, 0x01, 0x00, 0xFF, 0x00, 0x0C, 0x0A, 0x05, 0x00, -0x06, 0x00, 0xF7, 0x00, 0x38, 0x2A, 0x16, 0x00, 0x02, 0xF5, -0xE1, 0x00, 0x95, 0x96, 0x95, 0x00, 0x5F, 0x60, 0x61, 0x00, -0x03, 0xF1, 0xF1, 0x00, 0xCE, 0xCF, 0xC5, 0x00, 0x0C, 0x0C, -0x0F, 0x00, 0xCC, 0xD6, 0x00, 0x00, 0xF2, 0xDB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x04, 0xFF, 0x01, 0x02, 0x00, 0x20, -0x1E, 0x1F, 0x00, 0x0C, 0x03, 0xFA, 0x00, 0xB9, 0xA8, 0x8F, -0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, -0x00, 0x01, 0x00, 0xFF, 0x01, 0x00, 0x00, 0xFF, 0x00, 0x01, -0x00, 0x01, 0x01, 0x00, 0x00, 0xF7, 0x04, 0x03, 0x00, 0x53, -0x5A, 0x58, 0x00, 0xEA, 0xE7, 0xDB, 0x00, 0xE2, 0xE4, 0xE5, -0x00, 0x05, 0x06, 0x08, 0x00, 0xBC, 0xA2, 0x61, 0x00, 0x85, -0x69, 0xEC, 0x00, 0x20, 0x08, 0x09, 0x00, 0x8C, 0xAE, 0x03, -0x00, 0x22, 0x16, 0x15, 0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x04, 0xFF, 0xFD, 0xFB, 0xE9, 0xDB, 0xCF, -0xC0, 0xBD, 0xFC, 0xF7, 0xF5, 0x01, 0xEF, 0xE9, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x01, 0x00, -0x03, 0x03, 0x02, 0x05, 0x6C, 0x6B, 0x6A, 0x38, 0xE4, 0xE1, -0xD8, 0x05, 0xDF, 0xDF, 0xE0, 0x00, 0x24, 0x23, 0x24, 0xDE, -0xA5, 0xA6, 0xA8, 0xE1, 0xC2, 0x06, 0xFF, 0x00, 0xF5, 0xF2, -0xFF, 0x14, 0x8B, 0x84, 0xF5, 0x2C, 0x8B, 0x70, 0xF9, 0x01, -0x8C, 0x94, 0xD2, 0xF2, 0xB6, 0xFE, 0xFA, 0x05, 0x00, 0x00, -0x00, 0xF9, 0x01, 0x0F, 0x1D, 0x33, 0x08, 0x26, 0x39, 0x4B, -0x0C, 0xFF, 0xFF, 0x00, 0x00, 0xF2, 0xEF, 0xF3, 0x00, 0xF6, -0xF6, 0xF8, 0x00, 0x01, 0x02, 0x03, 0x00, 0x02, 0x03, 0x04, -0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0xFE, 0xF8, 0x05, 0x5D, -0x44, 0x21, 0x8D, 0x05, 0x01, 0xF8, 0x49, 0xB0, 0xB0, 0xAF, -0x10, 0x3E, 0x3E, 0x41, 0xD0, 0xA3, 0xB8, 0xD6, 0x5E, 0x0A, -0x14, 0x25, 0xE7, 0xFF, 0xFF, 0xFF, 0x00, 0xF6, 0xEE, 0xE3, -0x0C, 0x7E, 0x40, 0xB3, 0xAB, 0x5C, 0x5D, 0x0F, 0x34, 0x02, -0x06, 0x08, 0xFF, 0x8A, 0x8A, 0xE5, 0x8C, 0x89, 0xA9, 0x00, -0x79, 0x01, 0x06, 0x0B, 0x13, 0x00, 0x0C, 0x14, 0x1C, 0x01, -0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0xF8, 0xF8, -0xFA, 0x00, 0xFC, 0xFB, 0xFD, 0x00, 0x00, 0x01, 0x01, 0x00, -0x01, 0x02, 0x02, 0x00, 0x17, 0x0F, 0x05, 0x29, 0x39, 0x33, -0x28, 0x5D, 0xDF, 0xDE, 0xDF, 0xE1, 0x55, 0x55, 0x54, 0x73, -0x7F, 0x81, 0x83, 0x4F, 0xFC, 0x07, 0x19, 0xD8, 0x00, 0x01, -0x02, 0xFF, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFD, 0xFC, 0x01, -0x02, 0xF6, 0xE1, 0x23, 0x8B, 0x66, 0xFC, 0xA6, 0x58, 0x54, -0x09, 0x34, 0x06, 0x0E, 0x04, 0xFF, 0x80, 0x82, 0xF3, 0x81, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x0F, 0x67, 0x67, 0x67, -0xAA, 0x67, 0x67, 0x67, 0xB1, 0x0D, 0x0D, 0x0D, 0x32, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x05, 0x03, 0x00, 0x1F, 0x88, 0x65, 0x00, -0xC2, 0xE5, 0xB5, 0x02, 0xFC, 0x51, 0x3C, 0x00, 0x71, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, -0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x17, -0x1A, 0x11, 0x00, 0x44, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x82, 0x49, -0x5F, 0x6E, 0x58, 0xCF, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Help3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x01, -0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xB3, 0xB3, 0xB3, 0x00, 0x9C, 0x9C, -0x9C, 0x05, 0xB8, 0xB8, 0xB8, 0x10, 0x22, 0x22, 0x22, 0x28, -0x21, 0x21, 0x21, 0x21, 0x04, 0x04, 0x04, 0x08, 0xF6, 0xF6, -0xF6, 0xF0, 0xD6, 0xD6, 0xD6, 0xD9, 0xF8, 0xF8, 0xF8, 0xE0, -0x59, 0x59, 0x59, 0xF4, 0x6E, 0x6E, 0x6E, 0xFD, 0x27, 0x27, -0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, -0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xE7, 0xE7, 0xE7, 0x00, 0x49, -0x49, 0x49, 0x05, 0x1E, 0x1E, 0x1E, 0x34, 0x8D, 0x8D, 0x8D, -0x9F, 0xE1, 0xE1, 0xE1, 0xE9, 0xF3, 0xF3, 0xF3, 0xFE, 0xF1, -0xF1, 0xF1, 0xFF, 0xF0, 0xF0, 0xF0, 0xFF, 0xF1, 0xF1, 0xF1, -0xFF, 0xF2, 0xF2, 0xF2, 0xFC, 0xCC, 0xCC, 0xCC, 0xD7, 0x6A, -0x6A, 0x6A, 0x7F, 0x13, 0x13, 0x13, 0x1C, 0x7E, 0x7E, 0x7E, -0x02, 0xF8, 0xF8, 0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, -0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, -0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, -0xD7, 0xD7, 0xD7, 0x00, 0x1C, 0x1C, 0x1C, 0x0E, 0x6E, 0x6E, -0x6E, 0x82, 0xEB, 0xEB, 0xEB, 0xF4, 0xEE, 0xEE, 0xEE, 0xFF, -0xE7, 0xE7, 0xE7, 0xFF, 0xE2, 0xE2, 0xE2, 0xFF, 0xE0, 0xE0, -0xE0, 0xFF, 0xE0, 0xE0, 0xE0, 0xFF, 0xE0, 0xE0, 0xE0, 0xFF, -0xE2, 0xE2, 0xE2, 0xFF, 0xE8, 0xE8, 0xE8, 0xFF, 0xEF, 0xEF, -0xEF, 0xFE, 0xD4, 0xD4, 0xD4, 0xDF, 0x3A, 0x3A, 0x3A, 0x51, -0x4A, 0x4A, 0x4A, 0x06, 0xF6, 0xF6, 0xF6, 0x00, 0xFF, 0xFF, -0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0xFF, -0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xDA, 0xDA, 0x00, 0x44, -0x44, 0x44, 0x11, 0x7A, 0x7A, 0x7A, 0x95, 0x5B, 0x5B, 0x5B, -0x58, 0xF5, 0xF5, 0xF5, 0x01, 0xF9, 0xF9, 0xF9, 0x00, 0xF7, -0xFA, 0xFD, 0x00, 0xCC, 0xE1, 0xF6, 0x00, 0xE3, 0xEE, 0xF8, -0x00, 0xFB, 0xFB, 0xFC, 0x00, 0x08, 0x06, 0x03, 0x00, 0x2B, -0x1A, 0x0B, 0x00, 0x29, 0x1A, 0x0A, 0x00, 0x03, 0x02, 0x01, -0x00, 0x08, 0x08, 0x08, 0x00, 0x04, 0x04, 0x04, 0xF8, 0x67, -0x67, 0x67, 0x72, 0xF7, 0xF7, 0xF7, 0x9D, 0xAE, 0xAE, 0xAE, -0xFA, 0x07, 0x07, 0x07, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x00, -0xFA, 0xFA, 0xFA, 0x00, 0x3B, 0x3B, 0x3B, 0x08, 0x4D, 0x4D, -0x4D, 0x8B, 0x71, 0x71, 0x71, 0x6B, 0xF2, 0xF2, 0xF2, 0x01, -0xF9, 0xFA, 0xFB, 0x00, 0xB7, 0xD6, 0xF3, 0x00, 0xD4, 0xEA, -0xFF, 0x00, 0x1C, 0x16, 0x0E, 0x00, 0x0D, 0x07, 0x03, 0x00, -0xFE, 0xFD, 0xFE, 0x00, 0xFD, 0xFE, 0xFD, 0x00, 0xE7, 0xED, -0xF5, 0x00, 0xF2, 0xF2, 0xF2, 0x00, 0x4A, 0x2C, 0x0F, 0x00, -0x30, 0x1E, 0x0C, 0x00, 0x07, 0x07, 0x07, 0x00, 0x06, 0x06, -0x06, 0xF8, 0x4E, 0x4E, 0x4E, 0x5A, 0x44, 0x44, 0x44, 0xB1, -0x81, 0x81, 0x81, 0xFE, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x93, -0x93, 0x93, 0x01, 0xA6, 0xA6, 0xA6, 0x4D, 0xB9, 0xB9, 0xB9, -0xAD, 0xF5, 0xF5, 0xF5, 0x04, 0xF6, 0xF7, 0xF9, 0x00, 0x99, -0xC8, 0xF1, 0x00, 0x01, 0x09, 0x11, 0x00, 0x0B, 0x08, 0x05, -0x00, 0x1B, 0x09, 0xF9, 0x00, 0x2A, 0x18, 0x0A, 0x00, 0x0D, -0x08, 0x03, 0x00, 0xF2, 0xF7, 0xFC, 0x00, 0xC8, 0xDC, 0xEF, -0x00, 0xEA, 0xF6, 0x01, 0x00, 0xE5, 0xEA, 0xEF, 0x00, 0x3B, -0x1F, 0x05, 0x00, 0x48, 0x2E, 0x13, 0x00, 0x09, 0x09, 0x09, -0x00, 0xEB, 0xEB, 0xEB, 0xE0, 0x40, 0x40, 0x40, 0x3D, 0xC5, -0xC5, 0xC5, 0xE4, 0x01, 0xFA, 0xFA, 0xFA, 0x00, 0x2C, 0x2C, -0x2C, 0x0C, 0x92, 0x92, 0x92, 0xB9, 0x33, 0x33, 0x33, 0x3A, -0xF4, 0xF4, 0xF4, 0x00, 0xA6, 0xCE, 0xF4, 0x00, 0xE1, 0xFB, -0x0F, 0x00, 0x07, 0x07, 0x06, 0x00, 0xF8, 0xF6, 0xF7, 0x00, -0x74, 0x40, 0x12, 0x00, 0x26, 0x1A, 0x0E, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFC, 0xFE, 0x00, -0x7A, 0xA7, 0xD3, 0x00, 0xE9, 0xF6, 0x01, 0x00, 0xEC, 0xEC, -0xEE, 0x00, 0x66, 0x3C, 0x13, 0x00, 0x31, 0x20, 0x0E, 0x00, -0x0E, 0x0E, 0x0E, 0xFF, 0x7C, 0x7C, 0x7C, 0x81, 0x07, 0x07, -0x07, 0x84, 0x02, 0xCE, 0xCE, 0xCE, 0x00, 0xFF, 0xFF, 0xFF, -0x2E, 0x3A, 0x3A, 0x3A, 0x36, 0xF9, 0xF9, 0xF9, 0x00, 0xE4, -0xF1, 0xFC, 0x00, 0xC5, 0xE9, 0x05, 0x00, 0xF0, 0xFD, 0x06, -0x00, 0xE7, 0xF3, 0xFD, 0x00, 0xEC, 0xF8, 0x01, 0x00, 0x98, -0xC2, 0xE7, 0x00, 0x61, 0x9A, 0xD0, 0x00, 0x63, 0x98, 0xCB, -0x00, 0xF5, 0xF8, 0xFB, 0x00, 0x05, 0x04, 0x02, 0x00, 0x21, -0x15, 0x09, 0x00, 0xE5, 0xEF, 0xF9, 0x00, 0xF7, 0x00, 0x07, -0x00, 0x9A, 0xC0, 0xE6, 0x00, 0xFD, 0xFE, 0xFF, 0x00, 0xF8, -0xF8, 0xF8, 0x01, 0x60, 0x60, 0x60, 0x58, 0xA7, 0xA7, 0xA7, -0x0C, 0x04, 0xC6, 0xC6, 0xC6, 0x01, 0x40, 0x40, 0x40, 0x40, -0xFE, 0xFE, 0xFE, 0x04, 0xFC, 0xFC, 0xFC, 0x00, 0xBE, 0xDC, -0xF8, 0x00, 0xF4, 0x02, 0x11, 0x00, 0xF4, 0xF3, 0xFD, 0x00, -0xFD, 0xFC, 0xFC, 0x00, 0xFD, 0xFC, 0xFD, 0x00, 0xE2, 0xED, -0x00, 0x00, 0xFA, 0xFB, 0x05, 0x00, 0x05, 0xF9, 0xF8, 0x00, -0xFE, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xE4, -0xF3, 0x00, 0xE5, 0xEF, 0xF8, 0x00, 0xFD, 0xFD, 0xFD, 0x00, -0xF9, 0xF4, 0xFA, 0x00, 0xD6, 0xE5, 0xF4, 0x00, 0x2E, 0x1E, -0x02, 0x00, 0x25, 0x25, 0x25, 0x25, 0x01, 0x01, 0x01, 0x20, -0x04, 0xCE, 0xCE, 0xCE, 0x03, 0x35, 0x35, 0x35, 0x28, 0xFC, -0xFC, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xCC, 0xE7, 0xFE, -0x00, 0xEC, 0xFC, 0x01, 0x00, 0xFD, 0xFD, 0xFC, 0x00, 0xFC, -0xFB, 0xFC, 0x00, 0xFB, 0xFA, 0xFB, 0x00, 0xFB, 0xFB, 0xFC, -0x00, 0xFD, 0xFA, 0xF8, 0x00, 0x90, 0x4F, 0x1C, 0x00, 0x0D, -0x0A, 0x06, 0x00, 0xC9, 0xDA, 0xEB, 0x00, 0xA9, 0xCC, 0xED, -0x00, 0xFB, 0xFF, 0x03, 0x00, 0xFE, 0xFC, 0xFB, 0x00, 0xFD, -0xFA, 0xFE, 0x00, 0xC8, 0xDB, 0xEE, 0x00, 0x2C, 0x1C, 0x0C, -0x00, 0xFF, 0xFF, 0xFF, 0x03, 0x29, 0x29, 0x29, 0x27, 0x04, -0xFB, 0xFB, 0xFB, 0x01, 0x09, 0x09, 0x09, 0x0F, 0xFE, 0xFE, -0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xF4, 0xFC, 0x00, -0xFB, 0x06, 0x00, 0x00, 0xFD, 0xFD, 0x00, 0x00, 0xFD, 0xFE, -0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3F, 0x20, 0x06, 0x00, 0x58, 0x39, 0x1B, 0x00, 0xE9, 0xF0, -0xF7, 0x00, 0x5D, 0x98, 0xD1, 0x00, 0xF9, 0x00, 0x05, 0x00, -0xFD, 0xFD, 0xFC, 0x00, 0xFD, 0xFD, 0xFF, 0x00, 0xFD, 0xFE, -0x00, 0x00, 0xEC, 0xF1, 0xF9, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFF, 0xFF, 0xFF, 0x00, 0x0A, 0x0A, 0x0A, 0x10, 0x02, 0x00, -0x00, 0x00, 0x00, 0xFC, 0xFC, 0xFC, 0xF8, 0x01, 0x01, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x07, 0x03, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x49, -0x2B, 0x10, 0x00, 0x01, 0x01, 0x01, 0x00, 0x9F, 0xC0, 0xDF, -0x00, 0xE8, 0xF9, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, -0x00, 0x0B, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFC, 0xFC, 0xFC, 0xF8, 0x04, 0x23, 0x23, -0x23, 0xFD, 0xE0, 0xE0, 0xE0, 0xE0, 0x02, 0x02, 0x02, 0x00, -0x00, 0x00, 0x00, 0x00, 0x25, 0x12, 0x02, 0x00, 0xE0, 0xEB, -0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xB9, 0xD3, -0xEB, 0x00, 0xDF, 0xE6, 0xEE, 0x00, 0xBF, 0xDB, 0xF5, 0x00, -0x01, 0x02, 0x02, 0x00, 0x00, 0xFD, 0xFD, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFD, 0x00, -0x2B, 0x1D, 0x0E, 0x00, 0x01, 0x01, 0x01, 0x00, 0x02, 0x02, -0x02, 0xFF, 0xE0, 0xE0, 0xE0, 0xDF, 0x02, 0x3D, 0x3D, 0x3D, -0xFE, 0xC4, 0xC4, 0xC4, 0xC7, 0x05, 0x05, 0x05, 0xFF, 0x02, -0x02, 0x02, 0x00, 0x42, 0x22, 0x06, 0x00, 0xFD, 0xF9, 0xF7, -0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x08, -0x05, 0x01, 0x00, 0x0E, 0x0A, 0x02, 0x00, 0xF8, 0x02, 0x06, -0x00, 0x19, 0x16, 0x10, 0x00, 0x07, 0x09, 0x06, 0x00, 0x10, -0x0B, 0x02, 0x00, 0x09, 0x07, 0x02, 0x00, 0x03, 0x02, 0x01, -0x00, 0x00, 0x00, 0xFF, 0x00, 0x13, 0x08, 0xFE, 0x00, 0x3A, -0x26, 0x12, 0x00, 0x03, 0x03, 0x03, 0x00, 0xEE, 0xEE, 0xEE, -0xEB, 0xE5, 0xE5, 0xE5, 0xD8, 0x02, 0x38, 0x38, 0x38, 0x00, -0xD8, 0xD8, 0xD8, 0xC5, 0xE2, 0xE2, 0xE2, 0xE1, 0x06, 0x06, -0x06, 0x00, 0x33, 0x1D, 0x07, 0x00, 0x2F, 0x0F, 0xF6, 0x00, -0x00, 0xFE, 0xFC, 0x00, 0x0D, 0x09, 0x00, 0x00, 0x18, 0x10, -0x01, 0x00, 0x15, 0x0C, 0xFD, 0x00, 0x8C, 0x52, 0x1F, 0x00, -0x69, 0x42, 0x1F, 0x00, 0x86, 0x51, 0x21, 0x00, 0x17, 0x10, -0x02, 0x00, 0x1B, 0x14, 0x06, 0x00, 0x0F, 0x0C, 0x03, 0x00, -0x02, 0xFD, 0xFB, 0x00, 0x6D, 0x44, 0x1B, 0x00, 0x08, 0x05, -0x01, 0x00, 0x07, 0x07, 0x07, 0x00, 0xAE, 0xAE, 0xAE, 0xB6, -0x40, 0x40, 0x40, 0xF0, 0x02, 0x10, 0x10, 0x10, 0x00, 0x58, -0x58, 0x58, 0xEE, 0x8E, 0x8E, 0x8E, 0x97, 0x09, 0x09, 0x09, -0xFF, 0x03, 0x02, 0x02, 0x00, 0x7C, 0x42, 0x0E, 0x00, 0x13, -0xFE, 0xEF, 0x00, 0x02, 0xFF, 0xFD, 0x00, 0x04, 0x02, 0x00, -0x00, 0x02, 0x01, 0x00, 0x00, 0xD5, 0xE2, 0xEF, 0x00, 0xFE, -0xFF, 0xFF, 0x00, 0xD5, 0xE1, 0xED, 0x00, 0x03, 0x02, 0x01, -0x00, 0x04, 0x03, 0x01, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x4B, -0x2A, 0x0A, 0x00, 0x5C, 0x3C, 0x1B, 0x00, 0x04, 0x04, 0x04, -0x00, 0xFD, 0xFD, 0xFD, 0xF5, 0x93, 0x93, 0x93, 0x95, 0x6C, -0x6C, 0x6C, 0xFB, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0xEB, 0xEB, -0xEB, 0x00, 0x28, 0x28, 0x28, 0x12, 0xA5, 0xA5, 0xA5, 0xB3, -0x35, 0x35, 0x35, 0x3A, 0xF4, 0xF4, 0xF4, 0x00, 0xEC, 0xF5, -0xFD, 0x00, 0x84, 0xBB, 0xED, 0x00, 0xD6, 0xF1, 0x04, 0x00, -0x08, 0x08, 0x05, 0x00, 0xFD, 0xF5, 0xF1, 0x00, 0x0D, 0xFF, -0xF7, 0x00, 0xEE, 0xFC, 0x04, 0x00, 0xFE, 0x01, 0x05, 0x00, -0xF8, 0xF2, 0xF3, 0x00, 0x54, 0x2E, 0x0C, 0x00, 0x6D, 0x44, -0x1C, 0x00, 0x04, 0x03, 0x02, 0x00, 0x0D, 0x0D, 0x0D, 0xFF, -0x7F, 0x7F, 0x7F, 0x85, 0xDC, 0xDC, 0xDC, 0x82, 0xB6, 0xB6, -0xB6, 0xFB, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x00, 0xAF, 0xAF, 0xAF, 0x00, 0x6B, 0x6B, 0x6B, 0x2A, 0xB5, -0xB5, 0xB5, 0xB0, 0x1D, 0x1D, 0x1D, 0x25, 0xF6, 0xF6, 0xF6, -0x00, 0xFE, 0xFE, 0xFE, 0x00, 0xCA, 0xE1, 0xF6, 0x00, 0xBB, -0xD8, 0xF4, 0x00, 0xD8, 0xE8, 0xF8, 0x00, 0xF4, 0xF7, 0xF9, -0x00, 0x11, 0x0A, 0x03, 0x00, 0x32, 0x1C, 0x09, 0x00, 0x4F, -0x30, 0x13, 0x00, 0x1D, 0x12, 0x06, 0x00, 0x03, 0x03, 0x03, -0x00, 0x0B, 0x0B, 0x0B, 0xFF, 0xA8, 0xA8, 0xA8, 0xA9, 0x86, -0x86, 0x86, 0x68, 0xCC, 0xCC, 0xCC, 0xF1, 0x18, 0x18, 0x18, -0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, -0xFD, 0xFD, 0xFD, 0x00, 0x70, 0x70, 0x70, 0x03, 0x16, 0x16, -0x16, 0x2F, 0xB6, 0xB6, 0xB6, 0xCA, 0xEF, 0xEF, 0xEF, 0xFE, -0xE6, 0xE6, 0xE6, 0xFF, 0xE0, 0xE0, 0xE0, 0xFF, 0xDF, 0xDF, -0xDF, 0xFF, 0xDF, 0xDF, 0xDF, 0xFF, 0xE0, 0xE0, 0xE0, 0xFF, -0xDF, 0xDF, 0xDF, 0xFF, 0xDF, 0xDF, 0xDF, 0xFF, 0xE1, 0xE1, -0xE1, 0xFF, 0xE7, 0xE7, 0xE7, 0xFF, 0xED, 0xED, 0xED, 0xFB, -0x7F, 0x7F, 0x7F, 0x98, 0x12, 0x12, 0x12, 0x13, 0xD0, 0xD0, -0xD0, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xF5, 0xF5, 0xF5, 0x00, 0x32, -0x32, 0x32, 0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, -0x26, 0x03, 0x03, 0x03, 0x44, 0x5E, 0x5E, 0x5E, 0x9D, 0xD0, -0xD0, 0xD0, 0xEA, 0xF0, 0xF0, 0xF0, 0xFE, 0xEB, 0xEB, 0xEB, -0xFF, 0xE8, 0xE8, 0xE8, 0xFF, 0xE7, 0xE7, 0xE7, 0xFF, 0xE8, -0xE8, 0xE8, 0xFF, 0xEB, 0xEB, 0xEB, 0xFF, 0xED, 0xED, 0xED, -0xFC, 0xB2, 0xB2, 0xB2, 0xD6, 0x35, 0x35, 0x35, 0x76, 0x00, -0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x18, 0x1C, 0x1C, 0x1C, -0x08, 0xF0, 0xF0, 0xF0, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x01, -0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, -0xC0, 0x01, 0x9B, 0x9B, 0x9B, 0x08, 0xC9, 0xC9, 0xC9, 0x0B, -0xE3, 0xE3, 0xE3, 0x0D, 0xFA, 0xFA, 0xFA, 0x10, 0x03, 0x03, -0x03, 0x17, 0x33, 0x33, 0x33, 0x30, 0x3B, 0x3B, 0x3B, 0x2B, -0x21, 0x21, 0x21, 0x18, 0x06, 0x06, 0x06, 0x06, 0xF3, 0xF3, -0xF3, 0xF4, 0xD6, 0xD6, 0xD6, 0xE1, 0xC1, 0xC1, 0xC1, 0xCE, -0xDE, 0xDE, 0xDE, 0xD5, 0x06, 0x06, 0x06, 0xEB, 0x16, 0x16, -0x16, 0xF2, 0x3E, 0x3E, 0x3E, 0xF4, 0x56, 0x56, 0x56, 0xF8, -0x4F, 0x4F, 0x4F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, -0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, -0xFA, 0xFA, 0x00, 0xE2, 0xE2, 0xE2, 0x00, 0xE5, 0xE5, 0xE5, -0x02, 0xE4, 0xE4, 0xE4, 0x02, 0xCE, 0xCE, 0xCE, 0x04, 0xE5, -0xE5, 0xE5, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, -0xFD, 0x2C, 0x2C, 0x2C, 0xFD, 0x35, 0x35, 0x35, 0xFD, 0x23, -0x23, 0x23, 0xFD, 0x1E, 0x1E, 0x1E, 0x00, 0x06, 0x06, 0x06, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xEA, 0x4C, -0xEA, 0x00, 0x54, 0x70, 0x66, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Log3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x03, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0B, 0x0B, 0x0C, 0x01, 0x2A, 0x2B, -0x2B, 0x1B, 0x47, 0x47, 0x49, 0x3D, 0x61, 0x61, 0x63, 0x58, -0x15, 0x15, 0x16, 0x04, 0xD2, 0xD2, 0xD1, 0xDF, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x03, 0x24, 0x24, 0x26, -0x1B, 0x30, 0x30, 0x30, 0x2E, 0x32, 0x33, 0x34, 0x33, 0x31, -0x30, 0x31, 0x32, 0x25, 0x25, 0x25, 0x32, 0x0C, 0x0C, 0x0B, -0x18, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x25, -0x26, 0x26, 0xAC, 0xA3, 0xA3, 0xA1, 0xBE, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, -0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x04, 0x2B, 0x2C, 0x2D, 0x1B, -0x2B, 0x2B, 0x2C, 0x2F, 0x30, 0x2F, 0x30, 0x32, 0x31, 0x31, -0x31, 0x33, 0x24, 0x24, 0x25, 0x30, 0x0C, 0x0C, 0x0C, 0x18, -0x02, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0xFE, 0xFE, -0xFE, 0x00, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xF7, 0xF8, -0xF8, 0xEE, 0x2D, 0x2C, 0x29, 0x1C, 0xEE, 0xEE, 0xEE, 0xF7, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xA0, 0xA0, 0xA4, 0x8C, 0xF2, 0xF3, 0xF6, 0xFC, 0xF3, -0xF4, 0xF7, 0xFE, 0xF3, 0xF4, 0xF7, 0xFF, 0xF1, 0xF2, 0xF5, -0xFF, 0xEF, 0xEF, 0xF2, 0xFF, 0xEE, 0xEF, 0xF2, 0xFF, 0xEE, -0xEF, 0xF2, 0xFF, 0xED, 0xEE, 0xF1, 0xFF, 0xED, 0xED, 0xF0, -0xFF, 0xEE, 0xEE, 0xF1, 0xFF, 0xEE, 0xEF, 0xF2, 0xFF, 0xEE, -0xEE, 0xF1, 0xFF, 0xEC, 0xED, 0xF0, 0xFF, 0xED, 0xEE, 0xF1, -0xFE, 0x50, 0x51, 0x53, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0xD0, 0xD1, 0xCF, 0xDE, 0xFC, 0xFC, 0xFC, 0x03, 0xFB, 0xFB, -0xFB, 0x01, 0xFA, 0xFA, 0xFA, 0x00, 0xFA, 0xFA, 0xFA, 0x00, -0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, -0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x01, 0x00, -0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, -0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xF7, 0xF7, 0x01, -0x42, 0x42, 0x43, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xCF, -0xCF, 0xCE, 0xCD, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xDA, 0xD9, -0x00, 0xD7, 0xD7, 0xD7, 0x00, 0xF4, 0xF4, 0xF4, 0x00, 0x01, -0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xF7, 0xF7, 0xF7, 0x00, 0xE3, -0xE3, 0xE2, 0x00, 0xDC, 0xDC, 0xDB, 0x00, 0xD2, 0xD1, 0xD1, -0x00, 0xD5, 0xD5, 0xD4, 0x00, 0xD6, 0xD6, 0xD5, 0x00, 0x40, -0x3F, 0x40, 0x49, 0x04, 0x04, 0x04, 0x03, 0x00, 0x00, 0x00, -0x00, 0x0E, 0x0E, 0x0E, 0x11, 0x99, 0x99, 0x99, 0xB0, 0x1F, -0x1F, 0x1F, 0x33, 0x04, 0x00, 0x00, 0x00, 0x00, 0xD6, 0xD5, -0xD4, 0xD9, 0xF8, 0xF8, 0xF9, 0xF4, 0x23, 0x22, 0x23, 0x0D, -0x01, 0x01, 0x01, 0x00, 0xF9, 0xF9, 0xF9, 0x00, 0xE5, 0xE4, -0xE4, 0x00, 0xF1, 0xF1, 0xF1, 0x00, 0x09, 0x09, 0x09, 0x00, -0xE3, 0xE4, 0xE3, 0x00, 0x0D, 0x0C, 0x0D, 0x00, 0x05, 0x05, -0x05, 0x00, 0xFB, 0xFC, 0xFB, 0x00, 0x05, 0x05, 0x05, 0x00, -0xF5, 0xF4, 0xF5, 0x00, 0x07, 0x07, 0x07, 0x00, 0x19, 0x19, -0x18, 0x24, 0x3A, 0x3A, 0x3C, 0x2A, 0x69, 0x69, 0x67, 0x66, -0xEA, 0xEA, 0xEA, 0x32, 0x1C, 0x1C, 0x1C, 0x37, 0xEA, 0xEA, -0xEA, 0xA0, 0x04, 0x0E, 0x0E, 0x09, 0x07, 0x6F, 0x68, 0x34, -0x5F, 0xFE, 0xFA, 0xE6, 0x05, 0xE1, 0xE7, 0x00, 0x00, 0xEB, -0xEA, 0xEA, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, -0x00, 0x02, 0x02, 0x02, 0x00, 0xFB, 0xFB, 0xFB, 0x00, 0x01, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFB, 0xFB, -0x00, 0x05, 0x05, 0x05, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFB, 0xFB, 0xFA, 0x00, 0xFF, 0xFF, 0x00, -0x02, 0x7C, 0x7C, 0x7C, 0x80, 0xB6, 0xB6, 0xB4, 0x19, 0x57, -0x58, 0x58, 0x39, 0xA4, 0xA3, 0xA3, 0xF7, 0xFB, 0xFB, 0xFB, -0xDA, 0x03, 0xAE, 0xA4, 0x5C, 0x9B, 0x61, 0x59, 0x1F, 0x78, -0xF8, 0xFC, 0x13, 0x05, 0x03, 0x07, 0x20, 0x00, 0xF5, 0xF6, -0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, -0x0C, 0x0D, 0x0D, 0x00, 0xF2, 0xF3, 0xF3, 0x00, 0x0A, 0x0A, -0x0B, 0x00, 0x01, 0x02, 0x02, 0x00, 0xFB, 0xFB, 0xFA, 0x00, -0x03, 0x04, 0x04, 0x00, 0xF8, 0xF8, 0xF9, 0x00, 0x00, 0x01, -0x01, 0x00, 0x05, 0x05, 0x06, 0x00, 0xF5, 0xF4, 0xF5, 0x00, -0xEA, 0xEA, 0xE9, 0xFF, 0x2C, 0x2C, 0x2B, 0xEE, 0xD3, 0xD5, -0xD5, 0x1A, 0xA3, 0xA2, 0xA2, 0xB0, 0xED, 0xED, 0xED, 0xA5, -0x02, 0x8E, 0x95, 0xC7, 0xA0, 0xFF, 0xFF, 0x02, 0xFD, 0x02, -0xFF, 0xE6, 0x00, 0x04, 0x04, 0x03, 0x00, 0xF0, 0xEF, 0xEF, -0x00, 0x04, 0x04, 0x04, 0x00, 0x02, 0x01, 0x01, 0x00, 0x01, -0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x00, 0xFE, 0xFF, 0xFE, -0x00, 0xFA, 0xFA, 0xFA, 0x00, 0x0F, 0x0F, 0x10, 0x00, 0xFC, -0xFC, 0xFC, 0x00, 0xFC, 0xFD, 0xFC, 0x00, 0xFD, 0xFD, 0xFD, -0x00, 0x0A, 0x0A, 0x0A, 0x00, 0x01, 0x01, 0xFF, 0x00, 0x08, -0x09, 0x08, 0x27, 0x1F, 0x20, 0x20, 0x39, 0xCE, 0xCC, 0xCC, -0xD3, 0xEF, 0xEF, 0xEF, 0x84, 0x00, 0x00, 0x00, 0xF3, 0x03, -0xDF, 0xE0, 0xED, 0xE6, 0x2C, 0x2A, 0x1E, 0x25, 0x23, 0x21, -0x08, 0x2D, 0x03, 0x09, 0x3A, 0x00, 0xED, 0xEE, 0xED, 0x00, -0x08, 0x08, 0x08, 0x00, 0xF4, 0xF5, 0xF4, 0x00, 0xFD, 0xFD, -0xFD, 0x00, 0xFD, 0xFE, 0xFD, 0x00, 0x01, 0x01, 0x01, 0x00, -0x06, 0x06, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFB, -0xFB, 0x00, 0x26, 0x26, 0x26, 0x00, 0x1C, 0x1C, 0x1C, 0x00, -0x14, 0x14, 0x14, 0x00, 0xFA, 0xF9, 0xF8, 0x00, 0x0D, 0x0D, -0x0C, 0x02, 0xC0, 0xC2, 0xC2, 0xF8, 0xC1, 0xC0, 0xC0, 0x9C, -0xDA, 0xDA, 0xDA, 0xB5, 0x00, 0x00, 0x00, 0xFD, 0x02, 0x00, -0x00, 0x00, 0xFB, 0x76, 0x7F, 0xBB, 0x81, 0xFB, 0xF9, 0xF1, -0xF1, 0xFD, 0xFD, 0xF6, 0x00, 0x0A, 0x0A, 0x0B, 0x00, 0x01, -0x00, 0x00, 0x00, 0x06, 0x05, 0x07, 0x00, 0xF7, 0xF6, 0xF6, -0x00, 0x10, 0x0F, 0x10, 0x00, 0x0C, 0x0B, 0x0C, 0x00, 0x06, -0x05, 0x06, 0x00, 0x03, 0x02, 0x02, 0x00, 0x18, 0x18, 0x18, -0x00, 0x0A, 0x0A, 0x0B, 0x00, 0x06, 0x05, 0x06, 0x00, 0x01, -0x00, 0x01, 0x00, 0xF3, 0xF3, 0xF5, 0x00, 0x05, 0x07, 0x07, -0x00, 0xD3, 0xD2, 0xD3, 0xF0, 0xD7, 0xD7, 0xD7, 0xB0, 0x00, -0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, -0x00, 0x00, 0xF0, 0xF1, 0xF7, 0xF1, 0x06, 0x07, 0x08, 0x08, -0x33, 0x33, 0x38, 0x3E, 0xFD, 0xFF, 0x0D, 0x01, 0xF9, 0xF8, -0xF9, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x20, 0x20, 0x20, 0x00, -0x17, 0x17, 0x18, 0x00, 0x15, 0x16, 0x16, 0x00, 0x14, 0x15, -0x15, 0x00, 0x13, 0x14, 0x14, 0x00, 0x0B, 0x0B, 0x0B, 0x00, -0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0xFD, 0xFD, -0xFD, 0x00, 0x06, 0x05, 0x03, 0x00, 0xBC, 0xBE, 0xBD, 0x00, -0x11, 0x0F, 0x11, 0xFC, 0xB9, 0xB9, 0xB8, 0x89, 0xFC, 0xFC, -0xFC, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFE, 0xCF, 0xD1, 0xE8, 0xD7, 0x4B, -0x4A, 0x3C, 0x55, 0x1F, 0x20, 0x30, 0x10, 0x11, 0x11, 0x11, -0x00, 0x19, 0x19, 0x19, 0x00, 0x0A, 0x09, 0x0A, 0x00, 0x02, -0x01, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, -0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, -0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xE5, 0xE5, 0xE3, -0x00, 0xBB, 0xBF, 0xBD, 0x00, 0xE9, 0xE7, 0xE8, 0x00, 0x49, -0x48, 0x4A, 0x09, 0xD4, 0xD5, 0xD5, 0xBC, 0xE1, 0xE0, 0xDF, -0xDE, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFA, 0xFB, 0xFC, 0xF7, 0xFB, 0xFD, -0x09, 0x0E, 0x3F, 0x3F, 0x41, 0x40, 0xCD, 0xCE, 0xCC, 0x00, -0xF7, 0xF7, 0xF7, 0x00, 0xE6, 0xE6, 0xE6, 0x00, 0x09, 0x09, -0x09, 0x00, 0x07, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x01, 0x02, -0x01, 0x00, 0xFB, 0xFB, 0xFB, 0x00, 0xD2, 0xD3, 0xD1, 0x00, -0xCD, 0xCD, 0xCC, 0x00, 0x31, 0x2F, 0x30, 0x00, 0x2B, 0x2C, -0x2D, 0x01, 0xF2, 0xF2, 0xF2, 0xEE, 0xBF, 0xBE, 0xBD, 0xBA, -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xCD, 0xCD, 0xCF, -0xBF, 0x07, 0x08, 0x08, 0xFF, 0x1D, 0x1D, 0x1E, 0x00, 0x1F, -0x1F, 0x20, 0x00, 0x2B, 0x2C, 0x2C, 0x00, 0x0E, 0x0F, 0x0F, -0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, -0xFF, 0xFE, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0xE6, 0xE6, 0xE4, 0x00, 0xD7, 0xD8, 0xD7, 0x00, 0x0D, -0x0A, 0x0B, 0x00, 0x2A, 0x2B, 0x2C, 0x00, 0x06, 0x06, 0x06, -0x00, 0x43, 0x42, 0x44, 0x46, 0x02, 0x02, 0x02, 0x05, 0x00, -0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDF, 0xDF, 0xDE, 0xD7, -0xF2, 0xF2, 0xF3, 0xF1, 0x1C, 0x1B, 0x1C, 0x00, 0x04, 0x03, -0x04, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0xFF, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0xFF, 0x00, 0x01, 0x01, -0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0xF1, 0xF0, 0xF0, 0x00, -0xE3, 0xE2, 0xE1, 0x00, 0xED, 0xEC, 0xEC, 0x00, 0x2D, 0x2D, -0x2E, 0x00, 0x15, 0x14, 0x16, 0x00, 0xF8, 0xF8, 0xF9, 0xFE, -0xF6, 0xF7, 0xF7, 0x0F, 0x12, 0x12, 0x13, 0x15, 0x00, 0x00, -0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xB1, -0xB1, 0xB6, 0xC1, 0x36, 0x37, 0x37, 0x37, 0x01, 0x01, 0x01, -0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0xFE, 0xFE, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, -0x00, 0x00, 0x00, 0x01, 0x00, 0xBE, 0xBD, 0xBB, 0x00, 0xD6, -0xD6, 0xD3, 0x00, 0x0F, 0x0F, 0x0F, 0xF7, 0xD2, 0xD3, 0xD5, -0xBC, 0xDE, 0xDD, 0xDE, 0xC8, 0xD4, 0xD4, 0xD2, 0xCC, 0xF0, -0xF0, 0xF0, 0xD9, 0x00, 0x00, 0xFF, 0xE5, 0x00, 0x00, 0x00, -0xFC, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xCF, 0xD0, -0xCE, 0xD1, 0x36, 0x37, 0x36, 0x37, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xF8, 0xF8, -0xF5, 0x00, 0xF1, 0xF0, 0xE4, 0x00, 0xDC, 0xDB, 0xD4, 0xF1, -0xA8, 0xAA, 0xBB, 0xBD, 0xED, 0xED, 0xEE, 0x19, 0x62, 0x62, -0x61, 0x2E, 0x8D, 0x8D, 0x8D, 0x7E, 0xCF, 0xCF, 0xCF, 0x9F, -0x00, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x00, -0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xCF, 0xCE, 0xCE, -0xCE, 0xE5, 0xE5, 0xE6, 0xF4, 0xDD, 0xDC, 0xD6, 0xF2, 0x16, -0x11, 0xE8, 0x19, 0xFE, 0xFB, 0xE2, 0x01, 0x02, 0xFF, 0xED, -0xFA, 0xAB, 0xB0, 0xD5, 0xB4, 0xA0, 0xA5, 0xD1, 0x93, 0xF6, -0xF7, 0xFB, 0xD2, 0x61, 0x61, 0x61, 0x8F, 0x81, 0x81, 0x81, -0x98, 0xDB, 0xDB, 0xDB, 0xAA, 0x00, 0x00, 0x00, 0xF8, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x04, 0x12, -0x04, 0x04, 0x04, 0x2C, 0x05, 0x05, 0x03, 0x2F, 0xC9, 0xBD, -0x62, 0xDB, 0xB3, 0xA8, 0x55, 0xCE, 0x29, 0x27, 0x15, 0x57, -0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x04, 0x04, -0x04, 0x13, 0x1E, 0x1E, 0x1E, 0x78, 0x00, 0x00, 0x00, 0x08, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x15, 0x14, 0x0C, -0x30, 0x01, 0x01, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xBC, 0x5F, -0xCE, 0x94, 0x2C, 0x90, 0xF3, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Open3_png[] = { -0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, -0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x08, 0x06, -0x00, 0x00, 0x00, 0xc4, 0xb4, 0x6c, 0x3b, 0x00, 0x00, 0x0a, 0x39, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x68, 0x6f, 0x70, 0x20, 0x49, -0x43, 0x43, 0x20, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x00, 0x48, -0xc7, 0x9d, 0x96, 0x77, 0x54, 0x54, 0xd7, 0x16, 0x87, 0xcf, 0xbd, 0x77, 0x7a, -0xa1, 0xcd, 0x30, 0xd2, 0x19, 0x7a, 0x93, 0x2e, 0x30, 0x80, 0xf4, 0x2e, 0x20, -0x1d, 0x04, 0x51, 0x18, 0x66, 0x06, 0x18, 0xca, 0x00, 0xc3, 0x0c, 0x4d, 0x6c, -0x88, 0xa8, 0x40, 0x44, 0x11, 0x11, 0x01, 0x45, 0x90, 0xa0, 0x80, 0x01, 0xa3, -0xa1, 0x48, 0xac, 0x88, 0x62, 0x21, 0x28, 0xa8, 0x60, 0x0f, 0x48, 0x10, 0x50, -0x62, 0x30, 0x8a, 0xa8, 0xa8, 0x64, 0x46, 0xd6, 0x4a, 0x7c, 0x79, 0x79, 0xef, -0xe5, 0xe5, 0xf7, 0xc7, 0xbd, 0xdf, 0xda, 0x67, 0xef, 0x73, 0xf7, 0xd9, 0x7b, -0x9f, 0xb5, 0x2e, 0x00, 0x24, 0x4f, 0x1f, 0x2e, 0x2f, 0x05, 0x96, 0x02, 0x20, -0x99, 0x27, 0xe0, 0x07, 0x7a, 0x38, 0xd3, 0x57, 0x85, 0x47, 0xd0, 0xb1, 0xfd, -0x00, 0x06, 0x78, 0x80, 0x01, 0xa6, 0x00, 0x30, 0x59, 0xe9, 0xa9, 0xbe, 0x41, -0xee, 0xc1, 0x40, 0x24, 0x2f, 0x37, 0x17, 0x7a, 0xba, 0xc8, 0x09, 0xfc, 0x8b, -0xde, 0x0c, 0x01, 0x48, 0xfc, 0xbe, 0x65, 0xe8, 0xe9, 0x4f, 0xa7, 0x83, 0xff, -0x4f, 0xd2, 0xac, 0x54, 0xbe, 0x00, 0x00, 0xc8, 0x5f, 0xc4, 0xe6, 0x6c, 0x4e, -0x3a, 0x4b, 0xc4, 0xf9, 0x22, 0x4e, 0xca, 0x14, 0xa4, 0x8a, 0xed, 0x33, 0x22, -0xa6, 0xc6, 0x24, 0x8a, 0x19, 0x46, 0x89, 0x99, 0x2f, 0x4a, 0x50, 0xc4, 0x72, -0x62, 0x8e, 0x5b, 0xe4, 0xa5, 0x9f, 0x7d, 0x16, 0xd9, 0x51, 0xcc, 0xec, 0x64, -0x1e, 0x5b, 0xc4, 0xe2, 0x9c, 0x53, 0xd9, 0xc9, 0x6c, 0x31, 0xf7, 0x88, 0x78, -0x7b, 0x86, 0x90, 0x23, 0x62, 0xc4, 0x47, 0xc4, 0x05, 0x19, 0x5c, 0x4e, 0xa6, -0x88, 0x6f, 0x8b, 0x58, 0x33, 0x49, 0x98, 0xcc, 0x15, 0xf1, 0x5b, 0x71, 0x6c, -0x32, 0x87, 0x99, 0x0e, 0x00, 0x8a, 0x24, 0xb6, 0x0b, 0x38, 0xac, 0x78, 0x11, -0x9b, 0x88, 0x98, 0xc4, 0x0f, 0x0e, 0x74, 0x11, 0xf1, 0x72, 0x00, 0x70, 0xa4, -0xb8, 0x2f, 0x38, 0xe6, 0x0b, 0x16, 0x70, 0xb2, 0x04, 0xe2, 0x43, 0xb9, 0xa4, -0xa4, 0x66, 0xf3, 0xb9, 0x71, 0xf1, 0x02, 0xba, 0x2e, 0x4b, 0x8f, 0x6e, 0x6a, -0x6d, 0xcd, 0xa0, 0x7b, 0x72, 0x32, 0x93, 0x38, 0x02, 0x81, 0xa1, 0x3f, 0x93, -0x95, 0xc8, 0xe4, 0xb3, 0xe9, 0x2e, 0x29, 0xc9, 0xa9, 0x4c, 0x5e, 0x36, 0x00, -0x8b, 0x67, 0xfe, 0x2c, 0x19, 0x71, 0x6d, 0xe9, 0xa2, 0x22, 0x5b, 0x9a, 0x5a, -0x5b, 0x5a, 0x1a, 0x9a, 0x19, 0x99, 0x7e, 0x51, 0xa8, 0xff, 0xba, 0xf8, 0x37, -0x25, 0xee, 0xed, 0x22, 0xbd, 0x0a, 0xf8, 0xdc, 0x33, 0x88, 0xd6, 0xf7, 0x87, -0xed, 0xaf, 0xfc, 0x52, 0xea, 0x00, 0x60, 0xcc, 0x8a, 0x6a, 0xb3, 0xeb, 0x0f, -0x5b, 0xcc, 0x7e, 0x00, 0x3a, 0xb6, 0x02, 0x20, 0x77, 0xff, 0x0f, 0x9b, 0xe6, -0x21, 0x00, 0x24, 0x45, 0x7d, 0x6b, 0xbf, 0xf1, 0xc5, 0x79, 0x68, 0xe2, 0x79, -0x89, 0x17, 0x08, 0x52, 0x6d, 0x8c, 0x8d, 0x33, 0x33, 0x33, 0x8d, 0xb8, 0x1c, -0x96, 0x91, 0xb8, 0xa0, 0xbf, 0xeb, 0x7f, 0x3a, 0xfc, 0x0d, 0x7d, 0xf1, 0x3d, -0x23, 0xf1, 0x76, 0xbf, 0x97, 0x87, 0xee, 0xca, 0x89, 0x65, 0x0a, 0x93, 0x04, -0x74, 0x71, 0xdd, 0x58, 0x29, 0x49, 0x29, 0x42, 0x3e, 0x3d, 0x3d, 0x95, 0xc9, -0xe2, 0xd0, 0x0d, 0xff, 0x3c, 0xc4, 0xff, 0x38, 0xf0, 0xaf, 0xf3, 0x58, 0x1a, -0xc8, 0x89, 0xe5, 0xf0, 0x39, 0x3c, 0x51, 0x44, 0xa8, 0x68, 0xca, 0xb8, 0xbc, -0x38, 0x51, 0xbb, 0x79, 0x6c, 0xae, 0x80, 0x9b, 0xc2, 0xa3, 0x73, 0x79, 0xff, -0xa9, 0x89, 0xff, 0x30, 0xec, 0x4f, 0x5a, 0x9c, 0x6b, 0x91, 0x28, 0xf5, 0x9f, -0x00, 0x35, 0xca, 0x08, 0x48, 0xdd, 0xa0, 0x02, 0xe4, 0xe7, 0x3e, 0x80, 0xa2, -0x10, 0x01, 0x12, 0x79, 0x50, 0xdc, 0xf5, 0xdf, 0xfb, 0xe6, 0x83, 0x0f, 0x05, -0xe2, 0x9b, 0x17, 0xa6, 0x3a, 0xb1, 0x38, 0xf7, 0x9f, 0x05, 0xfd, 0xfb, 0xae, -0x70, 0x89, 0xf8, 0x91, 0xce, 0x8d, 0xfb, 0x1c, 0xe7, 0x12, 0x18, 0x4c, 0x67, -0x09, 0xf9, 0x19, 0x8b, 0x6b, 0xe2, 0x6b, 0x09, 0xd0, 0x80, 0x00, 0x24, 0x01, -0x15, 0xc8, 0x03, 0x15, 0xa0, 0x01, 0x74, 0x81, 0x21, 0x30, 0x03, 0x56, 0xc0, -0x16, 0x38, 0x02, 0x37, 0xb0, 0x02, 0xf8, 0x81, 0x60, 0x10, 0x0e, 0xd6, 0x02, -0x16, 0x88, 0x07, 0xc9, 0x80, 0x0f, 0x32, 0x41, 0x2e, 0xd8, 0x0c, 0x0a, 0x40, -0x11, 0xd8, 0x05, 0xf6, 0x82, 0x4a, 0x50, 0x03, 0xea, 0x41, 0x23, 0x68, 0x01, -0x27, 0x40, 0x07, 0x38, 0x0d, 0x2e, 0x80, 0xcb, 0xe0, 0x3a, 0xb8, 0x09, 0xee, -0x80, 0x07, 0x60, 0x04, 0x8c, 0x83, 0xe7, 0x60, 0x06, 0xbc, 0x01, 0xf3, 0x10, -0x04, 0x61, 0x21, 0x32, 0x44, 0x81, 0xe4, 0x21, 0x55, 0x48, 0x0b, 0x32, 0x80, -0xcc, 0x20, 0x06, 0x64, 0x0f, 0xb9, 0x41, 0x3e, 0x50, 0x20, 0x14, 0x0e, 0x45, -0x43, 0x71, 0x10, 0x0f, 0x12, 0x42, 0xb9, 0xd0, 0x16, 0xa8, 0x08, 0x2a, 0x85, -0x2a, 0xa1, 0x5a, 0xa8, 0x11, 0xfa, 0x16, 0x3a, 0x05, 0x5d, 0x80, 0xae, 0x42, -0x03, 0xd0, 0x3d, 0x68, 0x14, 0x9a, 0x82, 0x7e, 0x85, 0xde, 0xc3, 0x08, 0x4c, -0x82, 0xa9, 0xb0, 0x32, 0xac, 0x0d, 0x1b, 0xc3, 0x0c, 0xd8, 0x09, 0xf6, 0x86, -0x83, 0xe1, 0x35, 0x70, 0x1c, 0x9c, 0x06, 0xe7, 0xc0, 0xf9, 0xf0, 0x4e, 0xb8, -0x02, 0xae, 0x83, 0x8f, 0xc1, 0xed, 0xf0, 0x05, 0xf8, 0x3a, 0x7c, 0x07, 0x1e, -0x81, 0x9f, 0xc3, 0xb3, 0x08, 0x40, 0x88, 0x08, 0x0d, 0x51, 0x43, 0x0c, 0x11, -0x06, 0xe2, 0x82, 0xf8, 0x21, 0x11, 0x48, 0x2c, 0xc2, 0x47, 0x36, 0x20, 0x85, -0x48, 0x39, 0x52, 0x87, 0xb4, 0x20, 0x5d, 0x48, 0x2f, 0x72, 0x0b, 0x19, 0x41, -0xa6, 0x91, 0x77, 0x28, 0x0c, 0x8a, 0x82, 0xa2, 0xa3, 0x0c, 0x51, 0xb6, 0x28, -0x4f, 0x54, 0x08, 0x8a, 0x85, 0x4a, 0x43, 0x6d, 0x40, 0x15, 0xa3, 0x2a, 0x51, -0x47, 0x51, 0xed, 0xa8, 0x1e, 0xd4, 0x2d, 0xd4, 0x28, 0x6a, 0x06, 0xf5, 0x09, -0x4d, 0x46, 0x2b, 0xa1, 0x0d, 0xd0, 0x36, 0x68, 0x2f, 0xf4, 0x2a, 0x74, 0x1c, -0x3a, 0x13, 0x5d, 0x80, 0x2e, 0x47, 0x37, 0xa0, 0xdb, 0xd0, 0x97, 0xd0, 0x77, -0xd0, 0xe3, 0xe8, 0x37, 0x18, 0x0c, 0x86, 0x86, 0xd1, 0xc1, 0x58, 0x61, 0x3c, -0x31, 0xe1, 0x98, 0x04, 0xcc, 0x3a, 0x4c, 0x31, 0xe6, 0x00, 0xa6, 0x15, 0x73, -0x1e, 0x33, 0x80, 0x19, 0xc3, 0xcc, 0x62, 0xb1, 0x58, 0x79, 0xac, 0x01, 0xd6, -0x0e, 0xeb, 0x87, 0x65, 0x62, 0x05, 0xd8, 0x02, 0xec, 0x7e, 0xec, 0x31, 0xec, -0x39, 0xec, 0x20, 0x76, 0x1c, 0xfb, 0x16, 0x47, 0xc4, 0xa9, 0xe2, 0xcc, 0x70, -0xee, 0xb8, 0x08, 0x1c, 0x0f, 0x97, 0x87, 0x2b, 0xc7, 0x35, 0xe1, 0xce, 0xe2, -0x06, 0x71, 0x13, 0xb8, 0x79, 0xbc, 0x14, 0x5e, 0x0b, 0x6f, 0x83, 0xf7, 0xc3, -0xb3, 0xf1, 0xd9, 0xf8, 0x12, 0x7c, 0x3d, 0xbe, 0x0b, 0x7f, 0x03, 0x3f, 0x8e, -0x9f, 0x27, 0x48, 0x13, 0x74, 0x08, 0x76, 0x84, 0x60, 0x42, 0x02, 0x61, 0x33, -0xa1, 0x82, 0xd0, 0x42, 0xb8, 0x44, 0x78, 0x48, 0x78, 0x45, 0x24, 0x12, 0xd5, -0x89, 0xd6, 0xc4, 0x00, 0x22, 0x97, 0xb8, 0x89, 0x58, 0x41, 0x3c, 0x4e, 0xbc, -0x42, 0x1c, 0x25, 0xbe, 0x23, 0xc9, 0x90, 0xf4, 0x49, 0x2e, 0xa4, 0x48, 0x92, -0x90, 0xb4, 0x93, 0x74, 0x84, 0x74, 0x9e, 0x74, 0x8f, 0xf4, 0x8a, 0x4c, 0x26, -0x6b, 0x93, 0x1d, 0xc9, 0x11, 0x64, 0x01, 0x79, 0x27, 0xb9, 0x91, 0x7c, 0x91, -0xfc, 0x98, 0xfc, 0x56, 0x82, 0x22, 0x61, 0x24, 0xe1, 0x25, 0xc1, 0x96, 0xd8, -0x28, 0x51, 0x25, 0xd1, 0x2e, 0x31, 0x28, 0xf1, 0x42, 0x12, 0x2f, 0xa9, 0x25, -0xe9, 0x24, 0xb9, 0x56, 0x32, 0x47, 0xb2, 0x5c, 0xf2, 0xa4, 0xe4, 0x0d, 0xc9, -0x69, 0x29, 0xbc, 0x94, 0xb6, 0x94, 0x8b, 0x14, 0x53, 0x6a, 0x83, 0x54, 0x95, -0xd4, 0x29, 0xa9, 0x61, 0xa9, 0x59, 0x69, 0x8a, 0xb4, 0xa9, 0xb4, 0x9f, 0x74, -0xb2, 0x74, 0xb1, 0x74, 0x93, 0xf4, 0x55, 0xe9, 0x49, 0x19, 0xac, 0x8c, 0xb6, -0x8c, 0x9b, 0x0c, 0x5b, 0x26, 0x5f, 0xe6, 0xb0, 0xcc, 0x45, 0x99, 0x31, 0x0a, -0x42, 0xd1, 0xa0, 0xb8, 0x50, 0x58, 0x94, 0x2d, 0x94, 0x7a, 0xca, 0x25, 0xca, -0x38, 0x15, 0x43, 0xd5, 0xa1, 0x7a, 0x51, 0x13, 0xa8, 0x45, 0xd4, 0x6f, 0xa8, -0xfd, 0xd4, 0x19, 0x59, 0x19, 0xd9, 0x65, 0xb2, 0xa1, 0xb2, 0x59, 0xb2, 0x55, -0xb2, 0x67, 0x64, 0x47, 0x68, 0x08, 0x4d, 0x9b, 0xe6, 0x45, 0x4b, 0xa2, 0x95, -0xd0, 0x4e, 0xd0, 0x86, 0x68, 0xef, 0x97, 0x28, 0x2f, 0x71, 0x5a, 0xc2, 0x59, -0xb2, 0x63, 0x49, 0xcb, 0x92, 0xc1, 0x25, 0x73, 0x72, 0x8a, 0x72, 0x8e, 0x72, -0x1c, 0xb9, 0x42, 0xb9, 0x56, 0xb9, 0x3b, 0x72, 0xef, 0xe5, 0xe9, 0xf2, 0x6e, -0xf2, 0x89, 0xf2, 0xbb, 0xe5, 0x3b, 0xe4, 0x1f, 0x29, 0xa0, 0x14, 0xf4, 0x15, -0x02, 0x14, 0x32, 0x15, 0x0e, 0x2a, 0x5c, 0x52, 0x98, 0x56, 0xa4, 0x2a, 0xda, -0x2a, 0xb2, 0x14, 0x0b, 0x15, 0x4f, 0x28, 0xde, 0x57, 0x82, 0x95, 0xf4, 0x95, -0x02, 0x95, 0xd6, 0x29, 0x1d, 0x56, 0xea, 0x53, 0x9a, 0x55, 0x56, 0x51, 0xf6, -0x50, 0x4e, 0x55, 0xde, 0xaf, 0x7c, 0x51, 0x79, 0x5a, 0x85, 0xa6, 0xe2, 0xa8, -0x92, 0xa0, 0x52, 0xa6, 0x72, 0x56, 0x65, 0x4a, 0x95, 0xa2, 0x6a, 0xaf, 0xca, -0x55, 0x2d, 0x53, 0x3d, 0xa7, 0xfa, 0x8c, 0x2e, 0x4b, 0x77, 0xa2, 0x27, 0xd1, -0x2b, 0xe8, 0x3d, 0xf4, 0x19, 0x35, 0x25, 0x35, 0x4f, 0x35, 0xa1, 0x5a, 0xad, -0x5a, 0xbf, 0xda, 0xbc, 0xba, 0x8e, 0x7a, 0x88, 0x7a, 0x9e, 0x7a, 0xab, 0xfa, -0x23, 0x0d, 0x82, 0x06, 0x43, 0x23, 0x56, 0xa3, 0x4c, 0xa3, 0x5b, 0x63, 0x46, -0x53, 0x55, 0xd3, 0x57, 0x33, 0x57, 0xb3, 0x59, 0xf3, 0xbe, 0x16, 0x5e, 0x8b, -0xa1, 0x15, 0xaf, 0xb5, 0x4f, 0xab, 0x57, 0x6b, 0x4e, 0x5b, 0x47, 0x3b, 0x4c, -0x7b, 0x9b, 0x76, 0x87, 0xf6, 0xa4, 0x8e, 0x9c, 0x8e, 0x97, 0x4e, 0x8e, 0x4e, -0xb3, 0xce, 0x43, 0x5d, 0xb2, 0xae, 0x83, 0x6e, 0x9a, 0x6e, 0x9d, 0xee, 0x6d, -0x3d, 0x8c, 0x1e, 0x43, 0x2f, 0x51, 0xef, 0x80, 0xde, 0x4d, 0x7d, 0x58, 0xdf, -0x42, 0x3f, 0x5e, 0xbf, 0x4a, 0xff, 0x86, 0x01, 0x6c, 0x60, 0x69, 0xc0, 0x35, -0x38, 0x60, 0x30, 0xb0, 0x14, 0xbd, 0xd4, 0x7a, 0x29, 0x6f, 0x69, 0xdd, 0xd2, -0x61, 0x43, 0x92, 0xa1, 0x93, 0x61, 0x86, 0x61, 0xb3, 0xe1, 0xa8, 0x11, 0xcd, -0xc8, 0xc7, 0x28, 0xcf, 0xa8, 0xc3, 0xe8, 0x85, 0xb1, 0xa6, 0x71, 0x84, 0xf1, -0x6e, 0xe3, 0x5e, 0xe3, 0x4f, 0x26, 0x16, 0x26, 0x49, 0x26, 0xf5, 0x26, 0x0f, -0x4c, 0x65, 0x4c, 0x57, 0x98, 0xe6, 0x99, 0x76, 0x99, 0xfe, 0x6a, 0xa6, 0x6f, -0xc6, 0x32, 0xab, 0x32, 0xbb, 0x6d, 0x4e, 0x36, 0x77, 0x37, 0xdf, 0x68, 0xde, -0x69, 0xfe, 0x72, 0x99, 0xc1, 0x32, 0xce, 0xb2, 0x83, 0xcb, 0xee, 0x5a, 0x50, -0x2c, 0x7c, 0x2d, 0xb6, 0x59, 0x74, 0x5b, 0x7c, 0xb4, 0xb4, 0xb2, 0xe4, 0x5b, -0xb6, 0x58, 0x4e, 0x59, 0x69, 0x5a, 0x45, 0x5b, 0x55, 0x5b, 0x0d, 0x33, 0xa8, -0x0c, 0x7f, 0x46, 0x31, 0xe3, 0x8a, 0x35, 0xda, 0xda, 0xd9, 0x7a, 0xa3, 0xf5, -0x69, 0xeb, 0x77, 0x36, 0x96, 0x36, 0x02, 0x9b, 0x13, 0x36, 0xbf, 0xd8, 0x1a, -0xda, 0x26, 0xda, 0x36, 0xd9, 0x4e, 0x2e, 0xd7, 0x59, 0xce, 0x59, 0x5e, 0xbf, -0x7c, 0xcc, 0x4e, 0xdd, 0x8e, 0x69, 0x57, 0x6b, 0x37, 0x62, 0x4f, 0xb7, 0x8f, -0xb6, 0x3f, 0x64, 0x3f, 0xe2, 0xa0, 0xe6, 0xc0, 0x74, 0xa8, 0x73, 0x78, 0xe2, -0xa8, 0xe1, 0xc8, 0x76, 0x6c, 0x70, 0x9c, 0x70, 0xd2, 0x73, 0x4a, 0x70, 0x3a, -0xe6, 0xf4, 0xc2, 0xd9, 0xc4, 0x99, 0xef, 0xdc, 0xe6, 0x3c, 0xe7, 0x62, 0xe3, -0xb2, 0xde, 0xe5, 0xbc, 0x2b, 0xe2, 0xea, 0xe1, 0x5a, 0xe8, 0xda, 0xef, 0x26, -0xe3, 0x16, 0xe2, 0x56, 0xe9, 0xf6, 0xd8, 0x5d, 0xdd, 0x3d, 0xce, 0xbd, 0xd9, -0x7d, 0xc6, 0xc3, 0xc2, 0x63, 0x9d, 0xc7, 0x79, 0x4f, 0xb4, 0xa7, 0xb7, 0xe7, -0x6e, 0xcf, 0x61, 0x2f, 0x65, 0x2f, 0x96, 0x57, 0xa3, 0xd7, 0xcc, 0x0a, 0xab, -0x15, 0xeb, 0x57, 0xf4, 0x78, 0x93, 0xbc, 0x83, 0xbc, 0x2b, 0xbd, 0x9f, 0xf8, -0xe8, 0xfb, 0xf0, 0x7d, 0xba, 0x7c, 0x61, 0xdf, 0x15, 0xbe, 0x7b, 0x7c, 0x1f, -0xae, 0xd4, 0x5a, 0xc9, 0x5b, 0xd9, 0xe1, 0x07, 0xfc, 0xbc, 0xfc, 0xf6, 0xf8, -0x3d, 0xf2, 0xd7, 0xf1, 0x4f, 0xf3, 0xff, 0x3e, 0x00, 0x13, 0xe0, 0x1f, 0x50, -0x15, 0xf0, 0x34, 0xd0, 0x34, 0x30, 0x37, 0xb0, 0x37, 0x88, 0x12, 0x14, 0x15, -0xd4, 0x14, 0xf4, 0x26, 0xd8, 0x39, 0xb8, 0x24, 0xf8, 0x41, 0x88, 0x6e, 0x88, -0x30, 0xa4, 0x3b, 0x54, 0x32, 0x34, 0x32, 0xb4, 0x31, 0x74, 0x2e, 0xcc, 0x35, -0xac, 0x34, 0x6c, 0x64, 0x95, 0xf1, 0xaa, 0xf5, 0xab, 0xae, 0x87, 0x2b, 0x84, -0x73, 0xc3, 0x3b, 0x23, 0xb0, 0x11, 0xa1, 0x11, 0x0d, 0x11, 0xb3, 0xab, 0xdd, -0x56, 0xef, 0x5d, 0x3d, 0x1e, 0x69, 0x11, 0x59, 0x10, 0x39, 0xb4, 0x46, 0x67, -0x4d, 0xd6, 0x9a, 0xab, 0x6b, 0x15, 0xd6, 0x26, 0xad, 0x3d, 0x13, 0x25, 0x19, -0xc5, 0x8c, 0x3a, 0x19, 0x8d, 0x8e, 0x0e, 0x8b, 0x6e, 0x8a, 0xfe, 0xc0, 0xf4, -0x63, 0xd6, 0x31, 0x67, 0x63, 0xbc, 0x62, 0xaa, 0x63, 0x66, 0x58, 0x2e, 0xac, -0x7d, 0xac, 0xe7, 0x6c, 0x47, 0x76, 0x19, 0x7b, 0x8a, 0x63, 0xc7, 0x29, 0xe5, -0x4c, 0xc4, 0xda, 0xc5, 0x96, 0xc6, 0x4e, 0xc6, 0xd9, 0xc5, 0xed, 0x89, 0x9b, -0x8a, 0x77, 0x88, 0x2f, 0x8f, 0x9f, 0xe6, 0xba, 0x70, 0x2b, 0xb9, 0x2f, 0x13, -0x3c, 0x13, 0x6a, 0x12, 0xe6, 0x12, 0xfd, 0x12, 0x8f, 0x24, 0x2e, 0x24, 0x85, -0x25, 0xb5, 0x26, 0xe3, 0x92, 0xa3, 0x93, 0x4f, 0xf1, 0x64, 0x78, 0x89, 0xbc, -0x9e, 0x14, 0x95, 0x94, 0xac, 0x94, 0x81, 0x54, 0x83, 0xd4, 0x82, 0xd4, 0x91, -0x34, 0x9b, 0xb4, 0xbd, 0x69, 0x33, 0x7c, 0x6f, 0x7e, 0x43, 0x3a, 0x94, 0xbe, -0x26, 0xbd, 0x53, 0x40, 0x15, 0xfd, 0x4c, 0xf5, 0x09, 0x75, 0x85, 0x5b, 0x85, -0xa3, 0x19, 0xf6, 0x19, 0x55, 0x19, 0x6f, 0x33, 0x43, 0x33, 0x4f, 0x66, 0x49, -0x67, 0xf1, 0xb2, 0xfa, 0xb2, 0xf5, 0xb3, 0x77, 0x64, 0x4f, 0xe4, 0xb8, 0xe7, -0x7c, 0xbd, 0x0e, 0xb5, 0x8e, 0xb5, 0xae, 0x3b, 0x57, 0x2d, 0x77, 0x73, 0xee, -0xe8, 0x7a, 0xa7, 0xf5, 0xb5, 0x1b, 0xa0, 0x0d, 0x31, 0x1b, 0xba, 0x37, 0x6a, -0x6c, 0xcc, 0xdf, 0x38, 0xbe, 0xc9, 0x63, 0xd3, 0xd1, 0xcd, 0x84, 0xcd, 0x89, -0x9b, 0x7f, 0xc8, 0x33, 0xc9, 0x2b, 0xcd, 0x7b, 0xbd, 0x25, 0x6c, 0x4b, 0x57, -0xbe, 0x72, 0xfe, 0xa6, 0xfc, 0xb1, 0xad, 0x1e, 0x5b, 0x9b, 0x0b, 0x24, 0x0a, -0xf8, 0x05, 0xc3, 0xdb, 0x6c, 0xb7, 0xd5, 0x6c, 0x47, 0x6d, 0xe7, 0x6e, 0xef, -0xdf, 0x61, 0xbe, 0x63, 0xff, 0x8e, 0x4f, 0x85, 0xec, 0xc2, 0x6b, 0x45, 0x26, -0x45, 0xe5, 0x45, 0x1f, 0x8a, 0x59, 0xc5, 0xd7, 0xbe, 0x32, 0xfd, 0xaa, 0xe2, -0xab, 0x85, 0x9d, 0xb1, 0x3b, 0xfb, 0x4b, 0x2c, 0x4b, 0x0e, 0xee, 0xc2, 0xec, -0xe2, 0xed, 0x1a, 0xda, 0xed, 0xb0, 0xfb, 0x68, 0xa9, 0x74, 0x69, 0x4e, 0xe9, -0xd8, 0x1e, 0xdf, 0x3d, 0xed, 0x65, 0xf4, 0xb2, 0xc2, 0xb2, 0xd7, 0x7b, 0xa3, -0xf6, 0x5e, 0x2d, 0x5f, 0x56, 0x5e, 0xb3, 0x8f, 0xb0, 0x4f, 0xb8, 0x6f, 0xa4, -0xc2, 0xa7, 0xa2, 0x73, 0xbf, 0xe6, 0xfe, 0x5d, 0xfb, 0x3f, 0x54, 0xc6, 0x57, -0xde, 0xa9, 0x72, 0xae, 0x6a, 0xad, 0x56, 0xaa, 0xde, 0x51, 0x3d, 0x77, 0x80, -0x7d, 0x60, 0xf0, 0xa0, 0xe3, 0xc1, 0x96, 0x1a, 0xe5, 0x9a, 0xa2, 0x9a, 0xf7, -0x87, 0xb8, 0x87, 0xee, 0xd6, 0x7a, 0xd4, 0xb6, 0xd7, 0x69, 0xd7, 0x95, 0x1f, -0xc6, 0x1c, 0xce, 0x38, 0xfc, 0xb4, 0x3e, 0xb4, 0xbe, 0xf7, 0x6b, 0xc6, 0xd7, -0x8d, 0x0d, 0x0a, 0x0d, 0x45, 0x0d, 0x1f, 0x8f, 0xf0, 0x8e, 0x8c, 0x1c, 0x0d, -0x3c, 0xda, 0xd3, 0x68, 0xd5, 0xd8, 0xd8, 0xa4, 0xd4, 0x54, 0xd2, 0x0c, 0x37, -0x0b, 0x9b, 0xa7, 0x8e, 0x45, 0x1e, 0xbb, 0xf9, 0x8d, 0xeb, 0x37, 0x9d, 0x2d, -0x86, 0x2d, 0xb5, 0xad, 0xb4, 0xd6, 0xa2, 0xe3, 0xe0, 0xb8, 0xf0, 0xf8, 0xb3, -0x6f, 0xa3, 0xbf, 0x1d, 0x3a, 0xe1, 0x7d, 0xa2, 0xfb, 0x24, 0xe3, 0x64, 0xcb, -0x77, 0x5a, 0xdf, 0x55, 0xb7, 0x51, 0xda, 0x0a, 0xdb, 0xa1, 0xf6, 0xec, 0xf6, -0x99, 0x8e, 0xf8, 0x8e, 0x91, 0xce, 0xf0, 0xce, 0x81, 0x53, 0x2b, 0x4e, 0x75, -0x77, 0xd9, 0x76, 0xb5, 0x7d, 0x6f, 0xf4, 0xfd, 0x91, 0xd3, 0x6a, 0xa7, 0xab, -0xce, 0xc8, 0x9e, 0x29, 0x39, 0x4b, 0x38, 0x9b, 0x7f, 0x76, 0xe1, 0x5c, 0xce, -0xb9, 0xd9, 0xf3, 0xa9, 0xe7, 0xa7, 0x2f, 0xc4, 0x5d, 0x18, 0xeb, 0x8e, 0xea, -0x7e, 0x70, 0x71, 0xd5, 0xc5, 0xdb, 0x3d, 0x01, 0x3d, 0xfd, 0x97, 0xbc, 0x2f, -0x5d, 0xb9, 0xec, 0x7e, 0xf9, 0x62, 0xaf, 0x53, 0xef, 0xb9, 0x2b, 0x76, 0x57, -0x4e, 0x5f, 0xb5, 0xb9, 0x7a, 0xea, 0x1a, 0xe3, 0x5a, 0xc7, 0x75, 0xcb, 0xeb, -0xed, 0x7d, 0x16, 0x7d, 0x6d, 0x3f, 0x58, 0xfc, 0xd0, 0xd6, 0x6f, 0xd9, 0xdf, -0x7e, 0xc3, 0xea, 0x46, 0xe7, 0x4d, 0xeb, 0x9b, 0x5d, 0x03, 0xcb, 0x07, 0xce, -0x0e, 0x3a, 0x0c, 0x5e, 0xb8, 0xe5, 0x7a, 0xeb, 0xf2, 0x6d, 0xaf, 0xdb, 0xd7, -0xef, 0xac, 0xbc, 0x33, 0x30, 0x14, 0x32, 0x74, 0x77, 0x38, 0x72, 0x78, 0xe4, -0x2e, 0xfb, 0xee, 0xe4, 0xbd, 0xa4, 0x7b, 0x2f, 0xef, 0x67, 0xdc, 0x9f, 0x7f, -0xb0, 0xe9, 0x21, 0xfa, 0x61, 0xe1, 0x23, 0xa9, 0x47, 0xe5, 0x8f, 0x95, 0x1e, -0xd7, 0xfd, 0xa8, 0xf7, 0x63, 0xeb, 0x88, 0xe5, 0xc8, 0x99, 0x51, 0xd7, 0xd1, -0xbe, 0x27, 0x41, 0x4f, 0x1e, 0x8c, 0xb1, 0xc6, 0x9e, 0xff, 0x94, 0xfe, 0xd3, -0x87, 0xf1, 0xfc, 0xa7, 0xe4, 0xa7, 0xe5, 0x13, 0xaa, 0x13, 0x8d, 0x93, 0x66, -0x93, 0xa7, 0xa7, 0xdc, 0xa7, 0x6e, 0x3e, 0x5b, 0xfd, 0x6c, 0xfc, 0x79, 0xea, -0xf3, 0xf9, 0xe9, 0x82, 0x9f, 0xa5, 0x7f, 0xae, 0x7e, 0xa1, 0xfb, 0xe2, 0xbb, -0x5f, 0x1c, 0x7f, 0xe9, 0x9b, 0x59, 0x35, 0x33, 0xfe, 0x92, 0xff, 0x72, 0xe1, -0xd7, 0xe2, 0x57, 0xf2, 0xaf, 0x8e, 0xbc, 0x5e, 0xf6, 0xba, 0x7b, 0xd6, 0x7f, -0xf6, 0xf1, 0x9b, 0xe4, 0x37, 0xf3, 0x73, 0x85, 0x6f, 0xe5, 0xdf, 0x1e, 0x7d, -0xc7, 0x78, 0xd7, 0xfb, 0x3e, 0xec, 0xfd, 0xc4, 0x7c, 0xe6, 0x07, 0xec, 0x87, -0x8a, 0x8f, 0x7a, 0x1f, 0xbb, 0x3e, 0x79, 0x7f, 0x7a, 0xb8, 0x90, 0xbc, 0xb0, -0xf0, 0x1b, 0xf7, 0x84, 0xf3, 0xfb, 0xe2, 0xe6, 0x1d, 0xc2, 0x00, 0x00, 0x00, -0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, -0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, -0x07, 0xdd, 0x01, 0x0a, 0x02, 0x35, 0x0f, 0x01, 0xa3, 0x67, 0xcc, 0x00, 0x00, -0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, -0xbd, 0xa7, 0x93, 0x00, 0x00, 0x05, 0x50, 0x49, 0x44, 0x41, 0x54, 0x18, 0x19, -0x6d, 0xc1, 0x5b, 0x88, 0x5c, 0x67, 0x01, 0xc0, 0xf1, 0xff, 0x77, 0x39, 0xe7, -0xcc, 0x7d, 0x76, 0xb2, 0xd9, 0xfb, 0x36, 0xdb, 0x24, 0x9b, 0xa4, 0x4d, 0x2f, -0xd1, 0x98, 0x62, 0x09, 0xb6, 0x25, 0x12, 0xd4, 0x3e, 0x28, 0x42, 0xd1, 0x80, -0x16, 0x5f, 0x4a, 0xa5, 0x0f, 0x56, 0x51, 0x1f, 0x6a, 0x11, 0x45, 0xa8, 0x45, -0x04, 0xb5, 0x68, 0xf1, 0x45, 0x9f, 0x0a, 0xb1, 0x52, 0x41, 0x6c, 0x20, 0x50, -0x7c, 0xb0, 0x68, 0x2c, 0x69, 0x5a, 0x6a, 0xb5, 0xe2, 0x62, 0x53, 0x4c, 0x8d, -0xb9, 0x6c, 0x92, 0x4e, 0x76, 0x27, 0x3b, 0xb3, 0x3b, 0x67, 0xce, 0x77, 0x75, -0x26, 0x2c, 0x18, 0x64, 0x7f, 0x3f, 0xc1, 0xff, 0x39, 0xfe, 0xd3, 0xc7, 0x79, -0xf4, 0x6b, 0xbf, 0x64, 0xe4, 0x17, 0x3f, 0xfa, 0x8a, 0xb8, 0xff, 0xbe, 0x03, -0xa2, 0xb3, 0x72, 0x59, 0x38, 0x6b, 0xc5, 0xee, 0x5d, 0x3b, 0xc5, 0xf2, 0xf2, -0x55, 0xdd, 0x5e, 0xed, 0x4e, 0xb4, 0xc6, 0xc7, 0x67, 0xc7, 0x5b, 0x63, 0xf3, -0x52, 0x30, 0xf5, 0xfe, 0xf9, 0x0b, 0x63, 0x4a, 0xca, 0xfd, 0xf3, 0x3b, 0x76, -0x9f, 0x98, 0x9c, 0x9c, 0xff, 0xdd, 0xe4, 0xde, 0xa3, 0x56, 0xb0, 0x85, 0x1f, -0x7e, 0xeb, 0xd3, 0xfa, 0xd0, 0x81, 0x7b, 0xa6, 0xd3, 0x72, 0xf5, 0xae, 0xe9, -0xa9, 0x89, 0xbd, 0xbd, 0x6e, 0x67, 0x97, 0x75, 0x76, 0x71, 0x7e, 0x66, 0x7a, -0xb7, 0x92, 0xcc, 0xa4, 0x89, 0x1a, 0xd3, 0x5a, 0x90, 0x17, 0x16, 0x81, 0xa2, -0x35, 0xbe, 0x8d, 0x68, 0xd6, 0xb0, 0x62, 0xf2, 0xf9, 0x98, 0x4e, 0x3d, 0x55, -0x9b, 0x3d, 0x98, 0x6b, 0xb6, 0x30, 0xd6, 0x68, 0x1e, 0x59, 0x58, 0x98, 0x39, -0x3e, 0x3d, 0xd1, 0x98, 0xf4, 0x76, 0xc0, 0x6d, 0x33, 0xf3, 0xa4, 0x59, 0x42, -0xc8, 0x7b, 0xa8, 0x34, 0xc3, 0x78, 0x4f, 0xbb, 0xdd, 0x8f, 0xa5, 0x52, 0x49, -0x54, 0x4a, 0x8a, 0x58, 0x74, 0x58, 0x5b, 0xbd, 0x4e, 0xac, 0x54, 0x72, 0xad, -0x27, 0x22, 0x43, 0x9a, 0x2d, 0xcc, 0xcd, 0x4e, 0x4f, 0xd5, 0xeb, 0x49, 0x96, -0x48, 0x87, 0x8f, 0x91, 0x41, 0xaf, 0x4b, 0x7f, 0x2d, 0x22, 0xb5, 0xc2, 0xf5, -0x06, 0x9c, 0x3d, 0xb7, 0x4c, 0x56, 0x69, 0x8a, 0x83, 0xfb, 0x9b, 0x58, 0x5b, -0xe0, 0x7c, 0xc4, 0xb9, 0x40, 0xb4, 0x45, 0x2a, 0x4c, 0x4f, 0x30, 0x24, 0xd9, -0xc2, 0x7a, 0x3f, 0x1f, 0x0c, 0xd6, 0x07, 0xc6, 0xe4, 0x39, 0xc2, 0xae, 0xa3, -0xc2, 0x06, 0x99, 0xc8, 0xa9, 0x48, 0xc3, 0xa9, 0x33, 0x4b, 0xbc, 0xfc, 0xfb, -0xb7, 0x30, 0xc6, 0x22, 0x12, 0x45, 0x8c, 0x82, 0x10, 0x22, 0xce, 0x3b, 0x8c, -0x19, 0x54, 0xf3, 0x7e, 0x57, 0x30, 0xa4, 0xd9, 0x42, 0xb1, 0xd1, 0xb1, 0x29, -0x7d, 0x17, 0x5d, 0x89, 0xce, 0x40, 0x53, 0x84, 0x04, 0xa5, 0x04, 0x35, 0x17, -0x58, 0x5d, 0xb9, 0x81, 0x70, 0x39, 0x49, 0x22, 0x41, 0x08, 0x46, 0x82, 0xf7, -0x58, 0x6b, 0x40, 0xf9, 0x92, 0xf0, 0x5e, 0x30, 0xa4, 0xb9, 0xc5, 0x0f, 0x5e, -0x3a, 0xc5, 0xd3, 0xc7, 0x1e, 0x84, 0x7c, 0x75, 0xe3, 0x72, 0xbf, 0x36, 0x68, -0x9b, 0xdd, 0x5c, 0xc8, 0xc7, 0x30, 0x21, 0x41, 0x29, 0x49, 0x3d, 0xf5, 0x5c, -0x88, 0xd7, 0xb0, 0x72, 0x15, 0x11, 0x03, 0x23, 0x11, 0xf0, 0xce, 0x61, 0x8b, -0x02, 0x9d, 0x85, 0x54, 0x4a, 0xc1, 0x88, 0x66, 0xd3, 0x93, 0xcf, 0x3c, 0xc7, -0xd3, 0xc7, 0x1e, 0x64, 0xa4, 0x73, 0xd7, 0xd7, 0xef, 0x3d, 0x6d, 0xc7, 0xe7, -0x6c, 0xa8, 0x83, 0x02, 0xa9, 0x05, 0x51, 0x6b, 0x7a, 0x3a, 0x61, 0x99, 0x05, -0xae, 0xc7, 0x35, 0x0a, 0x51, 0x01, 0xe1, 0x20, 0x82, 0x75, 0x16, 0x6b, 0x0a, -0x54, 0x08, 0x52, 0x10, 0x05, 0x43, 0x9a, 0x4d, 0xd3, 0xfb, 0x0e, 0x31, 0xf2, -0xb3, 0x93, 0x67, 0x1e, 0xd2, 0xb5, 0xd6, 0x37, 0xd0, 0xa5, 0x34, 0x8d, 0x16, -0x25, 0x04, 0x5a, 0x29, 0x92, 0x44, 0x23, 0x55, 0x42, 0x39, 0x53, 0x90, 0xd4, -0x08, 0x32, 0x01, 0x02, 0x21, 0x06, 0x9c, 0xb3, 0x18, 0x6b, 0x48, 0x7d, 0x10, -0x31, 0x70, 0x93, 0x66, 0xd3, 0xb7, 0x3f, 0xff, 0x00, 0x5f, 0xfa, 0xe6, 0xf7, -0xa6, 0x62, 0x14, 0x4f, 0xd4, 0x6b, 0xb5, 0x39, 0x67, 0x0b, 0x84, 0xd0, 0x31, -0x49, 0x52, 0x21, 0x75, 0x06, 0x52, 0x51, 0x4a, 0x34, 0xa9, 0x56, 0x24, 0x0a, -0x84, 0xe0, 0xa6, 0xe0, 0x3d, 0xd6, 0x58, 0x9c, 0x29, 0xf0, 0xd1, 0x83, 0xe4, -0x26, 0xc9, 0xd0, 0x23, 0x4f, 0x7e, 0x87, 0x91, 0x03, 0x87, 0x8f, 0xdc, 0x56, -0x6d, 0x36, 0x8e, 0xa4, 0x5a, 0x91, 0x4a, 0x19, 0xab, 0x59, 0x26, 0x84, 0x80, -0x4e, 0xfb, 0x22, 0x2b, 0xd7, 0x2e, 0x71, 0x63, 0xa3, 0x87, 0x4a, 0x4a, 0x94, -0x4a, 0x25, 0xa4, 0x94, 0x10, 0x23, 0xce, 0x59, 0xac, 0x35, 0x18, 0x53, 0x40, -0x8c, 0x48, 0xa9, 0x18, 0xd1, 0x0c, 0xfd, 0xf6, 0xf9, 0x67, 0x18, 0xf1, 0xde, -0xef, 0xa9, 0x64, 0xe5, 0xa9, 0x44, 0x69, 0x54, 0xb9, 0x2c, 0x92, 0xac, 0xc2, -0xda, 0xf2, 0xfb, 0x94, 0xdb, 0xa7, 0xd9, 0xa1, 0x2f, 0xd1, 0xde, 0xb8, 0x93, -0xde, 0xba, 0x21, 0x1f, 0x58, 0x42, 0x08, 0x20, 0x24, 0xce, 0x3a, 0x9c, 0x31, -0x58, 0x63, 0x71, 0xce, 0x2b, 0xef, 0x3c, 0x23, 0x9a, 0xff, 0x11, 0x69, 0x9a, -0xaa, 0x4a, 0xad, 0x4a, 0x92, 0xa5, 0x08, 0x40, 0x66, 0x55, 0xca, 0x49, 0xa4, -0x92, 0x59, 0xa6, 0xfc, 0x65, 0x52, 0xdd, 0xc4, 0xac, 0x47, 0x6e, 0xac, 0xf5, -0x48, 0xf4, 0x14, 0x48, 0xb0, 0x45, 0x81, 0x75, 0x86, 0xe0, 0x3d, 0x45, 0xde, -0xaf, 0x6c, 0xf4, 0x56, 0x05, 0x43, 0x72, 0xef, 0xde, 0xbd, 0x42, 0x29, 0x95, -0x00, 0xc9, 0xf9, 0xb3, 0x4b, 0xb9, 0x54, 0xbe, 0xa8, 0x37, 0xca, 0x0c, 0xf2, -0x01, 0xd7, 0x96, 0x2f, 0xd1, 0xcd, 0x23, 0x79, 0x79, 0x81, 0x0b, 0xad, 0x4f, -0xb2, 0x5e, 0xbf, 0x93, 0x72, 0x9a, 0x50, 0xae, 0x56, 0xf9, 0xdb, 0xb9, 0x82, -0xfe, 0xca, 0x00, 0x29, 0x03, 0xd6, 0x58, 0x9c, 0xb7, 0x38, 0x9b, 0xd7, 0xcc, -0xa0, 0x27, 0x19, 0xd2, 0x49, 0x92, 0x64, 0x43, 0xf3, 0xfd, 0x7e, 0xbf, 0xfc, -0xea, 0xcb, 0xbf, 0xee, 0xcd, 0xec, 0xdc, 0x75, 0x6e, 0xe7, 0xfe, 0x0f, 0xed, -0xbf, 0x72, 0xe9, 0x62, 0x8c, 0x21, 0x08, 0x9d, 0x55, 0x18, 0xd4, 0xee, 0x60, -0x23, 0x15, 0xa8, 0xac, 0x46, 0x56, 0xeb, 0x50, 0xcd, 0x7a, 0x9c, 0x39, 0x37, -0xe0, 0xf0, 0x9e, 0x0d, 0xe6, 0x6b, 0x01, 0x6b, 0x0c, 0xd6, 0x58, 0x82, 0xf7, -0x69, 0x0c, 0x81, 0x11, 0xbd, 0xb8, 0xb8, 0x58, 0x5c, 0xbd, 0x7a, 0xb5, 0x3f, -0x34, 0xf7, 0xf7, 0xd7, 0xff, 0xd8, 0xbf, 0xfd, 0xee, 0x8f, 0x9c, 0xaa, 0x8e, -0xcf, 0xde, 0xd1, 0xda, 0x3e, 0x29, 0xb1, 0x06, 0x95, 0x68, 0xa4, 0xca, 0x08, -0x2a, 0x25, 0x2d, 0x67, 0xdc, 0x7b, 0xe8, 0x7e, 0xba, 0x9d, 0x15, 0xa4, 0x5f, -0x47, 0x10, 0x31, 0xc6, 0x60, 0x9d, 0xc1, 0x59, 0x43, 0x8c, 0x51, 0x0b, 0x10, -0x0c, 0xc9, 0x13, 0x27, 0x4e, 0xc4, 0x95, 0x95, 0x95, 0x2b, 0x4a, 0x29, 0x07, -0x4c, 0xbe, 0xfd, 0xca, 0xaf, 0xde, 0x5e, 0x3d, 0xfb, 0xc6, 0xf9, 0x46, 0x73, -0x9c, 0xe6, 0xd4, 0x1c, 0xb5, 0x7a, 0x83, 0x4a, 0x39, 0xa1, 0x94, 0x06, 0x94, -0x70, 0x6c, 0x9b, 0x9e, 0xa6, 0xdc, 0x68, 0xe1, 0xd1, 0xf8, 0x10, 0xb0, 0xb6, -0xc0, 0x59, 0x8b, 0xb3, 0x86, 0xe8, 0x5d, 0x1a, 0xbc, 0x15, 0x0c, 0x49, 0x86, -0x4a, 0x43, 0xc0, 0x0e, 0xa0, 0x25, 0xdd, 0x7a, 0xb2, 0xa8, 0x2f, 0x9a, 0xf2, -0xd5, 0xd7, 0x58, 0xbb, 0x7e, 0x99, 0x90, 0x8d, 0xa1, 0x1a, 0xdb, 0x48, 0xeb, -0xe3, 0xe8, 0x7a, 0x03, 0xab, 0xaa, 0xb1, 0x30, 0x0e, 0xf3, 0xc1, 0x7b, 0xb8, -0xbc, 0x8b, 0xf3, 0x22, 0x3a, 0x63, 0xa2, 0x19, 0x6c, 0x20, 0x94, 0xd2, 0x49, -0x56, 0x66, 0x44, 0x33, 0xe4, 0xbd, 0x77, 0xde, 0xfb, 0x15, 0x60, 0x31, 0x88, -0x54, 0x4e, 0x4c, 0x2f, 0x24, 0xb3, 0xee, 0x5d, 0x2e, 0xbe, 0xfe, 0x02, 0xed, -0xd9, 0x07, 0x48, 0x26, 0xf6, 0x80, 0xae, 0x44, 0x7c, 0x5f, 0x0c, 0xae, 0x9f, -0x13, 0xd9, 0x7f, 0x4e, 0x52, 0xc9, 0xaf, 0x10, 0xfd, 0x3c, 0x85, 0x0d, 0xf4, -0x3a, 0xd7, 0x44, 0x73, 0x62, 0x81, 0x52, 0x75, 0xec, 0xd9, 0x6d, 0xb3, 0xfb, -0xba, 0x0c, 0x69, 0x86, 0xec, 0x50, 0xab, 0xd5, 0x7a, 0xb3, 0xd7, 0x5b, 0x9f, -0x4d, 0x12, 0xfd, 0x99, 0x3c, 0x96, 0xb6, 0x17, 0xb6, 0x4b, 0x63, 0xe3, 0x1d, -0xcc, 0x3f, 0xdf, 0x81, 0x7f, 0x4f, 0xa2, 0x2a, 0x2d, 0x51, 0xa9, 0x34, 0xd6, -0xe6, 0xe6, 0xe7, 0x5e, 0xfb, 0x6b, 0xa7, 0x7d, 0x69, 0xe9, 0x5f, 0xed, 0xf1, -0xcf, 0xe6, 0xf6, 0x21, 0x5d, 0xb4, 0x27, 0x2a, 0x63, 0x33, 0x45, 0x6b, 0x7a, -0xf1, 0xcb, 0xf7, 0x7c, 0xec, 0xd8, 0x8b, 0x69, 0x73, 0x8f, 0xff, 0xea, 0x87, -0x41, 0x0c, 0x11, 0x63, 0x64, 0x53, 0x5d, 0xa7, 0xd9, 0x27, 0x1e, 0x3b, 0x76, -0xe4, 0x89, 0x47, 0x8e, 0xec, 0x38, 0x5a, 0x4e, 0xc2, 0x8d, 0x52, 0x6d, 0xfb, -0x9f, 0x83, 0xb7, 0xa7, 0xab, 0xcd, 0xc9, 0xd3, 0x97, 0x97, 0xfe, 0xb4, 0x74, -0xdf, 0x47, 0x0f, 0x9b, 0xa3, 0x8f, 0xbf, 0x60, 0x17, 0xe6, 0x9b, 0x1f, 0xff, -0xc2, 0xa7, 0xf6, 0xfd, 0xe6, 0xd0, 0xdd, 0x0b, 0x74, 0x6c, 0xf3, 0xb1, 0x83, -0x0f, 0x3f, 0xf5, 0x12, 0x9b, 0xba, 0x1f, 0x2c, 0x71, 0xd3, 0xdc, 0xdc, 0x1c, -0xb7, 0x10, 0x07, 0x16, 0xb7, 0xa5, 0xef, 0xbe, 0x79, 0x7c, 0xea, 0xca, 0x3f, -0x5e, 0xac, 0xfd, 0xe5, 0xe4, 0xf7, 0xd5, 0xd2, 0x1f, 0x7e, 0x2c, 0x63, 0xff, -0x3d, 0x6e, 0xf5, 0x93, 0xef, 0x7e, 0x71, 0xc7, 0x1b, 0xaf, 0x3c, 0xf7, 0x73, -0x77, 0xed, 0xd5, 0x47, 0xd9, 0xf4, 0xec, 0xe7, 0xa0, 0x7b, 0xe5, 0x2d, 0x46, -0xfe, 0x0b, 0x23, 0x6d, 0x86, 0x4b, 0xa3, 0xa1, 0xde, 0x64, 0x00, 0x00, 0x00, -0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Options3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x01, -0xEC, 0xEC, 0xEC, 0x33, 0xE5, 0xE4, 0xE4, 0x7D, 0x04, 0x04, -0x04, 0x73, 0x51, 0x4E, 0x4F, 0xDD, 0xFE, 0xFE, 0xFE, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x2D, 0x2E, 0x2E, 0x00, 0x21, 0x22, 0x22, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x14, 0x14, 0x13, 0x33, -0x2C, 0x2D, 0x2D, 0x6D, 0x17, 0x17, 0x17, 0x38, 0x04, 0x05, -0x05, 0xF7, 0xF5, 0xF4, 0xF5, 0xAA, 0x1B, 0x1C, 0x1B, 0x87, -0x18, 0x18, 0x18, 0x00, 0xFC, 0xFC, 0xFC, 0x00, 0x04, 0xF4, -0xF3, 0xF3, 0x03, 0x1D, 0x1D, 0x1D, 0x47, 0xD0, 0xD0, 0xD1, -0x42, 0x17, 0x18, 0x17, 0x42, 0xEC, 0xEB, 0xEC, 0xCC, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x01, 0x01, 0x00, 0x00, 0xFA, 0xFA, 0xF9, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x1A, 0x1A, 0x1A, 0x54, 0x38, 0x39, 0x39, 0xA5, 0x06, -0x06, 0x07, 0x06, 0xF1, 0xF1, 0xF1, 0xFA, 0xD7, 0xD6, 0xD6, -0xA4, 0x0F, 0x0F, 0x0F, 0xA6, 0xD3, 0xD2, 0xD1, 0x00, 0x09, -0x09, 0x09, 0x00, 0x02, 0x02, 0x02, 0x00, 0x01, 0xFF, 0xFF, -0xFF, 0x00, 0xD4, 0xD3, 0xD4, 0x6B, 0x0A, 0x0A, 0x09, 0x8F, -0xD6, 0xD4, 0xD5, 0xBB, 0xDC, 0xDC, 0xDB, 0x50, 0x00, 0x00, -0x00, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xEC, 0xEC, 0xEC, 0x00, 0xEC, 0xEC, 0xED, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, -0x70, 0x71, 0x71, 0xDA, 0xF0, 0xEF, 0xF0, 0x21, 0xF3, 0xF3, -0xF3, 0x00, 0xD1, 0xD1, 0xD1, 0xA6, 0xF8, 0xF7, 0xF7, 0x5B, -0xFE, 0xFD, 0xFD, 0x22, 0x10, 0x11, 0x11, 0x52, 0x0B, 0x0C, -0x0B, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, -0x00, 0x29, 0x2A, 0x29, 0x95, 0xD0, 0xCE, 0xCF, 0xC7, 0xFB, -0xFA, 0xFA, 0xB0, 0x21, 0x21, 0x21, 0xA1, 0xF8, 0xF8, 0xF8, -0x5E, 0x01, 0x01, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0C, -0x0C, 0x0D, 0x00, 0xF3, 0xF4, 0xF4, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x0A, 0x0B, 0x24, 0x24, -0x25, 0x25, 0x20, 0xF3, 0xF2, 0xF3, 0x00, 0xD2, 0xD2, 0xD1, -0x00, 0x14, 0x14, 0x14, 0x4A, 0x0A, 0x0B, 0x0A, 0xA0, 0x06, -0x06, 0x06, 0x54, 0xEF, 0xEE, 0xEF, 0xAF, 0xF6, 0xF6, 0xF5, -0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x03, 0x03, 0x03, 0x00, 0x24, 0x25, 0x25, 0xCE, 0x99, 0x96, -0x97, 0x45, 0xFE, 0xFE, 0xFE, 0x3D, 0x08, 0x07, 0x08, 0xA2, -0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, -0x0C, 0x00, 0x0D, 0x0C, 0x0D, 0x00, 0x01, 0x00, 0x00, 0x00, -0x01, 0x00, 0x00, 0x00, 0x10, 0x11, 0x11, 0x22, 0x03, 0x03, -0x03, 0x01, 0x0C, 0x0D, 0x0C, 0x00, 0x0B, 0x0B, 0x0B, 0x00, -0x25, 0x26, 0x25, 0x10, 0x0D, 0x0D, 0x0D, 0x5F, 0x00, 0xFF, -0x00, 0x03, 0xFB, 0xFB, 0xFB, 0x8F, 0xFF, 0xFF, 0x00, 0x00, -0xFF, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0xFC, -0xD9, 0x98, 0x94, 0x96, 0x43, 0xFE, 0xFF, 0xFE, 0x3D, 0x08, -0x08, 0x08, 0xA3, 0xFF, 0xFF, 0xFF, 0x04, 0x01, 0x01, 0x00, -0x00, 0x15, 0x15, 0x14, 0x00, 0xF2, 0xF3, 0xF3, 0x00, 0xF2, -0xF3, 0xF3, 0x00, 0x0A, 0x0A, 0x0A, 0x2C, 0xD8, 0xD7, 0xD7, -0x00, 0x8B, 0x89, 0x8A, 0x00, 0xB0, 0xB0, 0xB1, 0x00, 0x12, -0x12, 0x12, 0x00, 0x09, 0x09, 0x0A, 0xF6, 0xFA, 0xFA, 0xF9, -0x5A, 0xFA, 0xFA, 0xFA, 0xCE, 0xFF, 0xFF, 0x00, 0x00, 0xC4, -0xE8, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFD, 0xFD, 0xFD, 0xDA, 0x98, 0x94, 0x96, 0x43, 0xFD, 0xFD, -0xFE, 0x3C, 0x09, 0x08, 0x09, 0xA2, 0x00, 0x00, 0x00, 0x05, -0x0C, 0x0F, 0x11, 0x00, 0xD5, 0xFE, 0x21, 0x00, 0xD8, 0xF7, -0x16, 0x0D, 0x12, 0x13, 0x14, 0x6A, 0xE5, 0xE5, 0xE6, 0x00, -0x17, 0x18, 0x18, 0x00, 0xFF, 0xFE, 0xFE, 0x00, 0xFA, 0xFA, -0xFA, 0x00, 0x17, 0x17, 0x16, 0x05, 0x0F, 0x10, 0x11, 0xD7, -0x24, 0x25, 0x25, 0x00, 0x10, 0x1A, 0x21, 0x00, 0xD1, 0xEF, -0x0B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFD, 0xFD, 0xFD, 0xDA, 0x99, 0x95, 0x96, -0x44, 0xFC, 0xFC, 0xFC, 0x3C, 0x08, 0x08, 0x09, 0xA1, 0x02, -0x04, 0x06, 0x05, 0xEE, 0x03, 0x1B, 0x0D, 0xDB, 0xF7, 0x33, -0xB4, 0x92, 0xC3, 0x12, 0x1F, 0xDC, 0xE3, 0xF3, 0x00, 0x10, -0x10, 0x0F, 0xFE, 0x25, 0x26, 0x25, 0xB6, 0xD1, 0xD0, 0xD0, -0x69, 0xE0, 0xE0, 0xE0, 0x58, 0x01, 0x02, 0x01, 0xF5, 0x02, -0x03, 0x02, 0x00, 0xE8, 0xE5, 0xE2, 0x00, 0xEB, 0xC6, 0xAA, -0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFD, 0xFD, 0xD9, -0x99, 0x97, 0x98, 0x45, 0x66, 0x69, 0x68, 0xBB, 0x09, 0x07, -0x09, 0xA3, 0x35, 0xFF, 0xF4, 0x19, 0x35, 0xF7, 0xB8, 0x3E, -0x9F, 0x05, 0x65, 0x00, 0x8B, 0xB8, 0xF9, 0xEF, 0x34, 0x01, -0xAB, 0x59, 0xEE, 0xEC, 0xE9, 0xB9, 0x3D, 0x3D, 0x3D, 0x00, -0x0B, 0x0C, 0x0C, 0x00, 0x09, 0x09, 0x09, 0x00, 0x02, 0x03, -0x03, 0x00, 0xEB, 0xE3, 0xDD, 0x00, 0xF6, 0xD3, 0xB4, 0x00, -0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x02, 0x02, 0x00, 0xFB, 0x13, 0x23, 0x00, 0xFB, 0x13, 0x23, -0x00, 0xFB, 0x13, 0x23, 0x00, 0xFB, 0x13, 0x24, 0x00, 0xF7, -0x0F, 0x20, 0xD9, 0x8F, 0xA9, 0xC5, 0x50, 0x15, 0xF6, 0xF9, -0x53, 0x8C, 0x23, 0xEA, 0x3E, 0x19, 0xDB, 0xBF, 0x00, 0x73, -0xD9, 0x8D, 0xFE, 0xF4, 0xF8, 0xF2, 0x6E, 0xD5, 0xFA, 0x22, -0xB9, 0x04, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x07, 0x08, 0x07, 0x00, 0x18, 0x19, 0x19, 0x00, 0x01, -0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF4, -0xF8, 0x00, 0x48, 0x7D, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFF, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0xFA, 0xFA, -0x00, 0x0F, 0x23, 0xF1, 0xF7, 0xB6, 0x7A, 0x03, 0xCC, 0x3A, -0x10, 0xFF, 0xFC, 0x00, 0xFD, 0x01, 0x01, 0x00, 0xE9, 0xEB, -0xEA, 0xFB, 0xFE, 0xDD, 0xDD, 0x44, 0x13, 0xF3, 0xF3, 0xC2, -0xF5, 0xF0, 0xF1, 0x00, 0xF2, 0x1A, 0x1A, 0x00, 0x04, 0x37, -0x35, 0x00, 0xF7, 0x4E, 0x4F, 0x00, 0xF4, 0x01, 0x02, 0x00, -0xD9, 0xD8, 0xD9, 0x00, 0xFD, 0xFD, 0xFD, 0x00, 0x04, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFC, 0xFB, 0x00, 0x10, 0x02, 0x02, 0x19, -0xB6, 0xDF, 0xD9, 0xC3, 0x39, 0xC6, 0xE3, 0xB8, 0x00, 0x29, -0x1B, 0x19, 0x00, 0x22, 0x44, 0x44, 0x00, 0x09, 0xE3, 0xE3, -0x05, 0xDC, 0xF5, 0xF6, 0xAF, 0xF9, 0xF5, 0xF6, 0x59, 0x12, -0xFF, 0xFF, 0xBA, 0x0E, 0xE2, 0xE2, 0x00, 0x07, 0xF0, 0xEB, -0x00, 0x14, 0xBB, 0xB8, 0x00, 0xCE, 0x3D, 0x3C, 0x00, 0xEE, -0x1D, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFC, -0x00, 0x0E, 0x18, 0x13, 0x20, 0xB3, 0xDF, 0xD3, 0xE6, 0x39, -0xD6, 0x11, 0x39, 0x00, 0xC6, 0x43, 0x81, 0x00, 0xDE, 0x08, -0x19, 0xF5, 0xC7, 0xA3, 0xA3, 0xFF, 0x06, 0x13, 0x13, 0x00, -0x2B, 0x33, 0x33, 0x12, 0xF2, 0x11, 0x11, 0xB6, 0xDE, 0x0B, -0x0B, 0x98, 0xFC, 0x02, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x33, 0xDE, 0xD6, 0x00, 0xFE, 0xD8, -0xD5, 0x00, 0xE0, 0xDF, 0xDF, 0x00, 0x02, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0xFF, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x0A, 0x18, 0x12, 0x20, -0xB1, 0xD1, 0xCA, 0xE4, 0x3C, 0xF4, 0xFF, 0x0F, 0x00, 0x23, -0x2B, 0x1D, 0x00, 0xD1, 0x11, 0x2D, 0xF7, 0xB3, 0xFD, 0x20, -0x42, 0x01, 0xF4, 0xF4, 0x8D, 0xD9, 0xCA, 0xCA, 0xFF, 0x08, -0x1C, 0x1C, 0x00, 0x29, 0x35, 0x35, 0x03, 0xFE, 0x09, 0x09, -0x67, 0xD9, 0x0E, 0x0E, 0xCF, 0xEE, 0x02, 0x04, 0x39, 0x00, -0x00, 0x00, 0x00, 0x09, 0xFE, 0xFD, 0x00, 0x62, 0xED, 0xE2, -0x00, 0xE3, 0x20, 0x57, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFD, -0x00, 0x07, 0x01, 0x02, 0x19, 0xAA, 0xD4, 0xD1, 0xEB, 0x40, -0xE8, 0xF0, 0x05, 0x00, 0x1A, 0x26, 0x1E, 0x00, 0x07, 0x04, -0xFE, 0xFF, 0xEC, 0xE7, 0xDB, 0x70, 0xEC, 0x17, 0x16, 0xCA, -0x11, 0xF3, 0xF3, 0x78, 0xF3, 0xF4, 0xF4, 0xC0, 0xCE, 0xB4, -0xB4, 0x00, 0x09, 0x20, 0x20, 0x00, 0x2E, 0x3D, 0x3D, 0x00, -0x0A, 0x07, 0x07, 0x20, 0xDD, 0x02, 0x04, 0xBB, 0xEC, 0x01, -0x03, 0x43, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFE, 0xFE, 0x00, -0xF4, 0xFF, 0x0A, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x02, 0xF5, 0xF7, 0x12, -0x9D, 0xE4, 0xE1, 0xF8, 0x4B, 0xE3, 0xE4, 0xFA, 0x00, 0x13, -0x22, 0x1D, 0x00, 0x18, 0x16, 0x08, 0x00, 0xE1, 0xDB, 0xD6, -0x9B, 0x08, 0x0A, 0xF5, 0x9A, 0x09, 0xF6, 0xEE, 0x00, 0xF3, -0xFF, 0xFF, 0xFD, 0x02, 0xF1, 0xF1, 0x67, 0xF5, 0xFB, 0xFB, -0xF5, 0xCC, 0xAB, 0xAB, 0x00, 0x0A, 0x24, 0x24, 0x00, 0x2E, -0x3F, 0x3F, 0x00, 0x0C, 0x05, 0x06, 0x0B, 0xDE, 0x01, 0x04, -0xAE, 0xEE, 0xF9, 0xFE, 0x32, 0x05, 0xFC, 0xFB, 0x00, 0x64, -0xC9, 0x91, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFC, -0xFE, 0x00, 0x7F, 0xA1, 0xD5, 0x87, 0xF7, 0xFA, 0x0B, 0x5B, -0xE7, 0xDF, 0xF0, 0x00, 0x0D, 0x1F, 0x1E, 0x00, 0x23, 0x21, -0x10, 0x00, 0xDB, 0xD3, 0xD7, 0xC3, 0x09, 0x08, 0xF0, 0x6E, -0xFF, 0xFD, 0xFD, 0x00, 0x07, 0xF6, 0xF2, 0x00, 0xF3, 0x00, -0x00, 0x00, 0xFD, 0xFC, 0xFC, 0xDB, 0xF5, 0xF3, 0xF3, 0x78, -0xFC, 0xFD, 0xFD, 0x00, 0xC9, 0xA2, 0xA2, 0x00, 0x0B, 0x25, -0x25, 0x00, 0x2F, 0x3E, 0x3E, 0x00, 0x0B, 0x05, 0x05, 0x0E, -0xD9, 0xF2, 0xFB, 0xAF, 0xF8, 0xF7, 0xFE, 0x17, 0x51, 0xF1, -0xDE, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x89, 0xA9, 0xD7, -0x66, 0xC3, 0xE1, 0x04, 0x74, 0x02, 0xFA, 0xFF, 0x00, 0x0B, -0x1C, 0x1D, 0x00, 0x27, 0x26, 0x13, 0x00, 0xDB, 0xD5, 0xDA, -0xE3, 0x04, 0x03, 0xE6, 0x57, 0xFE, 0xFD, 0xF8, 0xF9, 0xFA, -0xE2, 0xC9, 0x00, 0xCB, 0xDF, 0xBD, 0x00, 0xA7, 0x0C, 0x0C, -0x00, 0xDE, 0x02, 0x02, 0x00, 0xF0, 0xF4, 0xF3, 0x95, 0xDA, -0xF2, 0xF1, 0x9A, 0x00, 0xFF, 0xFF, 0x00, 0xC8, 0x9F, 0x9F, -0x00, 0x09, 0x1E, 0x1E, 0x00, 0x2E, 0x3B, 0x3B, 0x00, 0x03, -0x03, 0x04, 0x1E, 0xDD, 0xF8, 0x00, 0xA3, 0xFF, 0xFA, 0xFF, -0x02, 0x01, 0xD2, 0xDC, 0xEC, 0x15, 0x4F, 0x84, 0xD4, 0xDF, -0x21, 0x0F, 0x05, 0xAD, 0xDE, 0xF5, 0x03, 0x32, 0x16, 0x13, -0x0A, 0x2C, 0xE3, 0xDE, 0xE4, 0xF5, 0xFA, 0xF4, 0xD6, 0x41, -0xFD, 0xEF, 0xD3, 0xCB, 0xFE, 0xDF, 0xC0, 0x00, 0x06, 0xFD, -0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x03, 0xFF, 0xFF, 0x00, 0x24, 0xF9, 0xF8, 0x00, 0x29, 0xF7, -0xF6, 0x03, 0x27, 0x0B, 0x0D, 0x8C, 0x1C, 0x10, 0x10, 0x6F, -0x03, 0x01, 0x01, 0x01, 0x33, 0x50, 0x50, 0x00, 0xF9, 0xE5, -0xE5, 0x00, 0xDB, 0xD1, 0xD1, 0xFF, 0x21, 0xFF, 0xFF, 0x46, -0x02, 0xF1, 0xF1, 0xF5, 0x0A, 0xF3, 0xEA, 0xED, 0x08, 0x2C, -0x34, 0x1F, 0xE5, 0x32, 0x3B, 0x1F, 0xEF, 0xE0, 0xDC, 0xE7, -0xFB, 0xF0, 0xD8, 0xB2, 0x60, 0xF1, 0xC8, 0x92, 0xCB, 0xF0, -0xC8, 0xA1, 0x00, 0xFD, 0xF4, 0xEC, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, -0x01, 0x01, 0x00, 0xD9, 0x08, 0x09, 0x00, 0xA3, 0x01, 0x03, -0xFD, 0xAA, 0xF3, 0xF3, 0x71, 0xC8, 0xED, 0xED, 0x6B, 0xF4, -0xF9, 0xF9, 0xF8, 0xCA, 0xAF, 0xAF, 0x00, 0x08, 0x18, 0x18, -0x00, 0x31, 0x51, 0x51, 0xE9, 0xDA, 0xEE, 0xEE, 0xCA, 0x03, -0x1D, 0x18, 0x10, 0xF5, 0xCE, 0xC9, 0xC6, 0x0A, 0xD7, 0xE5, -0x04, 0x6D, 0xE5, 0xD4, 0xD9, 0x11, 0xF8, 0xD2, 0x99, 0x8B, -0x05, 0xEB, 0xBB, 0xCA, 0x07, 0x00, 0xFA, 0x1E, 0x09, 0x09, -0x09, 0x1F, 0x07, 0x07, 0x07, 0x1F, 0x02, 0x02, 0x02, 0x1E, -0x01, 0x01, 0x01, 0x1E, 0x01, 0x01, 0x01, 0x1E, 0x01, 0x01, -0x01, 0x1E, 0x02, 0x02, 0x02, 0x1E, 0x03, 0x05, 0x05, 0x1D, -0xEE, 0x08, 0x08, 0x1A, 0xD2, 0x04, 0x04, 0xE4, 0xE3, 0xFF, -0xFF, 0xCE, 0x1D, 0xFD, 0xFD, 0x35, 0xFB, 0xF9, 0xF9, 0xE9, -0x81, 0xD4, 0xD4, 0x69, 0x89, 0xE5, 0xE5, 0xD9, 0x01, 0x95, -0x95, 0x95, 0x03, 0xCF, 0xCE, 0xCE, 0x10, 0xE5, 0xE7, 0xEB, -0x0B, 0xF0, 0xF0, 0xED, 0x05, 0x04, 0x03, 0x02, 0x03, 0x00, -0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x04, 0xFF, 0xFF, 0xFF, -0x03, 0xE7, 0xE7, 0xE7, 0x01, 0xEE, 0xEE, 0xEE, 0x00, 0xFF, -0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, -0x00, 0x00, 0xFD, 0x01, 0x01, 0x01, 0xFC, 0x01, 0x01, 0x01, -0xFD, 0x02, 0xFD, 0xFD, 0xFE, 0xFD, 0xFF, 0xFF, 0xF8, 0xFF, -0x02, 0x02, 0xF7, 0xF3, 0xF3, 0xF3, 0xF1, 0x06, 0x4A, 0xD6, -0xAB, 0xAA, 0xF4, 0xEA, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Pad3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x01, -0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0x00, -0xA5, 0xA6, 0xA6, 0x02, 0x12, 0x12, 0x12, 0x49, 0x0B, 0x0B, -0x0C, 0x3F, 0xFB, 0xFB, 0xFA, 0xEC, 0x0A, 0x09, 0x0A, 0xA4, -0x22, 0x23, 0x23, 0xE6, 0x01, 0x01, 0x01, 0x00, 0x08, 0x08, -0xFE, 0x00, 0xFE, 0xFE, 0x03, 0x00, 0xFC, 0xFD, 0x01, 0x00, -0x02, 0x00, 0x01, 0x00, 0xF5, 0xF6, 0xF6, 0x01, 0xDD, 0xDD, -0xDC, 0x59, 0x09, 0x09, 0x09, 0x2F, 0x00, 0x00, 0x00, 0xE6, -0xED, 0xED, 0xEE, 0xA4, 0x2C, 0x2B, 0x2B, 0xED, 0x26, 0x26, -0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, -0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0xEB, 0xEB, 0x08, 0x8D, -0x8E, 0x8F, 0xA9, 0x5F, 0x5E, 0x5E, 0x4D, 0x1F, 0x1F, 0x1F, -0x01, 0xF8, 0xF8, 0xF8, 0x00, 0xEC, 0xED, 0xED, 0xE5, 0xF9, -0xF9, 0xF9, 0xC2, 0xFF, 0xFF, 0x00, 0xE0, 0x09, 0x09, 0xFE, -0xF2, 0xFF, 0xFF, 0x04, 0xFE, 0xFE, 0xFE, 0x03, 0x09, 0x03, -0x02, 0x02, 0x1A, 0x05, 0x06, 0x05, 0x31, 0x09, 0x09, 0x0A, -0x34, 0x02, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0xBF, -0xBF, 0xBF, 0xE7, 0x12, 0x12, 0x12, 0x4E, 0x45, 0x45, 0x44, -0xCC, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x00, -0x00, 0x00, 0x00, 0x00, 0xD0, 0xD0, 0xD0, 0x41, 0x0E, 0x0E, -0x0F, 0xBE, 0xDD, 0xDD, 0xDD, 0x00, 0xEE, 0xEE, 0xEE, 0x00, -0x0B, 0x0B, 0x0B, 0x00, 0x34, 0x34, 0x34, 0x00, 0xFE, 0xFE, -0xFE, 0x00, 0x03, 0x03, 0x03, 0x00, 0x0C, 0x0C, 0x0C, 0x00, -0x02, 0x03, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0xF9, 0xF9, -0xF9, 0x00, 0xFC, 0xFD, 0xFD, 0x00, 0xED, 0xEC, 0xED, 0x00, -0xFA, 0xFA, 0xFA, 0x00, 0x03, 0x03, 0x03, 0x00, 0x15, 0x16, -0x16, 0x00, 0xD0, 0xD0, 0xD0, 0xA0, 0x44, 0x43, 0x42, 0x61, -0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, -0xFF, 0xFF, 0x00, 0x10, 0x10, 0x11, 0x76, 0xD1, 0xD2, 0xD2, -0x00, 0xD4, 0xD4, 0xD4, 0x00, 0xF6, 0xF5, 0xF5, 0x00, 0x10, -0x10, 0x11, 0x00, 0xEF, 0xEF, 0xF0, 0x00, 0x45, 0x46, 0x44, -0x00, 0x0F, 0x0F, 0x0E, 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFB, 0xF4, 0xF5, 0x00, 0x02, 0x02, 0x02, 0x00, 0xF8, -0xF8, 0xF8, 0x00, 0xFC, 0xFD, 0xFD, 0x00, 0xFB, 0xFB, 0xFC, -0x00, 0x27, 0x26, 0x26, 0x52, 0xF5, 0xF5, 0xF5, 0x7A, 0x0B, -0x0B, 0x0B, 0xE7, 0x02, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xF6, -0xF6, 0x33, 0xFD, 0xFE, 0xFE, 0x46, 0xE5, 0xE4, 0xE4, 0x00, -0xFA, 0xFA, 0xFA, 0x00, 0xF9, 0xFA, 0xFB, 0x00, 0xE8, 0xE8, -0xE8, 0x00, 0xC9, 0xC9, 0xC8, 0x00, 0xCC, 0xCC, 0xCE, 0x00, -0xFD, 0xFE, 0xFE, 0x00, 0xED, 0xED, 0xEE, 0x00, 0xFE, 0xFE, -0xFE, 0x00, 0xE7, 0xE8, 0xE8, 0x00, 0x06, 0x06, 0x06, 0x00, -0xB6, 0xB7, 0xB7, 0x00, 0xC2, 0xC3, 0xC3, 0x00, 0x26, 0x27, -0x27, 0x00, 0xE1, 0xE1, 0xE1, 0x00, 0xDE, 0xDF, 0xDE, 0x00, -0xF9, 0xF9, 0xF9, 0x0E, 0xFA, 0xFA, 0xFB, 0x6B, 0x00, 0x00, -0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, -0x5B, 0xFE, 0xFE, 0xFE, 0x02, 0x06, 0x07, 0x08, 0x00, 0xE6, -0xE5, 0xE7, 0x00, 0x01, 0x01, 0x01, 0x00, 0xED, 0xED, 0xED, -0x00, 0xFA, 0xFA, 0xFB, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xE9, -0xE9, 0xEA, 0x00, 0xEA, 0xEB, 0xEA, 0x00, 0xFE, 0xFE, 0xFE, -0x00, 0xE8, 0xE7, 0xE8, 0x00, 0xF2, 0xF3, 0xF4, 0x00, 0x39, -0x39, 0x39, 0x00, 0x28, 0x28, 0x28, 0x00, 0xC3, 0xC3, 0xC3, -0x00, 0x1E, 0x1E, 0x1E, 0x00, 0x24, 0x23, 0x23, 0x00, 0xF6, -0xF6, 0xF6, 0x00, 0xFB, 0xFC, 0xFC, 0x5B, 0xFE, 0xFE, 0xFE, -0x02, 0x02, 0xFF, 0xFF, 0xFF, 0x00, 0xFB, 0xFB, 0xFB, 0x4A, -0xF6, 0xF5, 0xF6, 0x00, 0x21, 0x21, 0x21, 0x00, 0x2F, 0x30, -0x2F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1D, 0x1E, 0x1E, 0x00, -0x30, 0x32, 0x32, 0x00, 0xFB, 0xFB, 0xFB, 0x00, 0xDE, 0xDF, -0xDF, 0x00, 0xE9, 0xE9, 0xEA, 0x00, 0xA0, 0xA0, 0xA2, 0x00, -0x04, 0x05, 0x05, 0x00, 0xD1, 0xD2, 0xD2, 0x00, 0xE0, 0xE0, -0xE0, 0x00, 0xE3, 0xE3, 0xE3, 0x00, 0xBF, 0xBF, 0xBE, 0x00, -0x04, 0x03, 0x03, 0x00, 0x16, 0x17, 0x17, 0x00, 0x07, 0x08, -0x08, 0x00, 0xF8, 0xF8, 0xF8, 0x1F, 0xFC, 0xFC, 0xFC, 0x2C, -0x04, 0xFC, 0xFC, 0xFC, 0x16, 0xF6, 0xF6, 0xF7, 0x23, 0x03, -0x04, 0x03, 0x00, 0x29, 0x29, 0x27, 0x00, 0x14, 0x14, 0x14, -0x00, 0xDD, 0x1B, 0x1B, 0x00, 0xEC, 0xEC, 0xEC, 0x00, 0xF8, -0xF7, 0xF7, 0x00, 0xF2, 0xF2, 0xF2, 0x00, 0xE6, 0xE6, 0xE6, -0x00, 0xFD, 0xF5, 0xF5, 0x00, 0xEC, 0xC8, 0xC8, 0x00, 0x02, -0x03, 0x03, 0x00, 0x06, 0x06, 0x06, 0x00, 0xF4, 0xF5, 0xF4, -0x00, 0xEF, 0xEF, 0xF0, 0x00, 0x3B, 0x3C, 0x3D, 0x00, 0x11, -0x13, 0x13, 0x00, 0x04, 0x04, 0x04, 0x00, 0x09, 0x09, 0x09, -0x00, 0xFD, 0xFC, 0xFC, 0x01, 0xFA, 0xFB, 0xFB, 0x38, 0x04, -0xFA, 0xFA, 0xFB, 0x27, 0xF4, 0xF5, 0xF4, 0x03, 0x07, 0x07, -0x07, 0x00, 0x08, 0x08, 0x09, 0x00, 0x17, 0x17, 0x16, 0x00, -0xE2, 0xE2, 0xE2, 0x00, 0xE3, 0xE3, 0xE3, 0x00, 0xE4, 0xE3, -0xE3, 0x00, 0xEE, 0xEE, 0xEE, 0x00, 0xFD, 0xFD, 0xFC, 0x00, -0x16, 0x17, 0x17, 0x00, 0x07, 0x18, 0x18, 0x00, 0xD7, 0xB7, -0xB6, 0x00, 0xF8, 0xF8, 0xF8, 0x00, 0x07, 0x06, 0x07, 0x00, -0x10, 0x10, 0x10, 0x00, 0xF6, 0xF6, 0xF6, 0x00, 0x00, 0xFF, -0x00, 0x00, 0x30, 0x30, 0x2F, 0x00, 0x05, 0x05, 0x05, 0x00, -0xFE, 0x01, 0x01, 0x00, 0xF8, 0xF8, 0xF8, 0x2D, 0x04, 0xF7, -0xF8, 0xF7, 0x1D, 0xF8, 0xF7, 0xF8, 0x01, 0x0D, 0x0D, 0x0C, -0x00, 0xFE, 0xFE, 0xFE, 0x00, 0xDF, 0xDF, 0xE0, 0x00, 0xD6, -0xD7, 0xD7, 0x00, 0xD9, 0xD9, 0xD9, 0x00, 0xD4, 0xD3, 0xD2, -0x00, 0xF4, 0xF4, 0xF4, 0x00, 0xF6, 0xF6, 0xF6, 0x00, 0x1B, -0x1B, 0x1C, 0x00, 0x06, 0x07, 0x06, 0x00, 0xE8, 0xE7, 0xE8, -0x00, 0xFB, 0xFB, 0xFA, 0x00, 0x01, 0x01, 0x01, 0x00, 0x27, -0x27, 0x28, 0x00, 0xF0, 0xF2, 0xF1, 0x00, 0x05, 0x05, 0x05, -0x00, 0x0F, 0x0F, 0x0E, 0x00, 0x21, 0x21, 0x21, 0x00, 0xFE, -0xFE, 0xFE, 0x00, 0xFA, 0xFA, 0xFB, 0x24, 0x04, 0xF9, 0xF8, -0xF9, 0x0B, 0xF9, 0xFA, 0xF9, 0x00, 0x0B, 0xFF, 0x0B, 0x00, -0xF2, 0xF2, 0xF3, 0x00, 0xDE, 0xDF, 0xDE, 0x00, 0xDA, 0xDA, -0xDA, 0x00, 0xEA, 0xEA, 0xEA, 0xF0, 0x0C, 0x0C, 0x0D, 0x04, -0xFB, 0xFB, 0xFD, 0x0C, 0x03, 0x03, 0x05, 0xF2, 0xEE, 0xEE, -0xEE, 0xCA, 0x00, 0x01, 0x00, 0xFA, 0x02, 0x03, 0x03, 0x2E, -0x08, 0x03, 0x0A, 0x1A, 0x09, 0x09, 0x08, 0xFE, 0xF0, 0xF1, -0xF1, 0xEC, 0xF7, 0xF7, 0xF7, 0x17, 0x06, 0x05, 0x06, 0x01, -0x15, 0x14, 0x14, 0x00, 0x11, 0x11, 0x11, 0x00, 0x07, 0x06, -0x06, 0x00, 0x03, 0x03, 0x03, 0x0F, 0x04, 0xF9, 0xF9, 0xF9, -0xFE, 0xF9, 0xF8, 0xF9, 0x00, 0xF7, 0xF7, 0xF7, 0x00, 0xF7, -0xF7, 0xF7, 0x00, 0xE0, 0xE0, 0xE1, 0x00, 0xE7, 0xE7, 0xE6, -0xD7, 0xF8, 0xF9, 0xF9, 0x3B, 0x03, 0x04, 0x05, 0xFD, 0xFF, -0x00, 0xFF, 0x1A, 0x0E, 0x10, 0x0E, 0xE4, 0xEB, 0xE9, 0xEB, -0xF4, 0x02, 0x02, 0x01, 0x00, 0x07, 0x0A, 0x07, 0x03, 0xF7, -0xF6, 0xF6, 0x19, 0xF6, 0xF8, 0xF7, 0xFD, 0xFF, 0x01, 0x00, -0xEB, 0xFB, 0xFA, 0xFA, 0x8E, 0xE2, 0xE2, 0xE1, 0x6D, 0xDD, -0xDD, 0x1A, 0x00, 0x20, 0x20, 0x20, 0x00, 0x11, 0x10, 0x10, -0x00, 0x00, 0x01, 0x01, 0xFB, 0x04, 0xFE, 0xFE, 0xFE, 0xE7, -0xF0, 0xF1, 0xF0, 0x00, 0xFD, 0xFE, 0xFD, 0x00, 0xED, 0xED, -0xEE, 0x00, 0xE0, 0xE0, 0xDF, 0xFF, 0xF2, 0xF2, 0xF3, 0x78, -0x27, 0x26, 0x24, 0xEF, 0x0C, 0x0B, 0x0B, 0x00, 0xF1, 0xF1, -0xF1, 0xF2, 0x16, 0x16, 0x16, 0x00, 0xFA, 0xF9, 0xF9, 0x00, -0x02, 0x02, 0x03, 0x00, 0x0E, 0x0F, 0x0E, 0xFD, 0xE3, 0xE2, -0xE2, 0xE4, 0x01, 0x01, 0x02, 0x00, 0x03, 0x04, 0x03, 0x00, -0xD2, 0xD2, 0xD2, 0x7D, 0xF0, 0xF0, 0xF0, 0x57, 0xE4, 0xE4, -0xE4, 0x16, 0xE3, 0xE4, 0xE3, 0x00, 0xF9, 0xF9, 0xF8, 0x00, -0xFF, 0x00, 0xFF, 0xE2, 0x04, 0x09, 0x0A, 0x09, 0xCE, 0xDF, -0xDF, 0xE0, 0xFB, 0x07, 0x07, 0x06, 0x05, 0xEA, 0xEA, 0xEB, -0x00, 0xE9, 0xE9, 0xE9, 0xC3, 0x3C, 0x3A, 0x39, 0xB6, 0x0D, -0x0D, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x1A, 0x1A, -0x00, 0x0B, 0x0B, 0x0B, 0x00, 0xF9, 0xF9, 0xF9, 0xFF, 0x01, -0x01, 0x01, 0x00, 0x11, 0x11, 0x11, 0x01, 0x08, 0x07, 0x07, -0x00, 0x02, 0x02, 0x02, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x1F, -0x1E, 0x1E, 0xF4, 0xC8, 0xC9, 0xCA, 0x87, 0xE8, 0xE8, 0xE7, -0x8E, 0xDA, 0xD9, 0xDA, 0x01, 0xEC, 0xEB, 0xEC, 0x00, 0x0F, -0x0F, 0x0E, 0xC4, 0x01, 0x54, 0x54, 0x54, 0x02, 0x0B, 0x0C, -0x0D, 0xA0, 0x02, 0x02, 0x03, 0x5D, 0xF5, 0xF5, 0xF5, 0xFB, -0x10, 0x10, 0x0E, 0x8A, 0x11, 0x10, 0x10, 0xF6, 0xFE, 0xFE, -0xFE, 0x12, 0xFE, 0xFE, 0xFE, 0x0B, 0x00, 0x00, 0x00, 0x03, -0x02, 0x02, 0x02, 0xFE, 0x02, 0x02, 0x02, 0xFF, 0x01, 0x01, -0x01, 0x00, 0xFE, 0xFE, 0xFE, 0x02, 0xFE, 0xFE, 0xFE, 0x02, -0x00, 0x00, 0x00, 0xFF, 0x02, 0x02, 0x02, 0xF8, 0x02, 0x02, -0x02, 0xEF, 0xFD, 0xFD, 0xFD, 0xED, 0xC4, 0xC5, 0xC5, 0x72, -0x0E, 0x0E, 0x0F, 0x1F, 0x04, 0x04, 0x05, 0xE3, 0x37, 0x36, -0x34, 0x2E, 0x01, 0x2B, 0x2B, 0x2B, 0x07, 0x05, 0x05, 0x05, -0x29, 0x29, 0x2A, 0x2B, 0x73, 0x0D, 0x0D, 0x0D, 0xFC, 0xED, -0xEC, 0xEC, 0xF1, 0xCA, 0xCA, 0xC9, 0xEB, 0xFB, 0xFB, 0xFB, -0x05, 0xFB, 0xFB, 0xFB, 0xFA, 0xFC, 0xFC, 0xFC, 0xF7, 0xFD, -0xFD, 0xFD, 0xF8, 0xFF, 0xFF, 0xFF, 0xFD, 0x00, 0x00, 0x00, -0x00, 0x01, 0x01, 0x01, 0x02, 0x03, 0x03, 0x03, 0x07, 0x06, -0x06, 0x06, 0x0A, 0x05, 0x05, 0x05, 0x09, 0x04, 0x04, 0x04, -0xFD, 0x10, 0x10, 0x11, 0x09, 0x20, 0x20, 0x20, 0x0E, 0x00, -0x01, 0x01, 0x11, 0xF8, 0xF8, 0xF8, 0xA5, 0x02, 0x01, 0x00, -0xB7, 0x04, 0x57, 0x57, 0x57, 0xFA, 0xF0, 0xF1, 0xF2, 0xEA, -0x22, 0x22, 0x22, 0x8A, 0x07, 0x07, 0x07, 0x03, 0xD7, 0xD8, -0xD8, 0x01, 0xDC, 0xDD, 0xDE, 0xF5, 0xD3, 0xD2, 0xD0, 0xEC, -0xFE, 0xFE, 0xFE, 0xFB, 0x01, 0x02, 0x02, 0xF9, 0x02, 0x02, -0x02, 0xFC, 0xFD, 0xFC, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x02, 0x02, 0x02, 0x01, 0xFF, 0x00, 0x00, 0x03, 0xFF, 0xFE, -0xFE, 0x06, 0x00, 0x00, 0x00, 0x06, 0x0A, 0x0B, 0x0B, 0x0C, -0x0C, 0x0E, 0x0F, 0x15, 0x14, 0x15, 0x15, 0xFE, 0x2E, 0x2E, -0x2E, 0xFD, 0x11, 0x11, 0x11, 0xF7, 0xF9, 0xF9, 0xF8, 0xFD, -0x01, 0xFF, 0xFF, 0xFF, 0x00, 0xE6, 0xE6, 0xE6, 0x02, 0x00, -0x00, 0x01, 0x00, 0x08, 0x09, 0x08, 0x01, 0xED, 0xED, 0xED, -0x00, 0xE0, 0xE0, 0xE0, 0x00, 0xED, 0xED, 0xED, 0xFD, 0xFA, -0xF9, 0xFA, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x03, 0x03, 0x03, -0x00, 0xF9, 0xF8, 0xF8, 0x00, 0xFC, 0xFD, 0xFC, 0x00, 0x09, -0x09, 0x09, 0x00, 0xFD, 0xFD, 0xFD, 0x00, 0xFF, 0xFF, 0xFF, -0x00, 0x01, 0x01, 0x01, 0x00, 0x05, 0x05, 0x05, 0x02, 0x11, -0x11, 0x12, 0x01, 0x21, 0x20, 0x20, 0x00, 0x12, 0x12, 0x12, -0x00, 0x04, 0x04, 0x03, 0xFF, 0x12, 0x12, 0x12, 0xFE, 0x01, -0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xF8, 0xB8, -0x51, 0x77, 0x52, 0xB9, 0x73, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Pause3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x04, 0xE9, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0x84, 0x95, 0x5B, 0x6C, 0x14, 0x55, 0x1C, -0xC6, 0x7F, 0x73, 0xEB, 0x5E, 0x60, 0x7B, 0x59, 0xD1, 0x96, -0x76, 0xEB, 0x52, 0x6D, 0x4B, 0x01, 0x2F, 0xD0, 0x1A, 0x90, -0x20, 0x88, 0x88, 0x85, 0x80, 0x12, 0x34, 0x51, 0xAB, 0x68, -0x4C, 0xBC, 0x80, 0x1A, 0x4B, 0xA2, 0x89, 0xF1, 0x85, 0x48, -0xF4, 0x45, 0x13, 0x43, 0x34, 0x0A, 0xC1, 0x40, 0x20, 0x10, -0x13, 0xC1, 0x5B, 0x22, 0x89, 0x52, 0x6B, 0x78, 0x40, 0x11, -0x6F, 0x11, 0x1A, 0xA9, 0x88, 0x4A, 0xD1, 0x81, 0xD2, 0xCB, -0xB6, 0xDD, 0x69, 0xBB, 0xDB, 0xED, 0x4C, 0x77, 0x66, 0xE7, -0xEF, 0xC3, 0x62, 0x61, 0x63, 0xA3, 0x27, 0x99, 0x87, 0x73, -0xF9, 0x7E, 0xF3, 0x9D, 0xEF, 0xE4, 0xFC, 0x8F, 0x22, 0x22, -0x4C, 0xD5, 0x4C, 0xD3, 0x54, 0x93, 0xA3, 0xE9, 0xF2, 0x47, -0x36, 0xB5, 0xC6, 0x7F, 0xEB, 0x3A, 0x3F, 0x5B, 0x8F, 0x94, -0x5E, 0xA3, 0xA0, 0xAA, 0xAE, 0x9D, 0x1A, 0x99, 0x73, 0x7D, -0xFC, 0xEC, 0x7B, 0x3B, 0xDF, 0x36, 0xAF, 0x2A, 0x0E, 0x77, -0xCF, 0x9A, 0x35, 0xCB, 0x9D, 0x4A, 0xAF, 0x4C, 0x05, 0x3E, -0x71, 0xB2, 0x23, 0xBA, 0xEC, 0xE1, 0x4D, 0x2D, 0x57, 0x37, -0xAD, 0xBA, 0xB7, 0x71, 0xF9, 0xDD, 0x75, 0x0D, 0x73, 0x6F, -0x2C, 0x2F, 0x89, 0x84, 0x03, 0x9A, 0x02, 0x63, 0x99, 0xAC, -0xD7, 0xD5, 0xF5, 0xBB, 0xD5, 0xF1, 0xED, 0x11, 0xB3, 0xF7, -0xC7, 0xC3, 0xED, 0xF7, 0x2F, 0x9A, 0xB3, 0x6F, 0xD7, 0x8E, -0xB7, 0xFF, 0xFA, 0x3F, 0xB0, 0x56, 0xBB, 0xF0, 0xF6, 0x3B, -0xFC, 0xC6, 0xF5, 0xAF, 0x2E, 0xDD, 0xF0, 0x7C, 0xE3, 0xEC, -0x59, 0x14, 0x05, 0x14, 0x94, 0xCB, 0xAB, 0x99, 0xEC, 0x88, -0x0F, 0x66, 0x02, 0xAF, 0xED, 0xC0, 0x3E, 0xD3, 0xFF, 0xEE, -0xE0, 0xEB, 0x7F, 0x7E, 0xFB, 0xC5, 0x01, 0x60, 0x7C, 0x2A, -0xB0, 0xB6, 0x60, 0xC5, 0xDA, 0x35, 0xE9, 0x25, 0x9B, 0xB6, -0x2D, 0x5A, 0xBF, 0xAE, 0x2E, 0xE8, 0x81, 0xE2, 0x81, 0xAA, -0x41, 0x4E, 0x01, 0xAD, 0x08, 0x34, 0xC0, 0xCD, 0x81, 0x9A, -0xBD, 0x34, 0x0E, 0xB8, 0x3A, 0xFC, 0xFC, 0x75, 0x87, 0xA5, -0x1E, 0x7D, 0xEB, 0xB5, 0x13, 0x87, 0xF6, 0xEF, 0x04, 0x32, -0xF9, 0x3F, 0x8B, 0x20, 0x22, 0xD4, 0x34, 0x2D, 0x59, 0x5A, -0xF9, 0xE2, 0xC1, 0x33, 0xAB, 0xBF, 0x14, 0x7F, 0xD5, 0x21, -0x91, 0xBD, 0x3F, 0x8B, 0xB8, 0x22, 0xE2, 0x8B, 0xC8, 0x89, -0x11, 0x91, 0x87, 0xDA, 0x44, 0xEE, 0x39, 0x2C, 0xF2, 0xEA, -0x71, 0x91, 0x71, 0x11, 0xC9, 0x89, 0xC8, 0x45, 0x5F, 0xE4, -0x89, 0x76, 0x91, 0x35, 0xED, 0xE2, 0xD7, 0xBE, 0xFE, 0xBD, -0x15, 0x5F, 0xB2, 0xFA, 0x19, 0x11, 0x51, 0x44, 0x04, 0xF5, -0x52, 0xA6, 0x91, 0xD1, 0xFA, 0x95, 0x5B, 0x67, 0x34, 0x3E, -0xD8, 0x30, 0xD8, 0x83, 0x32, 0xD0, 0x6B, 0xB3, 0xB0, 0x1A, -0xF4, 0xFC, 0xEE, 0x69, 0x2C, 0x81, 0xDC, 0xB8, 0x4B, 0x62, -0x00, 0xE6, 0x46, 0x21, 0x04, 0xA8, 0x40, 0x95, 0x02, 0x11, -0xCF, 0x26, 0xD1, 0x8B, 0x52, 0x52, 0xBD, 0xA8, 0xCC, 0x9A, -0x7B, 0xDF, 0x4B, 0x1B, 0x5B, 0x37, 0xCF, 0xE1, 0xD2, 0xBC, -0xF2, 0xCE, 0x07, 0x9F, 0xAD, 0x53, 0x9A, 0x5A, 0x16, 0x27, -0xCE, 0x27, 0xE8, 0xB9, 0xD8, 0x43, 0x5F, 0x22, 0x81, 0x93, -0x2D, 0x3C, 0x8C, 0xE1, 0xA4, 0xC5, 0x40, 0x62, 0x88, 0x71, -0xBB, 0x70, 0x62, 0x68, 0x78, 0x84, 0xBE, 0xDE, 0x7E, 0xFA, -0xBB, 0x13, 0x84, 0xEA, 0x9B, 0x63, 0x07, 0x7E, 0xFC, 0xEB, -0x29, 0xD3, 0x34, 0x43, 0xFA, 0xC9, 0x8E, 0x53, 0xD1, 0xFD, -0x27, 0xFB, 0xEF, 0xA7, 0xC9, 0x0F, 0x91, 0x3C, 0x07, 0xBA, -0x0E, 0x78, 0x4C, 0x64, 0x63, 0xE4, 0x3D, 0x83, 0x00, 0x43, -0xC9, 0x24, 0x89, 0x21, 0xC1, 0xB6, 0x0D, 0xA0, 0x68, 0x12, -0x3C, 0x62, 0x59, 0xF4, 0x76, 0x3B, 0x40, 0x0E, 0x0C, 0x5D, -0x23, 0xB6, 0xB8, 0x79, 0xDB, 0xF6, 0x5D, 0x7B, 0xF5, 0x71, -0x8C, 0x18, 0x55, 0x37, 0x34, 0x70, 0xF6, 0x94, 0x82, 0xE3, -0x42, 0x51, 0x08, 0x14, 0x05, 0xD7, 0xCD, 0x4E, 0x82, 0x3D, -0x20, 0x3D, 0x98, 0xC4, 0x1E, 0xF2, 0xB0, 0x9D, 0x28, 0x50, -0x32, 0x09, 0xCE, 0x24, 0x2D, 0x18, 0x18, 0x06, 0x71, 0x21, -0xE7, 0x42, 0x64, 0x66, 0x7C, 0xFB, 0x8E, 0x17, 0x6F, 0xD4, -0x97, 0x2E, 0x6F, 0x8E, 0x73, 0xDF, 0xD6, 0x0A, 0xFA, 0x3A, -0xF3, 0xC9, 0x68, 0xD3, 0x40, 0x35, 0x90, 0xAC, 0x0D, 0x84, -0x21, 0xEF, 0x05, 0xCF, 0x1A, 0x84, 0xC1, 0x71, 0x3C, 0xA7, -0xBA, 0x20, 0x0A, 0x49, 0x25, 0x60, 0xA8, 0x1B, 0xC8, 0x82, -0x6B, 0x83, 0x5A, 0x36, 0x8D, 0x68, 0xF5, 0x4D, 0x3A, 0x81, -0x48, 0x29, 0x13, 0x99, 0x20, 0x19, 0x0B, 0xF4, 0x30, 0x18, -0x92, 0x77, 0xEA, 0xE7, 0x2E, 0x8B, 0x01, 0xDC, 0x71, 0xF0, -0x6D, 0x44, 0xBC, 0x42, 0xB0, 0x6B, 0xC3, 0x44, 0x06, 0x70, -0x20, 0x6B, 0xC3, 0x44, 0x10, 0x42, 0xC5, 0x51, 0x1D, 0x45, -0x57, 0x18, 0xBD, 0x00, 0xE6, 0x57, 0x10, 0x8C, 0x42, 0xA4, -0x0A, 0x02, 0x25, 0xF9, 0x6D, 0x5D, 0x01, 0x16, 0xD7, 0x06, -0x67, 0xAC, 0x60, 0x1C, 0x20, 0x37, 0x31, 0x06, 0xF6, 0x20, -0x78, 0x19, 0xB0, 0x2D, 0x08, 0x66, 0x00, 0x14, 0x9D, 0x9C, -0x9B, 0x22, 0x54, 0x9C, 0x45, 0x33, 0x02, 0x38, 0x29, 0xC8, -0x09, 0x04, 0xAC, 0xBC, 0xC3, 0x7F, 0xC0, 0x02, 0x92, 0xEE, -0x87, 0xD4, 0x30, 0x64, 0x33, 0x85, 0x8E, 0xC7, 0x7A, 0x20, -0xF9, 0x07, 0xB8, 0x69, 0x70, 0x52, 0x30, 0x23, 0x0C, 0x8E, -0x9D, 0x56, 0x8F, 0x7D, 0xD5, 0x76, 0x81, 0x40, 0x68, 0x80, -0x68, 0x0C, 0x82, 0xC5, 0xF9, 0xCF, 0x08, 0x83, 0xA2, 0x4D, -0x8A, 0xFD, 0x1C, 0xF8, 0xFE, 0x04, 0xB8, 0x4E, 0x41, 0x44, -0xF9, 0xAB, 0xED, 0x83, 0x28, 0xA0, 0x18, 0x10, 0x2A, 0x86, -0xD2, 0x0A, 0x87, 0x54, 0xE2, 0x57, 0x35, 0x8C, 0x7B, 0x91, -0x94, 0xD5, 0x45, 0x75, 0x83, 0x50, 0x14, 0xC9, 0x43, 0x8D, -0xE9, 0x88, 0xA6, 0x15, 0x46, 0xA1, 0x85, 0xA0, 0x28, 0x02, -0xAA, 0x51, 0x08, 0xD6, 0x02, 0x50, 0x34, 0x1D, 0x02, 0xD3, -0xA1, 0xAC, 0x02, 0x02, 0x81, 0xDE, 0xE7, 0x5A, 0x9F, 0xEA, -0x54, 0x1B, 0xE7, 0xD5, 0x0D, 0x3C, 0xBE, 0xB8, 0xEE, 0x53, -0x1A, 0x1A, 0xB3, 0xCC, 0xA8, 0xCA, 0x2F, 0x28, 0x9A, 0x86, -0x88, 0x5A, 0x78, 0x78, 0x7A, 0x18, 0x82, 0x11, 0x7C, 0x55, -0x2F, 0x00, 0xFB, 0x6A, 0x10, 0x02, 0xD3, 0x20, 0x54, 0x02, -0x75, 0x0B, 0xFC, 0x88, 0x93, 0x38, 0xF6, 0xC2, 0xC6, 0xC7, -0x7E, 0x53, 0x01, 0x79, 0xF6, 0xEE, 0x25, 0x9F, 0x84, 0xB3, -0xD6, 0x69, 0xE6, 0xDD, 0x0A, 0xE1, 0x62, 0xD0, 0x43, 0xE4, -0xFC, 0xCB, 0x62, 0xCF, 0x15, 0x3C, 0x35, 0x08, 0x46, 0x04, -0xD7, 0x57, 0x0A, 0xC0, 0x59, 0x5F, 0xCB, 0x3B, 0xAE, 0xAE, -0x83, 0x92, 0xD2, 0xE1, 0x0D, 0x37, 0xCF, 0xDC, 0x53, 0x13, -0xAF, 0x1E, 0x9D, 0xAC, 0x6E, 0x75, 0x2B, 0x37, 0xAC, 0x3F, -0x37, 0xFB, 0x9E, 0xED, 0x32, 0x98, 0xAE, 0xC4, 0xBC, 0xA0, -0x2C, 0xBB, 0xAD, 0x9E, 0x96, 0x3B, 0xE7, 0x21, 0x8A, 0xC1, -0xF1, 0xDF, 0x2D, 0xDE, 0xFF, 0x61, 0x04, 0x7C, 0x95, 0xDA, -0x58, 0x90, 0xD6, 0x95, 0x55, 0x18, 0xE2, 0x71, 0xF6, 0x7C, -0x0F, 0x6F, 0x7E, 0xFC, 0x53, 0xFE, 0x52, 0x5D, 0x5B, 0xE9, -0xC4, 0x7B, 0x8E, 0xBE, 0x69, 0x7E, 0xBE, 0xEB, 0x65, 0xC0, -0xBB, 0xB2, 0x6C, 0x06, 0x6E, 0x79, 0x60, 0xF3, 0xC3, 0x27, -0x63, 0x77, 0xBD, 0x26, 0xB6, 0x56, 0xCE, 0x39, 0x13, 0x6C, -0x05, 0xCA, 0x2A, 0xA1, 0x62, 0x26, 0xE1, 0xB2, 0x62, 0x74, -0x4D, 0x63, 0xDC, 0x76, 0xF0, 0xFA, 0x12, 0x90, 0xEC, 0x07, -0x77, 0x14, 0x2A, 0xCA, 0xA0, 0x3C, 0xE2, 0xD0, 0xBE, 0x63, -0x97, 0x79, 0x64, 0xDF, 0x2B, 0xF1, 0x58, 0x85, 0x35, 0x55, -0xA1, 0x0F, 0xD4, 0xAC, 0x7C, 0xB4, 0xE5, 0x7C, 0xFD, 0xDA, -0x2D, 0x72, 0x4D, 0x7D, 0x0D, 0xA3, 0xBE, 0xA6, 0x85, 0xA6, -0x53, 0x51, 0x1A, 0xA5, 0x38, 0x12, 0x41, 0xD7, 0x74, 0x6C, -0xC7, 0x66, 0x68, 0x78, 0x98, 0x91, 0xF4, 0x18, 0xE8, 0xB6, -0x8F, 0xDD, 0x3B, 0x62, 0x1C, 0xDB, 0xB7, 0xFB, 0xD1, 0xA6, -0xF2, 0x37, 0xF6, 0xEC, 0xDE, 0x99, 0xFC, 0xAF, 0xA7, 0x49, -0x79, 0xFA, 0x85, 0x2D, 0x75, 0x1F, 0x9E, 0x49, 0x6F, 0x4C, -0xD7, 0xAF, 0x68, 0x2E, 0xA9, 0x9D, 0x1F, 0xAF, 0x8C, 0xC5, -0x23, 0xD1, 0x32, 0x14, 0x43, 0x87, 0x54, 0x1A, 0x7A, 0xBB, -0x07, 0x9C, 0x21, 0xF3, 0x97, 0x3E, 0xE7, 0xD8, 0x47, 0xDF, -0xCF, 0x15, 0x73, 0xF7, 0xE9, 0x6F, 0xDA, 0xBE, 0x01, 0xDC, -0xFF, 0x7D, 0xF3, 0x00, 0xCC, 0xEE, 0x9E, 0xD0, 0xB6, 0x77, -0xF7, 0x5F, 0xB7, 0x7D, 0xF7, 0x81, 0x79, 0xC4, 0x6E, 0x5A, -0xA0, 0x45, 0xAB, 0xCA, 0x31, 0x74, 0x23, 0x67, 0xF5, 0x25, -0xB9, 0xD8, 0x79, 0xBA, 0xF5, 0xC9, 0x96, 0xCE, 0xC7, 0xD6, -0xAF, 0xFA, 0xA3, 0x71, 0xFE, 0x0D, 0x96, 0xA2, 0x28, 0xFF, -0xD2, 0xFF, 0x3D, 0x00, 0xEA, 0xE2, 0x4F, 0x77, 0xBB, 0xE4, -0x24, 0x44, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, -0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Play3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x05, 0x53, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0x8C, 0x55, 0x6B, 0x6C, 0x54, 0x45, 0x14, -0xFE, 0x66, 0xEE, 0xBD, 0x7B, 0xF7, 0x3E, 0xB6, 0xED, 0x76, -0xB7, 0x6C, 0x5B, 0xE8, 0xF6, 0x15, 0xA4, 0x48, 0x01, 0x51, -0x14, 0x10, 0x1F, 0x80, 0xBC, 0x54, 0xF8, 0xA1, 0x12, 0xFE, -0x80, 0x89, 0x31, 0x12, 0xF1, 0xD5, 0x84, 0x04, 0xC1, 0x00, -0x46, 0x81, 0x98, 0x40, 0x8C, 0x04, 0xC5, 0x18, 0x13, 0x9E, -0x01, 0x7F, 0x18, 0xB0, 0x50, 0xE4, 0x25, 0x12, 0xC0, 0x02, -0x01, 0xDB, 0x5A, 0x01, 0x49, 0x29, 0x50, 0x5A, 0x5A, 0x68, -0xB7, 0xB5, 0xBB, 0x65, 0xB7, 0xFB, 0xE8, 0x6E, 0x77, 0xEF, -0xCC, 0xF8, 0x63, 0x2B, 0x94, 0x58, 0x88, 0x27, 0x99, 0x73, -0x32, 0x99, 0x73, 0xBE, 0x73, 0xE6, 0xE4, 0x3C, 0x88, 0x10, -0x02, 0x0F, 0xA3, 0xE6, 0xAE, 0x16, 0xAD, 0xB1, 0xBB, 0xA1, -0xE4, 0x72, 0x47, 0xFD, 0x63, 0x3B, 0xAB, 0x77, 0x7A, 0x55, -0xBB, 0xEA, 0x66, 0x16, 0x4B, 0x14, 0x3A, 0x0B, 0x6F, 0x2F, -0x9F, 0xF7, 0x71, 0x8B, 0x6C, 0x69, 0x37, 0xA6, 0x8F, 0x99, -0xE6, 0x1F, 0xCA, 0x96, 0x3C, 0x0C, 0x78, 0xED, 0x81, 0x75, -0x13, 0xBB, 0x69, 0xD3, 0xBB, 0x99, 0x59, 0xDA, 0x94, 0x29, -0x05, 0x93, 0x4A, 0x87, 0x39, 0xF2, 0xEC, 0x9A, 0xA2, 0x83, -0x71, 0x0B, 0x81, 0x98, 0x9F, 0x5D, 0x0B, 0x34, 0x76, 0xD7, -0xDD, 0xBC, 0x58, 0x9F, 0xC1, 0x46, 0xEC, 0x5D, 0x31, 0x73, -0xD5, 0x4F, 0x5E, 0x77, 0x41, 0xFC, 0x91, 0xC0, 0x7B, 0x2F, -0xEC, 0x73, 0x7F, 0x59, 0xBD, 0xEE, 0xFD, 0x45, 0xAF, 0xCC, -0xFE, 0x70, 0x6E, 0xD9, 0x3C, 0x97, 0xAE, 0x64, 0x51, 0x4E, -0x38, 0x18, 0x04, 0x08, 0x48, 0xDA, 0x08, 0x04, 0x54, 0x50, -0x30, 0xD6, 0x2F, 0x2E, 0x75, 0xD7, 0x26, 0x77, 0x9F, 0x3C, -0x70, 0x32, 0x3B, 0x5E, 0xBC, 0x72, 0xD3, 0xA2, 0xAF, 0xAE, -0x66, 0x19, 0x59, 0xFC, 0x3F, 0xC0, 0x07, 0x6A, 0x7E, 0x36, -0xB7, 0xD4, 0xAD, 0xFF, 0x7A, 0xE9, 0x82, 0x05, 0x8B, 0x47, -0x79, 0xC6, 0xDB, 0x2C, 0x22, 0xC0, 0x31, 0xD8, 0x31, 0x79, -0x80, 0x13, 0x00, 0x0A, 0x64, 0xF4, 0xC4, 0x3B, 0xF9, 0xF7, -0x47, 0x76, 0x5E, 0x36, 0x83, 0x25, 0x1F, 0x6C, 0x5F, 0xB2, -0xED, 0xC2, 0x03, 0xC0, 0xB5, 0x37, 0xEB, 0xF4, 0x8A, 0xAA, -0xB7, 0x3F, 0xAD, 0x78, 0xEB, 0x8D, 0x65, 0xC3, 0xDC, 0x5E, -0x35, 0x09, 0x0B, 0x42, 0x00, 0x48, 0x51, 0x50, 0x21, 0x83, -0x29, 0x29, 0x10, 0x7A, 0xDF, 0x01, 0xB9, 0xC7, 0x05, 0x28, -0x28, 0x52, 0xC9, 0x98, 0xD8, 0x73, 0xAC, 0xF2, 0x6A, 0x51, -0x64, 0xEA, 0x9C, 0x8D, 0x8B, 0xBF, 0xE8, 0x90, 0xEF, 0x45, -0xDB, 0x50, 0xF9, 0xD2, 0xAB, 0xF3, 0x27, 0x2C, 0xA1, 0xD9, -0x8A, 0x7A, 0x87, 0xB7, 0x01, 0x20, 0xB0, 0xC2, 0x02, 0x79, -0x77, 0xCB, 0x90, 0x6F, 0x2F, 0x45, 0x93, 0xED, 0x0F, 0x44, -0x9D, 0xFE, 0x7F, 0xC3, 0xBD, 0x0F, 0x3E, 0x70, 0x97, 0x14, -0x4A, 0xE6, 0xCE, 0x9E, 0x52, 0xF6, 0xCB, 0xFE, 0xCB, 0xAB, -0xAE, 0x75, 0x5C, 0x5F, 0x21, 0x03, 0x40, 0x20, 0x12, 0x90, -0x5B, 0x78, 0xED, 0xB2, 0xE9, 0x79, 0xE5, 0xAE, 0x5B, 0x3D, -0x77, 0xD2, 0x66, 0x84, 0x40, 0x04, 0x65, 0x94, 0x24, 0x33, -0x90, 0xAB, 0x17, 0x21, 0x07, 0xF9, 0x38, 0xDB, 0x75, 0x10, -0xED, 0x6A, 0x13, 0x18, 0xB5, 0x06, 0xC0, 0x07, 0xA7, 0x49, -0x40, 0xA1, 0xB2, 0xE4, 0x2C, 0x65, 0xAF, 0xD5, 0x77, 0xD6, -0xEE, 0x23, 0x42, 0x08, 0xBC, 0xB7, 0xAB, 0xE2, 0x59, 0xE7, -0xE4, 0xD6, 0x5F, 0x2D, 0xC8, 0x46, 0x2C, 0x9E, 0x04, 0xA5, -0x14, 0x94, 0x4A, 0x50, 0xFA, 0x34, 0xCC, 0xB4, 0x2F, 0xC4, -0xF8, 0x9C, 0xC9, 0x90, 0x15, 0x09, 0x8A, 0x2A, 0xE3, 0x62, -0xE4, 0x1C, 0x4E, 0xF6, 0x56, 0x22, 0x41, 0xFB, 0x20, 0x84, -0x18, 0x38, 0xFC, 0x9E, 0xD4, 0x6C, 0x14, 0xFB, 0x2B, 0xEB, -0xB7, 0xC8, 0x29, 0x2B, 0x05, 0x77, 0xBE, 0x32, 0x23, 0x8E, -0xB8, 0xDA, 0xDA, 0x16, 0x84, 0xE0, 0x80, 0x24, 0x49, 0xA0, -0x54, 0x82, 0x9E, 0xCA, 0x80, 0x35, 0x2C, 0x1D, 0x9D, 0x10, -0x02, 0x54, 0x48, 0x98, 0xEC, 0x9A, 0x09, 0x3B, 0x31, 0x51, -0xD9, 0xBA, 0x15, 0xFE, 0x94, 0x0F, 0x9C, 0x33, 0x70, 0x21, -0xD2, 0x92, 0x73, 0x18, 0x86, 0x82, 0x11, 0xC5, 0xE6, 0x5C, -0xF9, 0xC8, 0xA5, 0xE3, 0xEA, 0xA9, 0xB6, 0xC3, 0xA3, 0x8B, -0x4C, 0x55, 0xEA, 0xF4, 0x05, 0x40, 0xA9, 0x0C, 0x49, 0x96, -0x21, 0x51, 0x09, 0x0E, 0xC1, 0x61, 0x65, 0xB3, 0x41, 0x9F, -0x15, 0x80, 0x00, 0x26, 0xE5, 0xBE, 0x88, 0x7C, 0xCD, 0x8B, -0x1D, 0x57, 0x36, 0xA1, 0x26, 0xF0, 0x1B, 0x18, 0x4F, 0x81, -0x31, 0x0E, 0xCE, 0x19, 0x6C, 0x2A, 0x45, 0x96, 0x53, 0x2F, -0x95, 0x25, 0x89, 0xDA, 0xED, 0xAA, 0x64, 0xFA, 0xAE, 0x06, -0x49, 0xC8, 0x1F, 0x85, 0x3D, 0x5B, 0x85, 0xA2, 0xC8, 0xA0, -0x84, 0xC2, 0x4E, 0x4C, 0x0C, 0xD5, 0x40, 0x42, 0x08, 0x14, -0x3A, 0x4B, 0xF1, 0xCE, 0xD8, 0xE5, 0xE8, 0xEB, 0x8B, 0xA1, -0xA6, 0xAB, 0x1A, 0x29, 0x9E, 0x04, 0x17, 0x0C, 0x49, 0x0E, -0x64, 0x3A, 0x55, 0x2A, 0x83, 0x70, 0x41, 0x89, 0x10, 0x9D, -0xE7, 0x13, 0xB8, 0x79, 0x3A, 0x02, 0xBB, 0x37, 0x02, 0xDD, -0x2B, 0x43, 0xF3, 0xC8, 0x20, 0x39, 0x3A, 0xD8, 0x48, 0x3E, -0x64, 0x67, 0x32, 0xC6, 0xD1, 0xEE, 0x6B, 0x47, 0xF3, 0xAD, -0x16, 0xF4, 0xDC, 0x0D, 0xA2, 0x3F, 0x92, 0x42, 0x7F, 0x8F, -0x05, 0x11, 0x21, 0x70, 0xCC, 0x32, 0x20, 0x0B, 0xC1, 0xE3, -0x96, 0xC5, 0xC2, 0x19, 0x5E, 0x55, 0x48, 0x3A, 0x88, 0x15, -0x01, 0xA2, 0xAD, 0x16, 0xFA, 0xFC, 0x16, 0xD4, 0xE1, 0x31, -0xA4, 0x9E, 0xB4, 0x06, 0x95, 0x58, 0x9A, 0x2C, 0x8B, 0xE1, -0x44, 0xED, 0x51, 0x6C, 0x3C, 0xF2, 0x19, 0xAE, 0xF9, 0xAE, -0xC0, 0x0A, 0x0B, 0xB0, 0x5E, 0xC0, 0x0A, 0x03, 0x86, 0xA9, -0x02, 0x9C, 0x30, 0xF9, 0xE5, 0xB1, 0x73, 0x53, 0x8D, 0x91, -0xEA, 0x2B, 0x35, 0xC6, 0x31, 0xAB, 0x29, 0xBF, 0x4B, 0x49, -0x31, 0x06, 0xAA, 0x01, 0x44, 0x03, 0x88, 0x0C, 0x0C, 0xCE, -0x04, 0x25, 0x14, 0xB1, 0x44, 0x0C, 0xDB, 0x8E, 0x7F, 0x8B, -0x6D, 0xE7, 0xBE, 0x41, 0x28, 0x1A, 0x04, 0x4F, 0x0D, 0x3C, -0xDA, 0x00, 0xAA, 0x03, 0xAE, 0x32, 0x3B, 0xB8, 0x22, 0xAE, -0x53, 0x45, 0xB6, 0xA1, 0xC7, 0x1F, 0x3F, 0xE9, 0xCC, 0xD5, -0xFB, 0x5D, 0x65, 0x3A, 0xA8, 0x0E, 0x50, 0x13, 0x90, 0x4C, -0x40, 0x32, 0x08, 0xA8, 0x9C, 0x2E, 0x57, 0x49, 0x92, 0xD0, -0x19, 0xF0, 0x61, 0xC3, 0xA1, 0x35, 0xF8, 0xEE, 0xE2, 0x06, -0x84, 0x95, 0x20, 0xA8, 0x31, 0xA0, 0xEB, 0x00, 0x24, 0x03, -0x50, 0x32, 0x08, 0xF2, 0xC6, 0x3A, 0xD0, 0x1B, 0x49, 0x1C, -0xA5, 0x00, 0xB0, 0x72, 0xCE, 0xBA, 0xCB, 0x56, 0x98, 0x56, -0x3F, 0x3E, 0xCD, 0x03, 0xD5, 0x2D, 0x81, 0xE8, 0x00, 0x35, -0x06, 0x80, 0xA5, 0x74, 0x1F, 0xDF, 0x68, 0xBF, 0x86, 0x8A, -0x83, 0x8B, 0x50, 0x79, 0x6B, 0x07, 0xB8, 0xBD, 0x1F, 0xCA, -0x00, 0x20, 0x35, 0x01, 0x62, 0xA4, 0xF5, 0x5D, 0xA3, 0x34, -0xE4, 0x14, 0x99, 0xB7, 0x57, 0xCF, 0xD8, 0x58, 0x25, 0x03, -0x80, 0xCB, 0x74, 0xB3, 0x72, 0x7D, 0xDA, 0xE6, 0x66, 0xCF, -0xA9, 0xA7, 0x8A, 0x9E, 0x71, 0xE6, 0xB6, 0x36, 0x04, 0x00, -0x0D, 0xE8, 0x57, 0x62, 0xA8, 0xF3, 0x9D, 0x41, 0x67, 0xA8, -0x1D, 0x55, 0x2D, 0x7B, 0xD0, 0x16, 0x6F, 0x02, 0x14, 0x01, -0x89, 0x51, 0x70, 0xCE, 0xD3, 0xB3, 0x83, 0x02, 0x0C, 0x80, -0x91, 0x21, 0xA3, 0xFC, 0xF9, 0x3C, 0xCB, 0x43, 0x8A, 0x7F, -0x2C, 0xCF, 0x79, 0xBA, 0xFE, 0xDE, 0xAC, 0x98, 0x35, 0x72, -0xC1, 0xD9, 0xDF, 0x4F, 0x1F, 0xDA, 0x3C, 0x71, 0xAA, 0x77, -0x8D, 0xB0, 0x31, 0xD3, 0x77, 0x27, 0x84, 0x28, 0x0F, 0xA1, -0xAA, 0xE5, 0x07, 0x64, 0x3A, 0x32, 0x21, 0x3B, 0x24, 0x8C, -0x70, 0x17, 0x40, 0x08, 0x81, 0xBE, 0xBE, 0x3E, 0x84, 0xC3, -0x61, 0x24, 0x12, 0x09, 0x50, 0x22, 0xA0, 0x39, 0x14, 0x8C, -0x19, 0x97, 0xCF, 0x75, 0x22, 0xD5, 0x15, 0xD0, 0x71, 0x1B, -0x4B, 0x87, 0x8D, 0x4A, 0x3C, 0x30, 0x36, 0x4F, 0x34, 0x54, -0x29, 0xBB, 0x1B, 0x57, 0x7F, 0xEE, 0x2E, 0xD7, 0x2A, 0x1A, -0x5B, 0xBB, 0xCC, 0xD6, 0xC6, 0x1E, 0xD8, 0x64, 0x1D, 0xC3, -0xF3, 0x87, 0xC3, 0x99, 0x9D, 0x0D, 0xC3, 0x30, 0x20, 0x04, -0x47, 0x6F, 0x38, 0x0C, 0x7F, 0x77, 0x37, 0xFC, 0x81, 0xBF, -0xA1, 0x9A, 0x04, 0x65, 0xA3, 0x3D, 0x4C, 0x8E, 0x8A, 0x33, -0x45, 0xFD, 0x2F, 0x7C, 0xB4, 0x6E, 0xFE, 0xF6, 0x86, 0x21, -0x07, 0xFD, 0x95, 0x8E, 0x1A, 0xF3, 0x62, 0xCF, 0xE1, 0x37, -0x1B, 0xE8, 0xF1, 0xD5, 0x51, 0x09, 0xB9, 0xFD, 0x11, 0x55, -0xD2, 0x55, 0x37, 0xB2, 0x32, 0xB3, 0xE1, 0x70, 0x98, 0x60, -0x8C, 0xA3, 0x37, 0x1C, 0x42, 0x38, 0x7C, 0x17, 0x49, 0x04, -0x85, 0x6E, 0x4B, 0x24, 0xEC, 0xC1, 0xCC, 0xFD, 0x8B, 0x4A, -0xD7, 0xAF, 0x2E, 0x74, 0x8E, 0xB9, 0x9D, 0xA9, 0x39, 0xC5, -0x23, 0x57, 0xD3, 0xAE, 0xF3, 0x6B, 0x8B, 0x7B, 0xA4, 0xBF, -0x96, 0xC6, 0x8C, 0xAE, 0xE7, 0xF2, 0x3C, 0x25, 0x65, 0x59, -0x5A, 0x6E, 0xA6, 0x43, 0x71, 0x49, 0x16, 0x4F, 0xE2, 0x6E, -0xDC, 0x17, 0xED, 0x0E, 0xB5, 0xB5, 0x87, 0xBA, 0x42, 0x7F, -0x7A, 0xAC, 0x09, 0xBB, 0x17, 0x3E, 0xF1, 0xC9, 0x29, 0x4F, -0x86, 0x37, 0xF5, 0xBF, 0x76, 0x1E, 0x00, 0xF8, 0x42, 0xCD, -0x72, 0x47, 0xEF, 0xD5, 0x11, 0x2D, 0xBD, 0x35, 0x25, 0xA7, -0x9A, 0xB6, 0x7A, 0x34, 0xD5, 0xE6, 0xE2, 0x8C, 0x27, 0xB2, -0xD4, 0xE2, 0x8E, 0xD7, 0xC7, 0xAD, 0xF2, 0x11, 0xA6, 0x35, -0x8F, 0x2F, 0x98, 0x1E, 0x1D, 0xCA, 0xF6, 0x9F, 0x01, 0x00, -0xB7, 0x74, 0x73, 0x9F, 0x7C, 0x6F, 0x3C, 0xA6, 0x00, 0x00, -0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 - -}; - -static const unsigned char Toolbar_Refresh3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x01, -0xD8, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xF7, -0xFA, 0x03, 0xE6, 0xE8, 0xF4, 0x0F, 0xD1, 0xD4, 0xEC, 0x1F, -0x10, 0x0E, 0x0F, 0x25, 0x04, 0x04, 0x03, 0x02, 0xEF, 0xF2, -0xF1, 0xDF, 0x2D, 0x29, 0x12, 0xDE, 0x19, 0x17, 0x0C, 0xEF, -0x0B, 0x09, 0x05, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, -0xF2, 0xF8, 0x07, 0xBA, 0xC3, 0xE0, 0x42, 0xC1, 0xC9, 0xE1, -0x62, 0x0F, 0x0A, 0x12, 0x3F, 0x2D, 0x26, 0x22, 0x14, 0x04, -0x05, 0x0F, 0x01, 0x08, 0x07, 0x03, 0x00, 0x03, 0xF3, 0x0A, -0x00, 0xAC, 0xB2, 0xE0, 0xEF, 0xE6, 0xED, 0xE4, 0xC1, 0x22, -0x1F, 0x0F, 0x9E, 0x5D, 0x51, 0x2D, 0xBB, 0x13, 0x11, 0x0A, -0xF8, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF9, 0xFC, 0x04, 0xD8, -0xDB, 0xFD, 0x33, 0x09, 0x08, 0xFB, 0xD2, 0x01, 0xD8, 0xFE, -0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xB9, 0xC1, 0xDD, 0x1E, 0xB9, 0xC1, -0xE1, 0x8E, 0x16, 0x12, 0x19, 0x4D, 0x2B, 0x25, 0x22, 0x06, -0x09, 0x08, 0x06, 0x00, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x02, 0x03, 0x01, 0x00, 0xF7, 0xF8, 0xFA, 0x00, 0xD6, 0xDC, -0xDF, 0xFB, 0xE6, 0xEC, 0xE5, 0xB8, 0x48, 0x3F, 0x20, 0x70, -0x3F, 0x37, 0x1F, 0xE4, 0xA3, 0xAB, 0xD8, 0x78, 0x07, 0x06, -0x18, 0x79, 0x17, 0x15, 0xF9, 0x38, 0x01, 0xD8, 0xFE, 0xFE, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, -0xBB, 0xD7, 0x34, 0xB0, 0xB7, 0xDF, 0xA0, 0x3E, 0x35, 0x39, -0x2A, 0x0F, 0x0D, 0x0C, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, -0x00, 0xF2, 0xF4, 0xF5, 0xFF, 0xCC, 0xD3, 0xD0, 0xD9, 0x0B, -0x09, 0x00, 0xC6, 0x17, 0x13, 0x20, 0x5B, 0x0D, 0x0B, 0x07, -0x07, 0x17, 0x16, 0xF9, 0x34, 0x01, 0xD8, 0xFE, 0xFE, 0x00, -0x00, 0x00, 0x00, 0x00, 0xB1, 0xBA, 0xD6, 0x21, 0xA5, 0xAE, -0xD5, 0xB4, 0x43, 0x38, 0x40, 0x29, 0x07, 0x06, 0x07, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0xFA, 0xFB, 0xFB, 0x00, 0xF0, 0xF2, 0xF0, 0x00, -0xFF, 0xFF, 0x00, 0x00, 0x0A, 0x09, 0x09, 0x00, 0x0D, 0x0B, -0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0xF8, 0xFA, -0xFA, 0x00, 0x09, 0x06, 0x07, 0x01, 0xF1, 0xF4, 0xF3, 0x00, -0x22, 0x1F, 0xFD, 0x34, 0x04, 0x00, 0x00, 0x00, 0x00, 0xF0, -0xF1, 0xF7, 0x07, 0xB0, 0xB4, 0xD2, 0x8F, 0x2F, 0x26, 0x2F, -0x29, 0xFA, 0xFB, 0xFA, 0x01, 0xFA, 0xFB, 0xFA, 0x00, 0x00, -0x00, 0x01, 0x00, 0xFA, 0xFB, 0xFA, 0x00, 0xD0, 0xD3, 0xCE, -0x00, 0xE1, 0xE1, 0xDD, 0x00, 0xFC, 0xFA, 0xFA, 0x00, 0x00, -0x00, 0x00, 0x00, 0x02, 0x03, 0x03, 0x00, 0x10, 0x14, 0x17, -0x00, 0x2B, 0x28, 0x2D, 0x00, 0x1F, 0x1B, 0x1D, 0x00, 0x02, -0x02, 0x02, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0x00, -0x00, 0xF5, 0xF6, 0xF6, 0x00, 0xF9, 0xF9, 0xF9, 0x00, 0x01, -0x01, 0x04, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0xBC, 0xC3, -0xDA, 0x43, 0xFC, 0xFC, 0x08, 0x4A, 0x01, 0x01, 0x02, 0x01, -0xF2, 0xF4, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEF, -0xED, 0x00, 0xCF, 0xCE, 0xC8, 0x00, 0xF6, 0xF5, 0xF3, 0xFF, -0xFF, 0xFD, 0xFD, 0xF4, 0x0A, 0x08, 0x04, 0xEC, 0x00, 0x00, -0x00, 0xFF, 0xF6, 0xF8, 0xFA, 0x15, 0xF0, 0xF1, 0xF0, 0x0C, -0xCB, 0xD6, 0xD0, 0x01, 0xEE, 0xF2, 0xF0, 0x00, 0x2C, 0x25, -0x28, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFE, 0xFE, 0xFD, 0x00, -0xFD, 0xFD, 0xFD, 0x00, 0xF9, 0xFA, 0xF9, 0x00, 0x02, 0x01, -0x06, 0x01, 0x04, 0xF5, 0xF6, 0xFA, 0x03, 0xAC, 0xB3, 0xD0, -0x60, 0x16, 0x14, 0x22, 0x05, 0xF3, 0xF5, 0xF3, 0x00, 0x00, -0x00, 0x00, 0x00, 0xF5, 0xF6, 0xF5, 0x00, 0xD0, 0xCE, 0xC8, -0x00, 0xFB, 0xFC, 0xFB, 0xFC, 0x0D, 0x10, 0x0D, 0xB4, 0x6A, -0x65, 0x43, 0x88, 0x2E, 0x2B, 0x1D, 0xCF, 0xFF, 0xFF, 0xFE, -0xFF, 0xD3, 0xD5, 0xE4, 0x31, 0xA9, 0xAD, 0xC9, 0x7A, 0xF3, -0xF9, 0x03, 0x4D, 0xFA, 0xFA, 0xFA, 0x02, 0xEB, 0xEC, 0xEB, -0x00, 0x15, 0x13, 0x14, 0x00, 0xFB, 0xFC, 0xFC, 0x00, 0xFB, -0xFB, 0xFC, 0x00, 0xFB, 0xFB, 0xFC, 0x00, 0x01, 0x02, 0x01, -0x00, 0x04, 0xE5, 0xE7, 0xF2, 0x0E, 0xEB, 0xEC, 0xF4, 0x41, -0x13, 0x10, 0xFC, 0x00, 0xF2, 0xF4, 0xF3, 0x00, 0x00, 0x00, -0x00, 0x00, 0xDA, 0xDA, 0xD6, 0x00, 0xFB, 0xFB, 0xFA, 0xFF, -0x0F, 0x13, 0x11, 0xB3, 0x7E, 0x75, 0x4A, 0x5C, 0x3A, 0x35, -0x22, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x1A, 0x17, 0x0E, 0xD2, 0xCB, 0xCE, 0xDF, 0xE1, 0xE8, 0xEC, -0x06, 0x00, 0x1D, 0x1A, 0x1C, 0x00, 0x02, 0x03, 0x03, 0x00, -0x00, 0x00, 0x01, 0x00, 0xFD, 0xFD, 0xFD, 0x00, 0xFB, 0xFC, -0xFA, 0x00, 0xF8, 0xF9, 0xF7, 0x00, 0xFD, 0xFD, 0xFE, 0x02, -0x04, 0xC0, 0xC8, 0xDE, 0x1A, 0xFF, 0xFF, 0x00, 0x13, 0xF2, -0xF6, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFA, 0xF9, -0x00, 0xF4, 0xF2, 0xF0, 0x00, 0x00, 0x01, 0x02, 0xF5, 0x68, -0x62, 0x40, 0x8B, 0x3A, 0x35, 0x22, 0xF6, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFB, 0xFD, 0x02, 0x84, -0x8A, 0xB4, 0x77, 0xF9, 0xFC, 0x10, 0x69, 0x49, 0x43, 0x38, -0x02, 0xFF, 0xFE, 0x01, 0x00, 0xF6, 0xF7, 0xFB, 0x00, 0xEF, -0xF0, 0xF0, 0x00, 0xEF, 0xF2, 0xF0, 0x00, 0xE6, 0xEB, 0xE9, -0x00, 0xF5, 0xF6, 0xF5, 0x00, 0x36, 0x32, 0x11, 0x01, 0x04, -0xFC, 0xFC, 0xFB, 0x21, 0xFD, 0xFD, 0xFD, 0x01, 0xF1, 0xF6, -0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xF7, 0xF6, 0x00, -0x03, 0x08, 0x09, 0x00, 0x09, 0x04, 0xFF, 0xED, 0x2D, 0x29, -0x19, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFB, 0xFB, 0xFF, 0x0B, 0xEE, 0xF3, -0x0D, 0x59, 0xF7, 0xF1, 0xE9, 0x05, 0xB7, 0xB5, 0xB4, 0xFD, -0xFA, 0xFB, 0xFC, 0xFB, 0xF8, 0xFC, 0xFC, 0x04, 0xF3, 0xF8, -0xF7, 0x03, 0xF9, 0xFC, 0xFC, 0x01, 0xFE, 0x01, 0x01, 0x00, -0x08, 0x09, 0x0A, 0xD3, 0x1D, 0x1B, 0x0B, 0xDB, 0x04, 0x00, -0xFF, 0xFE, 0xFF, 0xF8, 0xF1, 0xEE, 0x00, 0xFD, 0xFC, 0xFB, -0x00, 0x02, 0x06, 0x07, 0x00, 0x04, 0x06, 0x07, 0x00, 0x07, -0x0F, 0x11, 0x00, 0x02, 0xFA, 0xF4, 0x00, 0x00, 0x00, 0x00, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x0A, 0x09, 0x03, 0xF3, 0x97, 0x8B, 0x44, -0x28, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFB, 0xFD, 0x00, 0xA4, -0xA7, 0xC4, 0x02, 0xF6, 0xF8, 0xFC, 0xFF, 0x35, 0x33, 0x22, -0xFF, 0x26, 0x24, 0x17, 0x00, 0x05, 0x05, 0x04, 0x00, 0x0B, -0x0A, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, -0x02, 0xDF, 0xFF, 0xFC, 0xFB, 0xFF, 0xFE, 0xFB, 0xFA, 0x01, -0x02, 0x06, 0x07, 0x00, 0x04, 0x06, 0x07, 0x00, 0x11, 0x0D, -0x0D, 0x00, 0xF4, 0xF0, 0xFF, 0x13, 0xD4, 0xD8, 0xE8, 0x32, -0x23, 0x1F, 0x13, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xB4, 0xB9, 0xD1, 0x04, 0xA4, 0xA7, -0xC9, 0x10, 0x07, 0x0C, 0x0E, 0xFB, 0xAC, 0xB1, 0xCF, 0xFB, -0xFE, 0xFE, 0xFE, 0xFB, 0x13, 0x16, 0x10, 0xFD, 0x56, 0x51, -0x34, 0xFE, 0x56, 0x4E, 0x31, 0x00, 0x02, 0x3F, 0x38, 0x22, -0xE7, 0x01, 0x03, 0x05, 0xEC, 0x03, 0x09, 0x0B, 0x00, 0x08, -0x0C, 0x0D, 0x00, 0x12, 0x0D, 0x0E, 0x00, 0x10, 0x0B, 0x0D, -0x00, 0x1A, 0x1A, 0x1D, 0x0B, 0xA2, 0xAF, 0xD3, 0x78, 0xCE, -0xD4, 0xE8, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDD, -0xE1, 0xED, 0x03, 0x98, 0x9C, 0xBF, 0x2E, 0x21, 0x28, 0x2C, -0x2B, 0x26, 0x27, 0x2B, 0x21, 0x2B, 0x2E, 0x34, 0x19, 0x24, -0x29, 0x2F, 0x12, 0x00, 0x07, 0x11, 0x0C, 0x9A, 0xA7, 0xCC, -0x06, 0xF2, 0xF4, 0xF9, 0x00, 0x03, 0x77, 0x89, 0x85, 0xFB, -0xBB, 0xC0, 0xD6, 0x32, 0xFB, 0x03, 0x09, 0x2C, 0x10, 0x0E, -0x0F, 0x00, 0x10, 0x0B, 0x0D, 0x00, 0x07, 0x05, 0x06, 0x00, -0x09, 0x08, 0x07, 0x01, 0x0A, 0x07, 0x0B, 0x22, 0xC5, 0xCC, -0xE1, 0x2C, 0x0A, 0x09, 0x04, 0xD4, 0x06, 0x04, 0x03, 0xED, -0xF1, 0xF3, 0xF9, 0x00, 0xC2, 0xC9, 0xDE, 0x1D, 0x97, 0x9C, -0xC0, 0x5F, 0x0F, 0x10, 0x1B, 0x42, 0x15, 0x14, 0x17, 0x12, -0x01, 0x01, 0x01, 0x0B, 0x00, 0x00, 0x00, 0x08, 0x03, 0x02, -0x02, 0x05, 0x01, 0x00, 0x01, 0x04, 0x09, 0x0A, 0x00, 0xFA, -0x51, 0x48, 0x2B, 0xF9, 0x01, 0xD8, 0xFE, 0xFE, 0x00, 0xA9, -0xAE, 0xCA, 0x47, 0x9B, 0xA6, 0xCC, 0xB3, 0x1E, 0x1D, 0x22, -0x05, 0x0A, 0x07, 0x08, 0x00, 0x05, 0x05, 0x04, 0x00, 0x06, -0x04, 0x06, 0x00, 0x05, 0x05, 0x05, 0x00, 0x01, 0x02, 0x02, -0xFF, 0xF1, 0xF4, 0xF3, 0xF0, 0xF3, 0xF7, 0xF1, 0xED, 0xFA, -0xF9, 0xF8, 0xFD, 0x00, 0xFF, 0x04, 0x0E, 0x1A, 0x16, 0x19, -0x00, 0x0D, 0x0A, 0x0B, 0xE9, 0xFC, 0xFD, 0xFC, 0xE0, 0xFB, -0xFB, 0xFB, 0xE0, 0xFB, 0xFC, 0xFB, 0xE3, 0xFC, 0xFC, 0xFC, -0xE7, 0xE8, 0xEE, 0xEB, 0xE8, 0x34, 0x30, 0x16, 0xCB, 0x74, -0x67, 0x3C, 0xF4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x46, 0x42, -0x2C, 0xBF, 0xB0, 0xB5, 0xD1, 0xB3, 0x01, 0x00, 0xFF, 0x51, -0x03, 0x03, 0x03, 0x01, 0x04, 0x03, 0x04, 0x00, 0x04, 0x04, -0x04, 0x00, 0x05, 0x05, 0x05, 0x00, 0x05, 0x04, 0x06, 0x01, -0x0F, 0x0C, 0x0D, 0x11, 0x05, 0x04, 0x1F, 0x11, 0x02, 0x03, -0x02, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFB, 0xFC, 0xFC, 0xFE, -0xFA, 0xFB, 0xFA, 0x06, 0x02, 0xFB, 0x03, 0x00, 0x00, 0x01, -0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFC, 0xFD, 0xFD, 0x00, -0x09, 0x0A, 0xFF, 0xE3, 0x60, 0x56, 0x32, 0xF5, 0x00, 0x00, -0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x11, 0x10, 0x0A, -0xFA, 0x55, 0x50, 0x33, 0x70, 0xE9, 0xE9, 0xE5, 0xD4, 0x01, -0x01, 0x00, 0xFF, 0x03, 0x03, 0x03, 0x00, 0x04, 0x04, 0x04, -0x00, 0x05, 0x03, 0x05, 0x00, 0x08, 0x07, 0x06, 0x00, 0x0D, -0x0C, 0x0E, 0x00, 0x12, 0x12, 0x11, 0x00, 0x15, 0x13, 0x13, -0x00, 0x12, 0x12, 0x11, 0x01, 0x10, 0x0F, 0x0F, 0x03, 0x0A, -0x09, 0x0A, 0x11, 0x05, 0x05, 0x04, 0x1F, 0x05, 0x03, 0x05, -0x1E, 0x03, 0x03, 0x04, 0x1C, 0xE2, 0xE9, 0xE4, 0x04, 0x4F, -0x47, 0x28, 0xD2, 0x14, 0x11, 0x0A, 0xFF, 0x00, 0x00, 0x00, -0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x52, 0x4D, 0x32, 0xE3, 0x61, 0x58, 0x32, 0x5F, 0xE4, 0xE5, -0xE1, 0xD2, 0xFF, 0x00, 0x01, 0xFF, 0x04, 0x03, 0x04, 0x00, -0x04, 0x04, 0x04, 0x00, 0x09, 0x08, 0x09, 0x00, 0x0D, 0x0D, -0x0B, 0x00, 0x10, 0x0F, 0x09, 0x00, 0x13, 0x12, 0x06, 0x00, -0x12, 0x10, 0x07, 0x00, 0x0F, 0x0E, 0x09, 0x00, 0x0C, 0x0B, -0x0B, 0x02, 0x08, 0x07, 0x07, 0x0F, 0xFE, 0xFF, 0xFF, 0x1C, -0xDA, 0xDF, 0xD9, 0xFE, 0x5D, 0x52, 0x2B, 0xAA, 0x50, 0x46, -0x2B, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x53, 0x4E, 0x32, 0xCF, 0x02, 0x03, 0x02, -0x4B, 0xB6, 0xBE, 0xDE, 0x89, 0xF8, 0xF9, 0x15, 0x52, 0x17, -0x14, 0x16, 0x09, 0x07, 0x07, 0x07, 0x00, 0x0A, 0x09, 0x04, -0x00, 0x0D, 0x0D, 0x02, 0x00, 0x0C, 0x0B, 0x01, 0x00, 0xFB, -0xFC, 0x00, 0x00, 0x01, 0x02, 0x04, 0x00, 0xEE, 0xF0, 0xFB, -0x00, 0xDD, 0xE1, 0xDE, 0xFC, 0xF5, 0xF6, 0xE9, 0xBF, 0x5B, -0x52, 0x2B, 0x75, 0x50, 0x49, 0x2D, 0xE4, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -0xD8, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xEF, 0xF1, 0xF7, 0x04, 0xBD, 0xC2, 0xD9, 0x3A, 0xB1, 0xB7, -0xD4, 0x62, 0x01, 0x00, 0x0C, 0x41, 0x11, 0x0F, 0x0F, 0x1D, -0x1F, 0x1F, 0x16, 0x01, 0x09, 0x08, 0x01, 0x00, 0xE8, 0xE8, -0xF4, 0xFF, 0xE6, 0xE9, 0xE9, 0xE6, 0xFA, 0xFA, 0xF3, 0xC4, -0x23, 0x16, 0xF8, 0x9C, 0x69, 0x6A, 0x53, 0xC4, 0x15, 0x15, -0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xD8, -0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xF5, 0xF9, -0x02, 0xE1, 0xE2, 0xED, 0x0D, 0xBF, 0xC3, 0xD7, 0x14, 0x00, -0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, -0xE8, 0x41, 0x3C, 0x27, 0xE8, 0x20, 0x20, 0x16, 0xF3, 0x0C, -0x0B, 0x07, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0xB4, 0x89, -0xF5, 0x1D, 0x8B, 0x7B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Stop3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x04, 0xF2, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0x84, 0x94, 0x5D, 0x6C, 0x5C, 0x47, 0x19, -0x86, 0x9F, 0x6F, 0xCE, 0xD9, 0xB3, 0x67, 0xD7, 0xBB, 0xD9, -0x6C, 0xBC, 0x6B, 0x36, 0x26, 0x69, 0x12, 0x3B, 0x89, 0x13, -0x29, 0xA5, 0x6E, 0xD5, 0x82, 0x5A, 0x1C, 0x85, 0x82, 0xAA, -0x48, 0xA4, 0x95, 0x90, 0x40, 0xA8, 0x02, 0x89, 0x0A, 0x95, -0x04, 0xB8, 0x01, 0xC1, 0x05, 0x70, 0x81, 0xB8, 0x69, 0x91, -0x0A, 0x17, 0x5C, 0x70, 0x47, 0xA3, 0x14, 0xC2, 0x5F, 0x24, -0x24, 0x4A, 0x69, 0x2B, 0x2E, 0x12, 0xD4, 0x16, 0x9A, 0xA6, -0xA2, 0x8D, 0x42, 0x12, 0x7E, 0x92, 0xD4, 0xD9, 0xD8, 0x69, -0x36, 0xF6, 0xAE, 0xBD, 0x6B, 0xEF, 0x8F, 0x7D, 0xCE, 0xEE, -0xD9, 0x33, 0x33, 0x5C, 0xB8, 0x6E, 0x9D, 0x10, 0xD5, 0xAF, -0x34, 0xD2, 0x5C, 0xCC, 0x3C, 0xF3, 0x7E, 0xDF, 0x7C, 0x7A, -0xE5, 0x8B, 0x3B, 0x00, 0x0B, 0xC6, 0x80, 0x00, 0xAE, 0x78, -0xE4, 0x71, 0xA8, 0xF6, 0x43, 0x95, 0x57, 0x89, 0x6D, 0x9E, -0xE3, 0xEF, 0x18, 0xC8, 0x6C, 0xD8, 0x93, 0x4A, 0xA5, 0x0A, -0x08, 0x12, 0x04, 0xE1, 0x7C, 0x10, 0xB4, 0xAF, 0xF4, 0xA2, -0x70, 0xAA, 0x69, 0xE3, 0xE9, 0x8F, 0xB8, 0x49, 0xD3, 0xC4, -0xD0, 0xB7, 0x7D, 0x10, 0x10, 0x07, 0x10, 0x70, 0x59, 0xE1, -0x62, 0xED, 0x7B, 0x4B, 0x59, 0x2C, 0x76, 0xF3, 0xAE, 0x81, -0xE2, 0x93, 0x13, 0xF7, 0x1D, 0x38, 0x34, 0xF2, 0xC0, 0xC4, -0xD8, 0xE0, 0xCE, 0x3D, 0x79, 0x2F, 0x9B, 0x01, 0xA0, 0xD7, -0xE9, 0xB0, 0x30, 0x79, 0x69, 0xB1, 0xFC, 0x8F, 0xD7, 0xDF, -0x79, 0xFD, 0x9F, 0x7F, 0x7F, 0xB9, 0x13, 0x75, 0x9E, 0xB3, -0xD6, 0xCE, 0x18, 0x56, 0xA4, 0xEC, 0x8A, 0x41, 0x59, 0x6A, -0x2D, 0x80, 0x5D, 0x81, 0x57, 0xA7, 0xCB, 0xDE, 0xB1, 0xAF, -0x7F, 0xF9, 0xB1, 0x4F, 0x6D, 0xD9, 0xF7, 0xD4, 0x43, 0x8F, -0x7F, 0x6D, 0xD7, 0xC0, 0xC8, 0x36, 0x57, 0xB0, 0x88, 0x89, -0x41, 0x84, 0x55, 0x59, 0xE5, 0x62, 0x05, 0x96, 0xDE, 0xB9, -0x1A, 0x9F, 0x3E, 0x71, 0x6C, 0xF2, 0xA5, 0x0B, 0xAF, 0xFD, -0xA8, 0xD6, 0x6B, 0xBF, 0x88, 0x22, 0x52, 0xCE, 0xCA, 0x51, -0xB1, 0xD6, 0x02, 0x30, 0x3B, 0x75, 0x35, 0x71, 0xE2, 0xDB, -0x87, 0xBF, 0xF2, 0x99, 0xAD, 0xE3, 0xCF, 0x7C, 0xEC, 0xE0, -0xA3, 0x05, 0x49, 0x02, 0x5A, 0xBF, 0x0F, 0x43, 0xFE, 0x6F, -0x03, 0x4E, 0x02, 0xD3, 0xED, 0x73, 0xE1, 0xE5, 0xE7, 0xEB, -0xCF, 0x9E, 0xFC, 0xDD, 0x0F, 0xAA, 0x71, 0xE7, 0x37, 0xCA, -0x25, 0x12, 0xD6, 0x80, 0x7F, 0x7C, 0xF0, 0x13, 0x9F, 0x7B, -0x74, 0xF8, 0xDE, 0x67, 0xEF, 0xFE, 0xE4, 0xFE, 0x82, 0xE8, -0xAE, 0x60, 0x2D, 0x82, 0xB9, 0xC5, 0xE9, 0x07, 0x5C, 0x01, -0x11, 0xAC, 0x15, 0x50, 0x0A, 0x8B, 0x6B, 0xCF, 0xBF, 0x7A, -0xB2, 0x71, 0xF4, 0xAD, 0x17, 0xBF, 0x51, 0x8B, 0x5A, 0x7F, -0x94, 0xD5, 0x1E, 0x9F, 0x3D, 0xF9, 0xC2, 0xD0, 0x83, 0x6E, -0xF1, 0xE9, 0xBB, 0x47, 0xC7, 0x8A, 0xF6, 0x46, 0x99, 0xA8, -0xDF, 0xA5, 0xE5, 0xBA, 0xC4, 0x8E, 0xB3, 0x06, 0x78, 0xDB, -0x03, 0x40, 0x22, 0x8E, 0xC9, 0xA3, 0x70, 0x13, 0x09, 0xB9, -0x67, 0x6C, 0x5F, 0xE1, 0xB3, 0x37, 0xA7, 0x9E, 0x3E, 0x3E, -0x75, 0xFA, 0xB4, 0x31, 0xD4, 0xDC, 0x5E, 0x18, 0xA8, 0x99, -0x93, 0xA7, 0x9E, 0x98, 0xD8, 0xBA, 0x77, 0xF7, 0xE2, 0xEC, -0x35, 0x74, 0xBF, 0x47, 0xE4, 0x38, 0x24, 0x8F, 0x1C, 0x26, -0x5D, 0x1A, 0xBE, 0xA5, 0xF2, 0xDB, 0x15, 0x57, 0x6E, 0xB0, -0xF0, 0xAB, 0xE3, 0x24, 0x2C, 0x88, 0x38, 0x3C, 0x30, 0xB2, -0x6F, 0xE7, 0xDF, 0xAA, 0x97, 0xBE, 0x7A, 0x2D, 0x68, 0xFC, -0xD4, 0xBD, 0x74, 0xE6, 0x95, 0x8F, 0xDA, 0xD3, 0x67, 0x1F, -0x6B, 0xDD, 0xB5, 0x3B, 0xD1, 0x0C, 0x9A, 0x2B, 0xAD, 0xCB, -0x0E, 0xB0, 0xBB, 0x50, 0xC4, 0xDF, 0x5C, 0xE2, 0xC3, 0x14, -0x86, 0x21, 0xD7, 0x1A, 0x0D, 0xE8, 0x45, 0x68, 0x6D, 0xF0, -0x3D, 0xDF, 0xBD, 0x3F, 0xBB, 0xE5, 0xD0, 0x4C, 0xBF, 0xF9, -0x7B, 0xD7, 0xEF, 0x99, 0x1D, 0xA5, 0xE4, 0xC6, 0xB1, 0xE9, -0xEB, 0x65, 0xC2, 0x38, 0x42, 0x09, 0x24, 0xC2, 0x1C, 0x23, -0x71, 0xCC, 0x7A, 0x8A, 0xE3, 0x98, 0xF9, 0xF9, 0x79, 0x74, -0x10, 0xA2, 0xB5, 0x41, 0x09, 0x14, 0xC5, 0x1F, 0xCB, 0xA8, -0xF4, 0x88, 0xFB, 0xEB, 0xEF, 0x1D, 0xD9, 0xFE, 0xF9, 0xF4, -0xDE, 0xC2, 0xCD, 0x99, 0x0A, 0x31, 0x16, 0x27, 0xE1, 0x90, -0x8C, 0x63, 0xF4, 0xDA, 0x89, 0xF8, 0x10, 0x70, 0xBD, 0x5E, -0xA7, 0xBF, 0xB4, 0x8C, 0x36, 0x1A, 0xAB, 0x0D, 0xA5, 0xEC, -0x60, 0x21, 0xEF, 0x7A, 0xE3, 0x6E, 0xCA, 0x3A, 0x83, 0x95, -0xE5, 0x8E, 0x9A, 0x6E, 0xB7, 0xC9, 0x27, 0x1C, 0xFC, 0xD8, -0x85, 0xA4, 0x8F, 0xB5, 0x66, 0x5D, 0xB0, 0xB5, 0x86, 0x6E, -0xB7, 0x4B, 0xD4, 0x0D, 0xB1, 0x5A, 0x63, 0x62, 0x8D, 0xF6, -0x32, 0x92, 0x52, 0x6A, 0x9B, 0xAB, 0xFA, 0x56, 0x5F, 0xA7, -0xCB, 0x2F, 0x83, 0x36, 0x79, 0x6B, 0x19, 0x71, 0x1D, 0xC6, -0x12, 0x0E, 0x91, 0x5E, 0x1F, 0x1C, 0x6B, 0xC3, 0x5C, 0xBB, -0xCD, 0x62, 0xA7, 0xCD, 0x42, 0x3F, 0x66, 0xCE, 0x68, 0xC6, -0xBD, 0x34, 0xF8, 0xD6, 0xB8, 0x5A, 0xEB, 0x7A, 0xD1, 0xF7, -0x75, 0x1E, 0x71, 0x22, 0x65, 0xA9, 0x18, 0x8D, 0xF4, 0xBA, -0x44, 0x66, 0x7D, 0x70, 0x57, 0x6B, 0x2E, 0x74, 0xDA, 0xCC, -0x06, 0xCB, 0xB4, 0x04, 0x02, 0x11, 0xC6, 0x95, 0x63, 0x8C, -0xB5, 0x65, 0xF5, 0xA5, 0x9F, 0x1D, 0xBD, 0x3E, 0xE8, 0xF9, -0xB5, 0x51, 0xCF, 0x27, 0x67, 0x21, 0x07, 0xA4, 0xE4, 0x8E, -0x63, 0x7B, 0x87, 0x56, 0x58, 0x0C, 0x16, 0x57, 0x20, 0x05, -0x0C, 0xE3, 0xB0, 0xC5, 0xF7, 0xE7, 0x7B, 0x51, 0xFF, 0xDF, -0x2A, 0xF2, 0x9C, 0x6B, 0x91, 0xEE, 0x5F, 0xBE, 0x2F, 0x37, -0x48, 0xD6, 0x40, 0x1A, 0x18, 0x00, 0xD4, 0xFA, 0x5C, 0x14, -0x30, 0x60, 0x21, 0xF3, 0xDE, 0x9D, 0x3D, 0xE9, 0x2C, 0x3E, -0x5C, 0x8E, 0xE2, 0xB8, 0xEC, 0xEE, 0x3C, 0xF0, 0x70, 0xB5, -0xBA, 0xFF, 0xAF, 0x7F, 0x7A, 0xF0, 0x8D, 0x73, 0x13, 0x37, -0x5B, 0x75, 0xAF, 0xD9, 0x0F, 0x49, 0xC6, 0x9A, 0x4E, 0xE5, -0x26, 0xE9, 0x4C, 0x66, 0x25, 0x9D, 0xEE, 0x24, 0x81, 0xA0, -0x56, 0x23, 0x65, 0x0D, 0x03, 0x02, 0x39, 0x27, 0xC1, 0xC4, -0xD0, 0xD6, 0xFE, 0xBB, 0xCD, 0xEA, 0x0B, 0xBA, 0x17, 0xCD, -0xB8, 0x5E, 0x3A, 0x6D, 0x87, 0x0E, 0x3E, 0xFC, 0xDB, 0xFA, -0xDB, 0xFF, 0x79, 0xE2, 0x91, 0xE1, 0x9D, 0xF7, 0xBF, 0xF2, -0xEE, 0x7F, 0x91, 0x66, 0x9B, 0x97, 0xBE, 0xF5, 0x4D, 0xD2, -0x99, 0x2C, 0x62, 0x41, 0x94, 0x42, 0x44, 0x90, 0xD5, 0xF2, -0x8D, 0xC1, 0x0A, 0x04, 0xCD, 0x16, 0x4E, 0xD4, 0x65, 0x03, -0xC2, 0xBD, 0x9B, 0x86, 0xF1, 0x95, 0xF7, 0xAF, 0xD9, 0x6E, -0xEB, 0x38, 0x0A, 0xFB, 0x7E, 0x08, 0x1D, 0xFB, 0xF8, 0xFE, -0x4F, 0xDF, 0xA3, 0x33, 0xCF, 0x55, 0x6A, 0x93, 0x77, 0x5D, -0x9C, 0x9B, 0x16, 0x6D, 0x35, 0x0A, 0xC1, 0xF7, 0x92, 0xE4, -0xF2, 0x1B, 0xF1, 0xBD, 0x24, 0xE2, 0x28, 0xFA, 0x51, 0x44, -0xAB, 0xD9, 0x22, 0x08, 0x03, 0xB4, 0x35, 0x28, 0x51, 0x6C, -0xCF, 0x0D, 0xD9, 0x6D, 0xC5, 0xD1, 0xCA, 0x9B, 0x95, 0xC9, -0x27, 0x1B, 0xC1, 0xE2, 0x29, 0x8B, 0xFD, 0x20, 0xDD, 0x1A, -0x57, 0xCB, 0xEA, 0xD4, 0xE1, 0xEF, 0x1C, 0xDA, 0xDB, 0xD6, -0x3F, 0x0F, 0x3A, 0x33, 0xDB, 0x2F, 0xCE, 0x96, 0x09, 0x1C, -0x28, 0x0E, 0x0D, 0x51, 0x2A, 0x95, 0xC8, 0x64, 0x32, 0x28, -0xA5, 0x08, 0xC3, 0x90, 0xB9, 0xFA, 0x3C, 0x73, 0xB3, 0x55, -0x08, 0xBB, 0xEC, 0xDE, 0xB4, 0x95, 0x6C, 0x66, 0xF3, 0xF5, -0x33, 0x95, 0xC9, 0xEF, 0x56, 0x97, 0xE7, 0xFF, 0x0C, 0x68, -0xD6, 0xC6, 0x26, 0x40, 0x63, 0xB2, 0xAC, 0x96, 0xCE, 0x5F, -0x39, 0x50, 0xFD, 0xC9, 0xD1, 0x67, 0x36, 0x39, 0xD1, 0x78, -0x53, 0x2D, 0x7B, 0xB2, 0x71, 0x80, 0x7C, 0xA9, 0x40, 0x36, -0xB7, 0x01, 0x85, 0x10, 0x04, 0x01, 0x8B, 0x73, 0x75, 0xA2, -0xC5, 0x25, 0x52, 0x4B, 0x12, 0x2D, 0x2C, 0xDB, 0x8B, 0xE7, -0x2A, 0xE5, 0xEF, 0xCF, 0x85, 0xF5, 0xD7, 0x62, 0xE9, 0x1B, -0x8B, 0x45, 0x90, 0x95, 0xD8, 0x5C, 0xD5, 0xE0, 0xAE, 0x51, -0x33, 0xB8, 0x6B, 0xF4, 0xD5, 0x9E, 0xE7, 0x3E, 0xD2, 0xF8, -0xCB, 0x99, 0xC7, 0x9D, 0xB3, 0x97, 0xBE, 0x50, 0xF2, 0x4B, -0x63, 0x1B, 0x72, 0xC3, 0x9B, 0xBD, 0x42, 0x3E, 0x81, 0x12, -0xBC, 0x46, 0xB3, 0xAF, 0xEA, 0x99, 0xD9, 0x99, 0xCE, 0xCC, -0x95, 0xCB, 0xB5, 0xEA, 0xF3, 0xB3, 0xAD, 0xDA, 0x89, 0x4E, -0x2F, 0x68, 0xDD, 0xFE, 0xCB, 0xB7, 0x38, 0x5E, 0xAB, 0x7E, -0x10, 0xCA, 0x8D, 0x53, 0x67, 0x8A, 0x49, 0xA3, 0x76, 0xBC, -0x71, 0xE4, 0xA9, 0x2D, 0xBE, 0xE7, 0x17, 0x45, 0xC4, 0x86, -0xBD, 0x6E, 0xFD, 0xA1, 0x5F, 0xFC, 0xB0, 0x72, 0xEE, 0xF8, -0x1F, 0xA6, 0x3A, 0x6F, 0x9E, 0x9F, 0x5F, 0x08, 0x16, 0x6C, -0xB3, 0xD7, 0x24, 0x34, 0xCB, 0xC4, 0x12, 0xB3, 0xEA, 0xF8, -0x7F, 0x03, 0x00, 0xD2, 0xFB, 0x71, 0x29, 0x72, 0x54, 0xF0, -0x6D, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, -0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Wiimote3_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x03, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0D, 0x0D, 0x06, -0x68, 0x67, 0x6A, 0x57, 0x5F, 0x63, 0x5F, 0x61, 0x05, 0x04, -0x05, 0xE5, 0xD9, 0xD9, 0xD9, 0xEA, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0A, -0x03, 0x69, 0x69, 0x6C, 0x57, 0xCD, 0xCE, 0xD0, 0xD9, 0xD4, -0xE8, 0xC6, 0xFE, 0xCE, 0xDA, 0xC2, 0xFE, 0x77, 0x76, 0x84, -0xFB, 0x9B, 0x9B, 0x9F, 0xA0, 0x2F, 0x2F, 0x30, 0x1A, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, -0x02, 0x00, 0x4C, 0x4C, 0x4F, 0x3F, 0x8B, 0x8A, 0x8E, 0xA7, -0x03, 0x02, 0x0A, 0x6F, 0x1B, 0x1E, 0x10, 0x13, 0xE1, 0xDD, -0xEC, 0x00, 0x81, 0x76, 0x97, 0x00, 0xDA, 0xDA, 0xDE, 0x02, -0xD1, 0xD1, 0xD9, 0x2F, 0x5E, 0x5E, 0x5E, 0x5F, 0x0A, 0x0B, -0x07, 0xCC, 0xD7, 0xD7, 0xD6, 0xE0, 0x01, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x2D, 0x2D, 0x2F, 0x21, 0x70, 0x6F, 0x74, -0x89, 0x30, 0x31, 0x31, 0x53, 0xA2, 0xA1, 0xA9, 0x01, 0x11, -0x12, 0x0F, 0x00, 0xFA, 0xF9, 0xFB, 0x00, 0x0F, 0x0F, 0x0D, -0x00, 0xDD, 0xDD, 0xE0, 0x00, 0xD1, 0xD0, 0xD5, 0x00, 0x02, -0x03, 0x03, 0x00, 0x11, 0x11, 0x0F, 0x00, 0x59, 0x59, 0x51, -0xE9, 0x6B, 0x6B, 0x67, 0x46, 0x03, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x14, 0x14, 0x14, 0x0B, 0x77, 0x76, -0x7C, 0x7A, 0x6F, 0x6F, 0x73, 0xA3, 0xEE, 0xEE, 0xF1, 0x30, -0xA4, 0xA4, 0xAB, 0x01, 0x58, 0x58, 0x4F, 0x00, 0xD8, 0xD8, -0xDC, 0x00, 0xC7, 0xC6, 0xCB, 0x00, 0x20, 0x21, 0x1D, 0x00, -0x6D, 0x6E, 0x64, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x04, 0x04, -0x03, 0x01, 0x43, 0x43, 0x3E, 0x00, 0x9F, 0x9E, 0xA9, 0x0C, -0x0C, 0x0C, 0x11, 0x30, 0x01, 0x04, 0x04, 0x06, 0x05, 0x30, -0x2F, 0x37, 0x5B, 0xCD, 0xCE, 0xC4, 0xA0, 0xFF, 0xFF, 0xFF, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, -0x57, 0x59, 0x40, 0x62, 0x61, 0x66, 0x9B, 0x13, 0x13, 0x14, -0x23, 0xB9, 0xB9, 0xBE, 0x00, 0xEB, 0xEB, 0xED, 0x00, 0x1C, -0x1C, 0x19, 0x00, 0xBD, 0xBD, 0xC3, 0x00, 0x1A, 0x1A, 0x18, -0x00, 0x49, 0x49, 0x42, 0x00, 0x1F, 0x20, 0x1C, 0x00, 0x87, -0x86, 0x92, 0x00, 0x15, 0x15, 0x14, 0x00, 0x1D, 0x1D, 0x1A, -0x00, 0xB1, 0xB1, 0xB9, 0x00, 0x06, 0x05, 0x06, 0x00, 0x04, -0x05, 0x03, 0xFB, 0x03, 0xFF, 0xFF, 0xFF, 0xFE, 0x17, 0x16, -0x1E, 0x4F, 0x33, 0x33, 0x3A, 0x59, 0xEC, 0xED, 0xE8, 0xC8, -0x07, 0x07, 0x06, 0xFB, 0x82, 0x81, 0x86, 0x87, 0x56, 0x56, -0x5B, 0x98, 0xF2, 0xF1, 0xF4, 0x13, 0xB4, 0xB4, 0xBA, 0x00, -0x53, 0x54, 0x4B, 0x00, 0xD3, 0xD3, 0xD7, 0x00, 0xBA, 0xBA, -0xC0, 0x00, 0xF8, 0xF7, 0xF9, 0x00, 0xFA, 0xFB, 0xFB, 0x00, -0xD4, 0xD4, 0xD8, 0x00, 0x08, 0x07, 0x07, 0x00, 0x0E, 0x0E, -0x0D, 0x00, 0xF1, 0xF1, 0xF4, 0x00, 0xC3, 0xC2, 0xC8, 0x00, -0x09, 0x09, 0x09, 0x00, 0x07, 0x07, 0x07, 0x00, 0xF7, 0xF6, -0xF3, 0xA7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x22, 0x22, 0x29, 0x33, 0x50, 0x4F, 0x57, 0x8C, 0x3E, -0x3F, 0x36, 0x01, 0x17, 0x16, 0x18, 0x3E, 0xC5, 0xC5, 0xCA, -0x00, 0xD0, 0xD0, 0xD3, 0x00, 0x46, 0x47, 0x40, 0x00, 0xAC, -0xAA, 0xB3, 0x00, 0xED, 0xEE, 0xEF, 0x00, 0x02, 0x02, 0x02, -0x00, 0x00, 0xFF, 0xFF, 0x00, 0xF8, 0xF8, 0xFA, 0x00, 0x0C, -0x0D, 0x0B, 0x00, 0x3B, 0x3B, 0x35, 0x00, 0xEB, 0xEA, 0xEE, -0x00, 0xD3, 0xD3, 0xD8, 0x00, 0x0A, 0x0A, 0x08, 0x00, 0x05, -0x06, 0x05, 0x00, 0xFB, 0xFA, 0xFA, 0xCA, 0xC3, 0xC4, 0xB3, -0x45, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x17, 0x17, 0x12, 0xF0, 0x48, 0x49, 0x41, 0x1A, 0xFE, 0xFE, -0x00, 0x25, 0xBD, 0xBD, 0xC3, 0x00, 0x2F, 0x2F, 0x2A, 0x00, -0x05, 0x05, 0x04, 0x00, 0x9C, 0x9A, 0xA5, 0x00, 0x01, 0x01, -0x01, 0x00, 0xFD, 0xFD, 0xFD, 0x00, 0x03, 0x02, 0x03, 0x00, -0x05, 0x07, 0x05, 0x00, 0x02, 0x02, 0x03, 0x00, 0x3B, 0x3B, -0x35, 0x00, 0xEE, 0xED, 0xF0, 0x00, 0xD7, 0xD7, 0xDC, 0x00, -0x0E, 0x0F, 0x0D, 0x00, 0x07, 0x06, 0x06, 0x00, 0xFB, 0xFB, -0xF9, 0xD1, 0xCA, 0xCC, 0xBD, 0x4C, 0xF9, 0xFA, 0xF8, 0xF3, -0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x3A, 0x24, 0x88, -0x87, 0x8D, 0xBD, 0xDB, 0xDB, 0xDF, 0x1D, 0xB9, 0xB9, 0xBE, -0x00, 0x4F, 0x4F, 0x48, 0x00, 0xC9, 0xC9, 0xCD, 0x00, 0xD0, -0xD0, 0xD5, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x02, 0x01, -0x00, 0xFE, 0xFE, 0xFF, 0x00, 0xF8, 0xF8, 0xF9, 0x00, 0xFA, -0xFA, 0xFA, 0x00, 0x54, 0x55, 0x4D, 0x00, 0xE7, 0xE6, 0xEA, -0x00, 0xD9, 0xD9, 0xDD, 0x00, 0x0B, 0x0B, 0x0A, 0x00, 0x07, -0x08, 0x07, 0x00, 0xFB, 0xFB, 0xF9, 0xD7, 0xBF, 0xC0, 0xB2, -0x43, 0xF1, 0xF1, 0xEE, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x01, -0x1F, 0x1F, 0x20, 0x13, 0x93, 0x92, 0x99, 0xC7, 0x18, 0x18, -0x18, 0x24, 0xD0, 0xD1, 0xD4, 0x00, 0x0E, 0x0D, 0x0C, 0x00, -0xA7, 0xA7, 0xAF, 0x00, 0xF0, 0xF0, 0xF1, 0x00, 0xFC, 0xFB, -0xFC, 0x00, 0x03, 0x04, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0x00, -0x15, 0x15, 0x13, 0x00, 0xF8, 0xF7, 0xF9, 0x00, 0x43, 0x44, -0x3D, 0x00, 0xCF, 0xCF, 0xD5, 0x00, 0xEC, 0xEB, 0xED, 0x00, -0x0C, 0x0C, 0x0C, 0x00, 0x08, 0x08, 0x07, 0x00, 0x00, 0x00, -0x00, 0xE6, 0xBA, 0xBC, 0xAD, 0x3B, 0xEA, 0xEA, 0xE6, 0xE1, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7E, -0x7D, 0x83, 0x9C, 0xD2, 0xD2, 0xD7, 0x24, 0xFF, 0xFF, 0x00, -0x00, 0xFA, 0xF9, 0xF9, 0x00, 0x98, 0xA4, 0xAC, 0x00, 0xFA, -0xFB, 0xFB, 0x00, 0x04, 0x03, 0x04, 0x00, 0xFE, 0xFF, 0xFF, -0x01, 0x06, 0x02, 0x02, 0xFF, 0x20, 0x21, 0x1E, 0x00, 0xF8, -0xF8, 0xF9, 0x00, 0x3B, 0x3B, 0x37, 0x00, 0xC1, 0xC0, 0xC6, -0x00, 0xFE, 0xFE, 0xFF, 0x00, 0x12, 0x13, 0x12, 0x00, 0x09, -0x09, 0x08, 0x00, 0x01, 0x01, 0x01, 0xF3, 0xBB, 0xBB, 0xAF, -0x4F, 0xEA, 0xEA, 0xE6, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x34, 0x34, -0x34, 0x3D, 0x12, 0x12, 0x0F, 0x00, 0x9E, 0x9E, 0xA7, 0x00, -0xC3, 0xC3, 0xC8, 0x00, 0xF2, 0xF2, 0xF4, 0x00, 0x07, 0x08, -0x06, 0x00, 0x01, 0x02, 0x01, 0x00, 0xFE, 0xFE, 0xFE, 0xFF, -0x01, 0x02, 0x02, 0x00, 0xFD, 0xFC, 0xFD, 0x00, 0x2F, 0x2E, -0x2A, 0x00, 0xB9, 0xB8, 0xBF, 0x00, 0x09, 0x0A, 0x0A, 0x00, -0x13, 0x12, 0x0E, 0x00, 0x0C, 0x0C, 0x0C, 0x00, 0xFE, 0xFE, -0xFE, 0xFB, 0xC1, 0xC1, 0xB8, 0x57, 0xE1, 0xE2, 0xDC, 0xCD, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x2B, 0x2A, 0x2D, -0x20, 0x36, 0x37, 0x34, 0x34, 0x20, 0x21, 0x1C, 0x00, 0xC1, -0xC0, 0xC7, 0x00, 0x08, 0x08, 0x07, 0x00, 0xFC, 0xFB, 0xFC, -0x00, 0xFB, 0xFB, 0xFC, 0x00, 0x0D, 0x0C, 0x0B, 0x00, 0x2E, -0x2F, 0x2A, 0x00, 0x0C, 0x0C, 0x0C, 0x00, 0xC7, 0xC6, 0xCD, -0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x11, 0x12, 0x11, 0x00, 0x11, -0x11, 0x10, 0x00, 0xFF, 0xFE, 0xFE, 0xFE, 0xCE, 0xCF, 0xC8, -0x6A, 0xD6, 0xD7, 0xCD, 0xB0, 0x8D, 0x8D, 0x8D, 0x99, 0x63, -0x63, 0x63, 0x6B, 0x3A, 0x3A, 0x3A, 0x3A, 0x03, 0x03, 0x03, -0xFC, 0xDB, 0xDB, 0xDB, 0xDD, 0x01, 0x23, 0x23, 0x24, 0x18, -0xB0, 0xAF, 0xB5, 0xD1, 0x22, 0x23, 0x1D, 0x15, 0xCE, 0xCE, -0xD3, 0x00, 0x7C, 0x7B, 0x88, 0x00, 0x05, 0x04, 0x04, 0x00, -0x0B, 0x0C, 0x0A, 0x00, 0x3E, 0x3E, 0x39, 0x00, 0xC9, 0xC8, -0xCF, 0x00, 0xEE, 0xEE, 0xF0, 0x00, 0x0E, 0x0F, 0x0D, 0x00, -0x0E, 0x0E, 0x0E, 0x00, 0x0D, 0x0D, 0x0C, 0x00, 0xFB, 0xFB, -0xFB, 0xFD, 0xCF, 0xCF, 0xC9, 0x72, 0xCA, 0xCA, 0xBF, 0x93, -0x57, 0x58, 0x57, 0x5C, 0x91, 0x91, 0x91, 0xA2, 0xD5, 0xD5, -0xD5, 0x00, 0xED, 0xED, 0xED, 0x00, 0x2B, 0x2B, 0x2B, 0xF8, -0x43, 0x43, 0x43, 0x24, 0x03, 0xEF, 0xEF, 0xEE, 0xF4, 0xEE, -0xEE, 0xEF, 0xD5, 0x33, 0x33, 0x37, 0x56, 0x1D, 0x1D, 0x19, -0x03, 0x2F, 0x30, 0x2B, 0x00, 0x05, 0x05, 0x05, 0x00, 0x14, -0x14, 0x13, 0x00, 0xB7, 0xB6, 0xBE, 0x01, 0xFA, 0xFA, 0xFB, -0x00, 0x0B, 0x0C, 0x0A, 0x00, 0x09, 0x09, 0x09, 0x00, 0x06, -0x06, 0x06, 0x00, 0xF6, 0xF5, 0xF5, 0xF1, 0xC8, 0xC9, 0xC0, -0x5E, 0xD0, 0xD0, 0xC7, 0xA0, 0x00, 0x00, 0xFF, 0x00, 0x54, -0x54, 0x54, 0x60, 0x33, 0x33, 0x33, 0x39, 0xF6, 0xEE, 0xEE, -0x00, 0x01, 0xFB, 0xFB, 0x00, 0x16, 0x1B, 0x1B, 0x04, 0xC0, -0xC0, 0xC0, 0xB7, 0x03, 0x00, 0x00, 0x00, 0x00, 0xD5, 0xD5, -0xD3, 0xDC, 0xFD, 0xFD, 0xFE, 0xE0, 0x2D, 0x2C, 0x30, 0x4B, -0xE5, 0xE4, 0xE7, 0x03, 0xB0, 0xAF, 0xB7, 0x00, 0xD2, 0xD1, -0xD6, 0x00, 0x06, 0x07, 0x06, 0x00, 0x08, 0x07, 0x07, 0x00, -0x06, 0x06, 0x06, 0x00, 0x02, 0x02, 0x01, 0x00, 0xEB, 0xEB, -0xE7, 0xB7, 0xC1, 0xC3, 0xB7, 0x4F, 0xE2, 0xE2, 0xDB, 0xC6, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, -0x20, 0x2B, 0x1F, 0x1F, 0x1F, 0x47, 0xEF, 0xEF, 0xEF, 0x00, -0x17, 0x19, 0x19, 0x00, 0x05, 0x08, 0x08, 0x01, 0xCB, 0xCB, -0xCB, 0xB6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x97, 0x97, 0x93, 0xA4, 0xD9, 0xD8, 0xD8, 0xDD, 0xEB, -0xEA, 0xF9, 0x85, 0x0A, 0x0A, 0x0C, 0x3C, 0x06, 0x06, 0x06, -0x04, 0x02, 0x02, 0x02, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, -0xEF, 0xEC, 0xC3, 0xE0, 0xE2, 0xDA, 0x86, 0xE1, 0xE1, 0xDA, -0xBD, 0xFE, 0xFE, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0xE7, 0xE7, -0xDD, 0x08, 0x08, 0x08, 0xFF, 0xEF, 0x01, 0x01, 0x01, 0x02, -0x07, 0x07, 0x00, 0x01, 0x01, 0x01, 0x00, 0x19, 0x19, 0x19, -0x1D, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xBE, 0xBF, 0xBB, 0xC7, 0x00, 0x00, -0x01, 0x42, 0x0A, 0x0A, 0x0D, 0x16, 0x0D, 0x0C, 0x10, 0x25, -0xFF, 0xFF, 0xFE, 0xFC, 0xF6, 0xF7, 0xF3, 0xDC, 0xF4, 0xF4, -0xF2, 0xED, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x06, -0x0B, 0x0B, 0x0B, 0x00, 0x1A, 0x1A, 0x1A, 0x00, 0x0C, 0x0C, -0x0C, 0x00, 0x07, 0x07, 0x07, 0x00, 0x1D, 0x1D, 0x1D, 0x2F, -0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0x00, 0xF6, 0xF6, 0xF2, 0xEA, 0xF6, 0xF6, 0xF2, 0xEA, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0xC9, 0xC9, 0xC9, 0xF0, -0xF0, 0xF0, 0xF3, 0x0F, 0x0F, 0x0F, 0x0E, 0x0B, 0x0B, 0x0B, -0x00, 0xF9, 0xF9, 0xF9, 0xFE, 0xC8, 0xC8, 0xC8, 0xC9, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x31, -0x31, 0x4D, 0xA0, 0xA0, 0xA0, 0xCF, 0xAC, 0xAC, 0xAC, 0xD0, -0x51, 0x51, 0x51, 0x6F, 0x01, 0x01, 0x01, 0x05, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x46, 0x33, -0xDB, 0xDA, 0xDB, 0xE3, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -#endif - diff --git a/Source/Core/DolphinWX/resources/Vista.h b/Source/Core/DolphinWX/resources/Vista.h deleted file mode 100644 index af66498caf..0000000000 --- a/Source/Core/DolphinWX/resources/Vista.h +++ /dev/null @@ -1,2751 +0,0 @@ -/* - Automatic generated header by: - - wxInclude by Kim De Deyn, use --help for more information. - Version 1.0, compiled at Sep 12 2007 17:26:17 - - Header: myheader - Macros: no - Const: yes -*/ - -#ifndef _WXINCLUDE_MYHEADER_1_H_ -#define _WXINCLUDE_MYHEADER_1_H_ - -static const unsigned char Toolbar_Browse1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x03, 0xE7, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xAD, 0x55, 0x6D, 0x68, 0x5B, 0x55, 0x18, -0x7E, 0xCF, 0x39, 0xF7, 0x2B, 0x1F, 0xB7, 0x89, 0x69, 0x12, -0x93, 0xB2, 0x76, 0x6D, 0xA2, 0xC6, 0xD6, 0xA4, 0x5D, 0xD3, -0xD0, 0x3A, 0x59, 0x41, 0xD0, 0x49, 0xD7, 0x6D, 0xB0, 0xA9, -0x9B, 0x53, 0x51, 0xFC, 0xA1, 0xA2, 0x7F, 0x64, 0x3A, 0x29, -0x22, 0x4C, 0x87, 0xB0, 0xE1, 0x10, 0x3A, 0xFD, 0xE1, 0xC7, -0xE8, 0x0F, 0xB1, 0x6C, 0x0A, 0x9D, 0x1F, 0xC8, 0x56, 0x70, -0x2A, 0x3A, 0x36, 0x3F, 0x26, 0xFE, 0xD0, 0x29, 0xEA, 0x7E, -0xA8, 0xC8, 0x1C, 0x43, 0x9D, 0x73, 0x49, 0x9B, 0x5C, 0xD3, -0xDC, 0xDC, 0x73, 0x7C, 0xCF, 0x8D, 0x83, 0x75, 0x36, 0xEB, -0x1D, 0xEE, 0xC0, 0xC3, 0x79, 0x73, 0x73, 0xDE, 0xE7, 0x79, -0xBF, 0xCE, 0xBD, 0x00, 0x97, 0xB0, 0xFE, 0x7C, 0xA1, 0xE7, -0xBE, 0xD3, 0xE3, 0xCB, 0xD6, 0xFC, 0xF1, 0xC1, 0x43, 0xCC, -0xAB, 0x0F, 0xF1, 0x7A, 0xF0, 0xC8, 0x13, 0xDD, 0xB4, 0x53, -0x58, 0x27, 0x59, 0xAC, 0x23, 0x11, 0x7F, 0xE0, 0xC1, 0x4D, -0x4A, 0xE8, 0x9E, 0x29, 0x2F, 0x7E, 0xD4, 0xAB, 0xC0, 0x35, -0xA6, 0x92, 0xAB, 0x9E, 0xB4, 0x92, 0x46, 0xE6, 0x6A, 0xA0, -0x1A, 0x19, 0xF5, 0xEA, 0xE7, 0x39, 0xD5, 0xCD, 0xFD, 0x2D, -0xF7, 0xD6, 0x2B, 0x73, 0x37, 0xC7, 0xEE, 0x58, 0x09, 0x2C, -0xA8, 0xC7, 0xEF, 0xDF, 0x58, 0xD8, 0xB5, 0xEB, 0x95, 0x43, -0x8B, 0xFA, 0x79, 0xCE, 0x80, 0xF3, 0xFA, 0x4A, 0x23, 0x15, -0x24, 0x6A, 0x3C, 0x88, 0x3F, 0xCA, 0xC9, 0x64, 0x1C, 0xFA, -0xBC, 0xF8, 0x29, 0x5E, 0x0E, 0xFD, 0xF8, 0x5C, 0x9F, 0x9F, -0xCD, 0x9E, 0x5D, 0x11, 0x18, 0x58, 0x0A, 0x50, 0x9F, 0x91, -0x8F, 0x08, 0x11, 0x7F, 0x8F, 0xE0, 0xFE, 0xF5, 0x65, 0x11, -0x88, 0x46, 0x60, 0xD8, 0x0E, 0x11, 0xC3, 0x97, 0x6A, 0x15, -0x60, 0x97, 0x24, 0xBF, 0x00, 0xA7, 0xB6, 0x0A, 0x8D, 0x67, -0x2F, 0x8B, 0x00, 0x6D, 0xA9, 0xDF, 0xE2, 0x0B, 0x6B, 0x84, -0x99, 0x3E, 0x10, 0xB5, 0x19, 0x41, 0xE4, 0xF4, 0x09, 0xB1, -0xBC, 0xF4, 0xFA, 0xF0, 0x70, 0xF9, 0x9B, 0xDF, 0x52, 0x40, -0x9D, 0x5E, 0x35, 0xCE, 0x72, 0x46, 0x87, 0x91, 0xD5, 0xDB, -0xA2, 0xDF, 0x12, 0x1A, 0x19, 0xD3, 0x06, 0xDF, 0x3A, 0xE6, -0x49, 0xE0, 0xCC, 0xDE, 0x6C, 0x48, 0x6D, 0x75, 0x46, 0x58, -0xD4, 0x87, 0x71, 0xDB, 0x00, 0x35, 0xFB, 0x9C, 0xAC, 0x02, -0x06, 0x3F, 0x1C, 0x1C, 0x6A, 0x03, 0x3D, 0x61, 0x0A, 0x25, -0x6C, 0x12, 0xC2, 0x34, 0x00, 0x9B, 0x9B, 0x4E, 0xA9, 0xE2, -0x9C, 0xF3, 0x9F, 0x77, 0x0F, 0x4E, 0xED, 0xE8, 0x8B, 0x28, -0x50, 0xEF, 0x17, 0xCC, 0xCE, 0x2B, 0x61, 0x18, 0x50, 0x23, -0x34, 0x4F, 0x45, 0x25, 0xAD, 0x46, 0x14, 0xA2, 0xB4, 0xB5, -0xE3, 0xCC, 0x05, 0x1A, 0x1E, 0x32, 0x07, 0x69, 0xC8, 0x9D, -0xE3, 0x9C, 0x88, 0x7F, 0x51, 0x27, 0x8E, 0x53, 0xAE, 0xDE, -0xAA, 0xAD, 0x98, 0xDE, 0x3F, 0x4F, 0xE0, 0xD7, 0x6D, 0xBD, -0x99, 0xCA, 0xF7, 0xA7, 0xA7, 0xFD, 0x49, 0xB5, 0xCB, 0xDF, -0xE9, 0xA7, 0x7A, 0xC2, 0x10, 0x5A, 0x44, 0x27, 0x2C, 0xEC, -0x07, 0xA2, 0x33, 0x41, 0x28, 0x27, 0xB2, 0xEC, 0x2E, 0x90, -0x4A, 0xFA, 0x09, 0x41, 0x04, 0xE1, 0x14, 0x77, 0x0A, 0x82, -0x53, 0x01, 0x78, 0x84, 0x97, 0xEB, 0x8F, 0x6B, 0x37, 0x7E, -0x38, 0x7E, 0x7E, 0xD0, 0xAE, 0xC0, 0x77, 0x5B, 0x7B, 0xB5, -0x50, 0xD5, 0x7A, 0x4A, 0x4F, 0xB0, 0xB1, 0x50, 0x3A, 0xAC, -0x50, 0xC6, 0xB1, 0x02, 0x1C, 0x90, 0x18, 0x40, 0xC7, 0xC8, -0x0C, 0x06, 0x44, 0x16, 0x53, 0x0E, 0x35, 0x95, 0x1D, 0x40, -0x83, 0xCB, 0x36, 0x50, 0x37, 0x03, 0xE1, 0x50, 0xE0, 0x16, -0xDF, 0xAD, 0xDD, 0x74, 0xF8, 0xE1, 0x0B, 0x4B, 0x3C, 0xAF, -0x44, 0xA5, 0xC9, 0xBE, 0x82, 0x12, 0xA9, 0xBF, 0xAA, 0x31, -0xF5, 0x3A, 0xCA, 0x19, 0x91, 0x22, 0xC0, 0x30, 0x56, 0x4C, -0x02, 0x34, 0x4C, 0x42, 0x45, 0x32, 0x37, 0x76, 0x8C, 0x1C, -0x64, 0xD4, 0xB8, 0xA3, 0x90, 0x63, 0x91, 0xF7, 0x8B, 0x25, -0xB2, 0x3A, 0xBE, 0xE1, 0xB3, 0xFA, 0x45, 0x05, 0xDC, 0x3E, -0xBC, 0x5D, 0x30, 0x62, 0x4B, 0xF8, 0x36, 0xA7, 0x58, 0xDB, -0xC2, 0x6C, 0x45, 0xC1, 0x56, 0x36, 0x04, 0x90, 0xCF, 0x85, -0xE2, 0x1A, 0x44, 0x2A, 0x61, 0x16, 0xC4, 0x99, 0xA3, 0x3F, -0xD7, 0x2C, 0x65, 0x20, 0xB0, 0xEE, 0xF3, 0xE2, 0x42, 0x43, -0xD2, 0xF4, 0x65, 0x37, 0xFB, 0x46, 0xFF, 0xF2, 0x99, 0x63, -0x7F, 0x4D, 0x06, 0x3B, 0x8D, 0xB4, 0x99, 0x36, 0x1A, 0x3D, -0x68, 0xDC, 0x7B, 0xE1, 0xDE, 0x33, 0x42, 0x65, 0x17, 0x88, -0x53, 0x65, 0xC7, 0xD5, 0xD1, 0x2F, 0xBB, 0x9B, 0xF1, 0x5C, -0xF4, 0x6D, 0x7A, 0xE2, 0x91, 0xA5, 0xEF, 0x72, 0x31, 0xB7, -0xB6, 0x7D, 0x34, 0x21, 0x4B, 0xD5, 0x38, 0x4D, 0x1A, 0x12, -0xEE, 0x04, 0x21, 0xB8, 0x4D, 0xB9, 0x35, 0xA3, 0xB6, 0x86, -0xEE, 0x3A, 0x5A, 0x5A, 0x88, 0xA3, 0xE9, 0xBB, 0xE8, 0xC9, -0xD5, 0x09, 0xC6, 0x42, 0x70, 0x83, 0x99, 0x0D, 0x80, 0x5B, -0x12, 0x2E, 0x41, 0xB0, 0xE0, 0x72, 0x34, 0x89, 0xB4, 0x01, -0x6D, 0x34, 0x80, 0x69, 0x84, 0xF7, 0x37, 0xE3, 0x39, 0xFF, -0xA2, 0x49, 0x31, 0x03, 0xA1, 0x23, 0x7C, 0x07, 0x7F, 0x98, -0xCD, 0x6D, 0xD9, 0x60, 0xB4, 0xFA, 0xA3, 0x06, 0xB8, 0xA4, -0xB4, 0x91, 0x30, 0x77, 0x38, 0x8E, 0xA5, 0xBC, 0x66, 0xB2, -0x6A, 0xAE, 0x98, 0x1C, 0xAA, 0x02, 0xFE, 0x79, 0x68, 0x31, -0x01, 0x49, 0x9E, 0x44, 0xC4, 0x11, 0xD1, 0x42, 0x8F, 0xB1, -0x2E, 0x70, 0xAD, 0x0E, 0xF4, 0xAC, 0x06, 0xC2, 0xC6, 0x06, -0x20, 0x99, 0xE3, 0x08, 0x31, 0x36, 0x71, 0xEA, 0xE0, 0x50, -0x98, 0x76, 0xAD, 0x2A, 0x84, 0x33, 0x66, 0x2A, 0x28, 0x70, -0xA6, 0x50, 0x80, 0x14, 0x9A, 0x65, 0x40, 0x2E, 0xB0, 0x55, -0x84, 0x16, 0xF4, 0x51, 0x7D, 0xCF, 0x8E, 0x8E, 0x89, 0x35, -0x23, 0xBE, 0xF5, 0xE2, 0x78, 0x10, 0x5B, 0x49, 0x08, 0x47, -0xAA, 0x47, 0x77, 0x9F, 0xD8, 0xF3, 0xE2, 0x7B, 0xBF, 0x7F, -0x24, 0xCF, 0xDC, 0xD6, 0x63, 0xE6, 0xB7, 0xAF, 0x8F, 0x6E, -0xEA, 0xCC, 0x5D, 0x11, 0x22, 0x54, 0xFD, 0x49, 0xDF, 0xF8, -0xC5, 0x55, 0xCD, 0x44, 0x16, 0x5C, 0xD5, 0xAF, 0x72, 0xBF, -0xCC, 0x7D, 0xDA, 0x23, 0xEC, 0x37, 0x87, 0xB8, 0xC4, 0x63, -0x6B, 0x93, 0x2F, 0xE3, 0xE3, 0x34, 0x22, 0x82, 0xC0, 0xAE, -0x43, 0x57, 0xAC, 0x45, 0x19, 0x7C, 0xE6, 0xEE, 0x2B, 0xC7, -0x8F, 0xEC, 0xEC, 0xFE, 0x64, 0xEF, 0xE6, 0x8C, 0xEE, 0x99, -0xBC, 0x78, 0x60, 0xB0, 0xBD, 0x7A, 0x34, 0xC3, 0xAD, 0x77, -0xB2, 0xBC, 0x36, 0x75, 0x3D, 0xDF, 0x7A, 0xFB, 0x92, 0xE7, -0xF1, 0x71, 0x0C, 0xFE, 0x3B, 0x14, 0x44, 0x65, 0x84, 0x76, -0xC4, 0x34, 0xCF, 0x1F, 0x2E, 0x77, 0x59, 0xD3, 0xF9, 0x3B, -0x8B, 0xFB, 0x52, 0xA2, 0x32, 0xB9, 0x8C, 0x7F, 0xFC, 0x74, -0x76, 0x67, 0xD4, 0x54, 0x8C, 0x4B, 0x22, 0x58, 0x6C, 0x95, -0xA7, 0xF2, 0x03, 0x67, 0x5E, 0xCA, 0xBC, 0x36, 0x3B, 0x91, -0xDF, 0xFE, 0x7F, 0xB9, 0xFE, 0x01, 0x8C, 0x37, 0x4F, 0xD9, -0x44, 0x8F, 0x9A, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, -0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_DSP1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x05, 0x38, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xCD, 0x54, 0x6B, 0x6C, 0x54, 0x45, 0x14, -0x3E, 0x33, 0x77, 0xEF, 0xDD, 0x47, 0xB7, 0xA5, 0x2D, 0x74, -0xEF, 0x76, 0xDB, 0x66, 0x97, 0x2D, 0x15, 0x4A, 0x5B, 0x11, -0x69, 0xC0, 0x48, 0x1A, 0x05, 0x8D, 0x40, 0x85, 0x60, 0x6C, -0x1B, 0x30, 0xFE, 0x32, 0x6A, 0x7C, 0x01, 0x6D, 0x28, 0x85, -0xA0, 0x3F, 0x40, 0xA3, 0xE1, 0x25, 0x31, 0x46, 0x0D, 0xA9, -0x31, 0x08, 0x34, 0x50, 0x82, 0xA0, 0x06, 0x45, 0x14, 0xE8, -0x83, 0xA0, 0xF2, 0x2A, 0x06, 0x52, 0xA8, 0x31, 0xC4, 0x06, -0x69, 0x83, 0xB4, 0xB4, 0xDB, 0xBD, 0xDD, 0x3E, 0x76, 0xEF, -0x63, 0xC6, 0x33, 0x2D, 0x5B, 0x29, 0xD4, 0x6A, 0xF8, 0xE5, -0x24, 0xBB, 0x73, 0xEE, 0x3C, 0xCE, 0x77, 0xBE, 0xEF, 0x9C, -0x33, 0x04, 0xC6, 0x18, 0x07, 0x6A, 0xF7, 0x2F, 0xE4, 0x9C, -0xAF, 0xD5, 0x0D, 0xDD, 0x66, 0xB7, 0xDB, 0x3B, 0x82, 0x39, -0x39, 0xD5, 0x85, 0xB3, 0x66, 0x9D, 0x18, 0xEB, 0xEC, 0xBF, -0x0D, 0x7A, 0xF7, 0xC2, 0x8F, 0x27, 0x4F, 0x15, 0xA6, 0xA6, -0xA6, 0x1E, 0x55, 0x14, 0x65, 0xDE, 0xB5, 0xD6, 0x6B, 0x45, -0x47, 0x0E, 0x7F, 0x53, 0x7A, 0xB0, 0x76, 0xFF, 0xF1, 0xF6, -0xB6, 0xB6, 0x6D, 0xF1, 0x33, 0x8D, 0xF5, 0x0D, 0xF2, 0xE9, -0x9F, 0x7E, 0xAE, 0x38, 0xD5, 0x78, 0xF2, 0x60, 0xCD, 0xE7, -0xBB, 0x0E, 0xBF, 0xBF, 0x79, 0xCB, 0xF6, 0x37, 0xAB, 0xAA, -0x66, 0xFF, 0x27, 0x00, 0xC3, 0x30, 0x6A, 0x92, 0x92, 0x93, -0xA1, 0xE5, 0xCA, 0x65, 0x08, 0xF7, 0xF4, 0x80, 0xD3, 0xE9, -0x64, 0x97, 0x2F, 0x37, 0x43, 0x6B, 0x6B, 0xEB, 0x42, 0xB1, -0x5F, 0x7F, 0xAC, 0x6E, 0xB2, 0x47, 0x55, 0xFB, 0x3B, 0xFE, -0xBC, 0xF9, 0xC1, 0xD7, 0x87, 0xBE, 0x2C, 0x39, 0x73, 0xFA, -0xCC, 0x92, 0x96, 0x2B, 0x57, 0x56, 0xFF, 0xDE, 0xDA, 0x7A, -0xF6, 0xB9, 0xD2, 0x92, 0x8F, 0xC6, 0x05, 0xA8, 0x3F, 0x76, -0x62, 0xB9, 0x69, 0x18, 0xD3, 0x2E, 0x36, 0x5D, 0xE0, 0x7A, -0xCC, 0x60, 0x8C, 0x59, 0xF8, 0x63, 0x84, 0x52, 0xCA, 0xED, -0x0E, 0x7B, 0xBE, 0x38, 0xE3, 0x70, 0x38, 0xCA, 0x63, 0xB1, -0x98, 0xDC, 0x74, 0xFE, 0x3C, 0x77, 0x20, 0x38, 0x32, 0x65, -0xB2, 0x22, 0x73, 0xC5, 0xA6, 0xF0, 0x68, 0x4C, 0x7F, 0x69, -0x5C, 0x00, 0x59, 0x51, 0xB6, 0x35, 0x5F, 0x6A, 0x86, 0xAE, -0xAE, 0x10, 0x47, 0x26, 0x94, 0x59, 0x16, 0xB5, 0x98, 0xC5, -0x2D, 0xC3, 0x20, 0x2E, 0x97, 0x0B, 0xBE, 0x3B, 0xF2, 0xED, -0x63, 0xCE, 0x04, 0xD7, 0xF3, 0xBF, 0xB5, 0xFC, 0x0A, 0x8A, -0xAC, 0x70, 0x71, 0x9F, 0x73, 0xA0, 0x04, 0x08, 0x27, 0x94, -0x88, 0xC9, 0x81, 0x2C, 0xE6, 0x8E, 0x09, 0x70, 0xB2, 0xBE, -0x71, 0xC1, 0xAD, 0x8E, 0xCE, 0x4C, 0xD3, 0x34, 0xC0, 0xB4, -0x74, 0x60, 0xCC, 0x04, 0x13, 0x6F, 0x33, 0x93, 0x81, 0x85, -0x73, 0x82, 0xD3, 0x09, 0x86, 0xAE, 0xBF, 0xE6, 0x76, 0x27, -0x4C, 0x6A, 0x6F, 0x6B, 0x07, 0x64, 0x35, 0x3A, 0x54, 0x82, -0xCE, 0x08, 0x85, 0x98, 0x6E, 0x2C, 0xBE, 0x73, 0xD9, 0x16, -0x37, 0x90, 0xEA, 0x8A, 0xF6, 0xF6, 0x76, 0x71, 0x0E, 0x03, -0xB7, 0x88, 0x65, 0x72, 0xC6, 0x4D, 0x0B, 0x4C, 0x66, 0x12, -0x2A, 0x51, 0x86, 0x1B, 0x04, 0xF3, 0x51, 0x12, 0xEA, 0x0E, -0x71, 0xD3, 0x34, 0x39, 0xC1, 0x81, 0xD7, 0x58, 0xDC, 0x3D, -0xD2, 0x61, 0xB8, 0x44, 0x0D, 0xD3, 0x78, 0x12, 0xBF, 0xD7, -0xDF, 0xC3, 0xA0, 0x57, 0xEB, 0x5D, 0x6C, 0x1A, 0x26, 0x30, -0xCE, 0x29, 0xBA, 0xE6, 0x26, 0xB7, 0xA8, 0xC9, 0x4D, 0xCA, -0xD0, 0x99, 0x43, 0x51, 0x70, 0x8D, 0x21, 0x80, 0xCB, 0xD6, -0xDD, 0xD5, 0xC5, 0xA5, 0xE1, 0xF0, 0xF9, 0xED, 0xFB, 0xB7, -0x6D, 0x4E, 0x85, 0x89, 0xD1, 0x15, 0xDE, 0x23, 0x11, 0xCA, -0x33, 0xAF, 0x57, 0xD3, 0x86, 0xCE, 0xA1, 0xE6, 0x28, 0x91, -0x05, 0xDC, 0x32, 0x01, 0x51, 0x90, 0x01, 0x03, 0x4C, 0x26, -0xE8, 0xBA, 0x0E, 0x98, 0x48, 0xE8, 0xED, 0x8D, 0xC0, 0x70, -0xF0, 0x77, 0x0D, 0x84, 0x10, 0xB0, 0x58, 0x14, 0xB0, 0xBC, -0xF4, 0xD9, 0xE0, 0x28, 0x89, 0x64, 0x59, 0x7E, 0x24, 0x1C, -0x0E, 0x03, 0x36, 0x97, 0x28, 0x1C, 0x74, 0x6C, 0x11, 0xD3, -0xB4, 0x18, 0x32, 0x00, 0x21, 0x97, 0x3B, 0xD1, 0xCD, 0xA2, -0xD1, 0x41, 0xB0, 0x29, 0x0A, 0x0C, 0xF6, 0x0D, 0x08, 0x75, -0xD8, 0xB0, 0xEA, 0x7F, 0x4B, 0x14, 0xB7, 0x91, 0x1C, 0x8D, -0xC5, 0xF4, 0x3C, 0x34, 0x5B, 0xEF, 0x94, 0x68, 0xDA, 0xC0, -0xC0, 0x80, 0x00, 0xA0, 0x26, 0xC3, 0xCA, 0xC1, 0xD0, 0x85, -0x8D, 0x13, 0xB5, 0x30, 0x19, 0x89, 0x89, 0x89, 0xD4, 0x88, -0xE9, 0x78, 0x96, 0xD0, 0xC1, 0xD8, 0x60, 0x5C, 0x9A, 0xBB, -0x24, 0x1A, 0xB1, 0x45, 0x50, 0xFE, 0x51, 0x0C, 0x62, 0xBA, -0x9E, 0x86, 0x89, 0x03, 0x51, 0xF5, 0x1C, 0xAB, 0xC6, 0xB4, -0x38, 0x26, 0x19, 0xD3, 0xCB, 0x51, 0x2E, 0xDD, 0x20, 0x1E, -0x8F, 0x87, 0xE9, 0xB8, 0x6F, 0x97, 0xF0, 0xDB, 0x30, 0xC7, -0x61, 0xC0, 0x87, 0x82, 0x96, 0x24, 0xC9, 0x33, 0x0A, 0x20, -0xDA, 0xDF, 0x6F, 0xD7, 0x63, 0x3A, 0x18, 0xA6, 0x8E, 0x0C, -0x4C, 0x91, 0x28, 0xD1, 0x62, 0x14, 0x9B, 0x0E, 0x24, 0x59, -0x66, 0xAA, 0xEA, 0xA1, 0x62, 0x9F, 0x12, 0x79, 0x48, 0xC6, -0xDB, 0x91, 0xC6, 0x67, 0x88, 0xDB, 0x48, 0x1A, 0x44, 0x7A, -0xDC, 0xEE, 0xC4, 0x84, 0x51, 0x49, 0x9E, 0x9A, 0x37, 0x5D, -0x53, 0x7D, 0x5E, 0x28, 0x9C, 0x33, 0x5B, 0x34, 0x1B, 0x68, -0xBD, 0x1A, 0x84, 0xB5, 0x30, 0x08, 0xA7, 0x8B, 0x8A, 0x17, -0x41, 0x66, 0x86, 0x0F, 0xA2, 0xD1, 0x81, 0xA1, 0xEF, 0xB1, -0xF2, 0x7B, 0xA7, 0x33, 0x42, 0x24, 0xF0, 0xE1, 0xF9, 0x51, -0x00, 0x4E, 0x97, 0xF3, 0x8F, 0xA7, 0x97, 0x2E, 0x81, 0xAC, -0x80, 0x1F, 0x16, 0x14, 0x2F, 0x84, 0xB2, 0x65, 0x65, 0xB0, -0x66, 0x5D, 0x15, 0x7C, 0xBC, 0xE3, 0x13, 0xC8, 0xCB, 0xCF, -0x45, 0x16, 0x12, 0x50, 0x9B, 0x04, 0x22, 0xD1, 0xD1, 0x68, -0x4C, 0x68, 0x8C, 0x62, 0x60, 0x85, 0x89, 0xA6, 0xC4, 0x9F, -0xF8, 0x8E, 0x7B, 0x2B, 0x29, 0x2B, 0x03, 0xD5, 0xEB, 0x0D, -0xC7, 0x01, 0x24, 0xF1, 0x57, 0x59, 0x59, 0xE9, 0xC5, 0xC0, -0x9E, 0x99, 0x90, 0xE4, 0x66, 0xC9, 0x29, 0x29, 0xDC, 0xAB, -0xAA, 0xA2, 0x12, 0x79, 0xC7, 0xCD, 0x1B, 0x7C, 0xA0, 0xBF, -0x9F, 0xA0, 0x03, 0x21, 0x2E, 0x99, 0xFD, 0xE8, 0x5C, 0x8E, -0xE5, 0x4A, 0x6E, 0xB4, 0xDF, 0xE0, 0x7D, 0xB8, 0x3E, 0x73, -0xD6, 0xC3, 0x3C, 0x10, 0x0C, 0xF0, 0xB6, 0xEB, 0xD7, 0x49, -0x4F, 0xA8, 0x87, 0x3F, 0x38, 0x63, 0x06, 0xCF, 0xCA, 0xF2, -0x91, 0x60, 0x76, 0x70, 0xCF, 0xAE, 0xDD, 0x7B, 0x2E, 0x8E, -0x30, 0xA8, 0xAE, 0xAE, 0xAE, 0x97, 0x24, 0x02, 0x7D, 0x7D, -0xFD, 0x34, 0x1C, 0x0A, 0xD1, 0xCE, 0xCE, 0x9B, 0xBC, 0x2F, -0x12, 0xA1, 0xD8, 0xFA, 0x54, 0x92, 0x6D, 0xA2, 0x6B, 0x69, -0x5F, 0x5F, 0xE4, 0xAA, 0xA8, 0x81, 0xA2, 0xC7, 0x8B, 0x60, -0xE5, 0x9A, 0x55, 0xF4, 0x95, 0x37, 0x5E, 0xE5, 0x53, 0xA6, -0xE6, 0xD0, 0x60, 0xCE, 0x14, 0xFA, 0xC2, 0xCB, 0x2F, 0xF2, -0x77, 0xDE, 0x7B, 0x9B, 0x16, 0x17, 0x3F, 0x45, 0x5D, 0x2E, -0x07, 0x68, 0xA1, 0xEE, 0x0B, 0x23, 0x49, 0xCE, 0xCD, 0xCD, -0x25, 0x35, 0x35, 0x35, 0xD1, 0x27, 0xE6, 0xCF, 0xEF, 0x48, -0xF3, 0xA4, 0xA9, 0xD8, 0x09, 0x88, 0x4A, 0x86, 0x0B, 0x03, -0x69, 0x78, 0xD4, 0x74, 0x12, 0xEA, 0xBA, 0x05, 0x75, 0x0D, -0x8D, 0xF5, 0x99, 0xFE, 0x29, 0xC6, 0xD4, 0x07, 0x72, 0xA6, -0x23, 0x0E, 0xD8, 0x64, 0x1B, 0xB8, 0x1C, 0x76, 0x88, 0x45, -0xA3, 0x20, 0x04, 0xEB, 0xEC, 0xEC, 0xC0, 0xF7, 0x82, 0x03, -0xF6, 0x00, 0x5B, 0x5A, 0xB2, 0xAC, 0x79, 0x04, 0x40, 0x68, -0x91, 0x94, 0x94, 0x24, 0x6D, 0xD8, 0xB8, 0x71, 0x43, 0x65, -0xE5, 0xEA, 0x77, 0xFD, 0x59, 0x59, 0x93, 0x0C, 0xF1, 0x8A, -0xA2, 0xB6, 0xF8, 0x62, 0x00, 0x3E, 0x0D, 0xD6, 0xDE, 0xBD, -0xB5, 0x07, 0x8F, 0xD7, 0x35, 0x7C, 0x38, 0x39, 0x98, 0xD3, -0x9D, 0x36, 0x31, 0x65, 0xFA, 0xA5, 0x8B, 0x97, 0x58, 0x5E, -0x7E, 0x1E, 0x19, 0x8C, 0xEA, 0x2C, 0x12, 0x89, 0x80, 0x5D, -0x91, 0x49, 0xEA, 0x44, 0x95, 0x69, 0x5A, 0x88, 0xE2, 0x9B, -0xF6, 0xD5, 0xA8, 0xC4, 0xB7, 0xB4, 0xB4, 0x70, 0x5C, 0xEC, -0xD4, 0x34, 0xAD, 0xA6, 0xAA, 0x6A, 0xED, 0xCC, 0x95, 0xE5, -0x15, 0x4B, 0x36, 0x6D, 0xDE, 0x52, 0xBE, 0x69, 0xEB, 0xF6, -0xF2, 0x75, 0xEB, 0xDF, 0x2A, 0x5D, 0xB1, 0xB2, 0xE2, 0xA1, -0xB3, 0xE7, 0x9A, 0x5E, 0x77, 0x3A, 0x1C, 0x57, 0xF7, 0xED, -0xAB, 0xDD, 0xC1, 0x91, 0x59, 0x41, 0x41, 0x01, 0x3E, 0xE3, -0xD8, 0xF1, 0xF8, 0x5E, 0x29, 0xB2, 0x24, 0xEA, 0x1E, 0xB4, -0x70, 0x17, 0x4D, 0x49, 0x9E, 0x00, 0x07, 0xBE, 0x38, 0xB4, -0xE3, 0x9F, 0xEB, 0x6C, 0x9C, 0x11, 0x08, 0x04, 0x68, 0x46, -0x46, 0x86, 0xB7, 0xA8, 0xA8, 0x68, 0xD5, 0x96, 0xAD, 0x9B, -0x7F, 0xF9, 0xE1, 0xFB, 0xA3, 0x83, 0x17, 0x9A, 0xCE, 0xF1, -0xF3, 0x67, 0x4F, 0xF3, 0x86, 0xBA, 0xE3, 0x7C, 0xF7, 0xCE, -0xCF, 0xDA, 0x2A, 0x2A, 0x56, 0x7D, 0xAA, 0xAA, 0xDE, 0xF4, -0x60, 0x30, 0x28, 0xDD, 0x17, 0x48, 0x76, 0x76, 0xB6, 0xCD, -0xEF, 0xF7, 0x27, 0xA6, 0xA7, 0xFB, 0x32, 0x55, 0x55, 0xCD, -0xF7, 0xF9, 0x7C, 0x73, 0x02, 0x01, 0xFF, 0x5C, 0xEC, 0xF4, -0x02, 0xAF, 0xD7, 0x9B, 0x89, 0x23, 0xF1, 0xBE, 0x9D, 0xFF, -0x6F, 0xC7, 0x5F, 0x02, 0xE8, 0xB0, 0xF1, 0x7A, 0x17, 0xEF, -0x2F, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, -0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Fullscreen1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x05, 0x44, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xD5, 0x55, 0x59, 0x6F, 0x1B, 0x55, 0x14, -0x3E, 0x77, 0x3C, 0xFB, 0x6A, 0x8F, 0x67, 0xF3, 0x32, 0xB6, -0xE3, 0x38, 0x69, 0x12, 0x48, 0x4A, 0xD3, 0x84, 0x38, 0x64, -0x48, 0x2B, 0xCA, 0x03, 0xAA, 0x90, 0x28, 0x48, 0x50, 0x56, -0xA1, 0x56, 0xA8, 0x50, 0xAA, 0x4A, 0x80, 0x04, 0x0F, 0x88, -0x4D, 0xC0, 0xAF, 0x42, 0x55, 0x9F, 0x78, 0xE1, 0x89, 0x7F, -0x80, 0x84, 0x2A, 0x20, 0xDD, 0xD2, 0xA6, 0x49, 0x6C, 0x27, -0x1E, 0xDF, 0xC3, 0xB9, 0xC6, 0x69, 0xC3, 0x4F, 0xE8, 0x48, -0xDF, 0xF5, 0x78, 0xE6, 0x9E, 0xEF, 0x3B, 0xEB, 0x1D, 0x80, -0xA7, 0xFD, 0x2A, 0x88, 0x65, 0x6D, 0x6D, 0x7D, 0xA1, 0x5E, -0x4F, 0x2F, 0x37, 0x9A, 0xCD, 0x6C, 0x7A, 0x7A, 0x26, 0x9B, -0x9F, 0x9F, 0xCF, 0x16, 0x97, 0x96, 0xB2, 0x53, 0xA7, 0x96, -0xB3, 0xD5, 0x95, 0xD5, 0x6C, 0x6D, 0x6D, 0x2D, 0xEB, 0xAE, -0x77, 0xB3, 0xF5, 0xEE, 0x3A, 0xDD, 0x77, 0xB3, 0x95, 0xD5, -0xD5, 0xF1, 0x3B, 0xB1, 0x67, 0x7E, 0x61, 0x21, 0x9B, 0xE9, -0xCC, 0x64, 0xCD, 0x56, 0x2B, 0x8B, 0xA2, 0x84, 0x10, 0x65, -0x49, 0x92, 0x64, 0x71, 0x9C, 0xDC, 0xBA, 0x7D, 0x7B, 0x6B, -0x67, 0xAC, 0xD2, 0x6A, 0x4D, 0x7D, 0x9B, 0x24, 0x55, 0x5E, -0xF2, 0x03, 0x5E, 0x0E, 0x63, 0x9E, 0xD4, 0x52, 0x9E, 0xB6, -0xDA, 0xBC, 0x3D, 0x3B, 0xC7, 0x4F, 0x3C, 0x7B, 0x92, 0x2F, -0x2E, 0x3F, 0xCF, 0x57, 0x5F, 0x7C, 0x89, 0x6F, 0xBE, 0xF2, -0x06, 0x3F, 0xFB, 0xEA, 0x45, 0xBE, 0x71, 0xEE, 0x3C, 0x5F, -0x79, 0xE1, 0x0C, 0x3F, 0xB9, 0xDA, 0xE5, 0xCF, 0x3C, 0xB7, -0xCC, 0x67, 0x17, 0x16, 0x79, 0x63, 0x6A, 0x9A, 0x27, 0xD5, -0x94, 0xFB, 0x61, 0xC4, 0xCB, 0x41, 0xC8, 0x93, 0xA4, 0xF2, -0xD1, 0xE3, 0x08, 0x3C, 0xAF, 0x78, 0xBE, 0x7F, 0x30, 0xD8, -0xD8, 0xDB, 0xEF, 0x33, 0x0E, 0xC0, 0x38, 0x63, 0x80, 0x92, -0xCC, 0x0A, 0x8A, 0xCE, 0x64, 0xCD, 0x04, 0xCD, 0x2E, 0xB2, -0x62, 0x32, 0xC5, 0x4A, 0x8D, 0x0E, 0xB3, 0x83, 0x18, 0x14, -0x59, 0x67, 0x28, 0xD1, 0x46, 0x59, 0x61, 0x92, 0xAC, 0xB2, -0xD1, 0x48, 0x58, 0x49, 0x0C, 0x09, 0x83, 0xFE, 0x00, 0x00, -0x05, 0x03, 0xDC, 0xEC, 0xF5, 0xF6, 0x7F, 0x93, 0x84, 0x80, -0x24, 0x49, 0xA6, 0x24, 0x15, 0x40, 0x56, 0x35, 0xD0, 0x0C, -0x0B, 0x0C, 0xDB, 0x05, 0xDB, 0x2B, 0x82, 0x57, 0x0E, 0xA1, -0x14, 0x25, 0x90, 0xA4, 0x6D, 0x68, 0xCC, 0xCD, 0x41, 0x6B, -0xBA, 0x09, 0x69, 0xAB, 0x06, 0x95, 0x34, 0x85, 0x6A, 0x2D, -0x85, 0x5A, 0xBD, 0x01, 0x3E, 0xED, 0xF1, 0x69, 0x4F, 0x39, -0xAE, 0x81, 0xA6, 0x1B, 0xC4, 0xA1, 0x82, 0x54, 0x18, 0xFB, -0x6D, 0x8D, 0xB9, 0xC5, 0xA2, 0xA8, 0x8A, 0x55, 0x90, 0x15, -0xD0, 0x0D, 0x0B, 0x0D, 0xC7, 0x47, 0xDB, 0x0D, 0xC0, 0xF3, -0x2B, 0xE8, 0x47, 0x29, 0xC6, 0xB5, 0x29, 0x68, 0xCC, 0xCE, -0xE2, 0x6C, 0xA7, 0x81, 0x9D, 0x46, 0x82, 0x8D, 0x24, 0x84, -0x4A, 0x2D, 0xC6, 0x7A, 0x73, 0x0A, 0x82, 0xB8, 0x86, 0x41, -0x52, 0xC7, 0x4A, 0xA3, 0x03, 0x4E, 0x29, 0x44, 0x49, 0xD5, -0x50, 0x38, 0x48, 0x5C, 0x48, 0xB4, 0xE6, 0x63, 0x01, 0xF2, -0xDE, 0x96, 0x55, 0x13, 0x74, 0x27, 0x60, 0x76, 0x39, 0x61, -0x6E, 0x58, 0x85, 0x52, 0xB5, 0xCE, 0xE2, 0xA9, 0x16, 0x6B, -0xCE, 0xCD, 0xC0, 0xDC, 0x4C, 0x8B, 0xB5, 0xAB, 0x31, 0x4B, -0xFC, 0x22, 0x2B, 0x7B, 0x0E, 0x24, 0x71, 0xC0, 0xCA, 0x51, -0x44, 0x9E, 0xD3, 0xB3, 0x34, 0x65, 0x7E, 0x92, 0x80, 0x44, -0xE9, 0x32, 0x2C, 0x97, 0x89, 0xE8, 0x29, 0x13, 0x8C, 0xB2, -0x75, 0x2C, 0x02, 0x45, 0x36, 0x65, 0xDD, 0x04, 0x93, 0x8C, -0x9C, 0x98, 0xD2, 0x92, 0x56, 0x20, 0x4A, 0xAB, 0xD0, 0x6E, -0x37, 0xE0, 0x44, 0xAB, 0x0E, 0x9D, 0x5A, 0x02, 0x15, 0xBF, -0x08, 0xB6, 0xA9, 0x83, 0x67, 0x5B, 0xE0, 0xB9, 0x36, 0x78, -0x25, 0x17, 0xE2, 0x2A, 0x89, 0x84, 0x65, 0xCA, 0x80, 0x0A, -0xBA, 0x69, 0x83, 0xE5, 0xFA, 0x94, 0xDE, 0x12, 0xFD, 0x37, -0x80, 0xC1, 0x31, 0x01, 0x92, 0xB3, 0x15, 0xC7, 0x01, 0x3F, -0x0E, 0x31, 0x22, 0x84, 0xBE, 0x0F, 0x8D, 0x0A, 0xA5, 0x23, -0x0A, 0xB1, 0x5A, 0xF6, 0x21, 0x2A, 0x79, 0x68, 0x69, 0x2A, -0xEA, 0x0A, 0x81, 0xC8, 0x1C, 0xD3, 0xC0, 0x98, 0x04, 0x49, -0x0C, 0x35, 0x8D, 0xD2, 0x42, 0xC2, 0xA6, 0xEB, 0xA1, 0xE9, -0xFA, 0xA8, 0xDB, 0x3E, 0xC8, 0xBA, 0x85, 0xA4, 0xF0, 0x44, -0x80, 0x2E, 0xC3, 0xF1, 0x3C, 0xA8, 0x46, 0x11, 0xAB, 0x04, -0x14, 0x7E, 0xD1, 0x03, 0x22, 0x60, 0x45, 0xD7, 0xA1, 0x94, -0xB8, 0x40, 0xA4, 0x6C, 0x84, 0xC8, 0x38, 0x81, 0xBA, 0x03, -0x6C, 0xC3, 0x60, 0x86, 0xA6, 0x82, 0x5C, 0x28, 0x30, 0x5D, -0x53, 0x99, 0xA1, 0xEB, 0xA0, 0x59, 0x3A, 0x53, 0x1D, 0x4B, -0x00, 0x64, 0xC3, 0x64, 0x47, 0x45, 0x96, 0xC5, 0xC2, 0x39, -0xB7, 0x03, 0x22, 0xAA, 0x84, 0x01, 0xAA, 0x9A, 0x06, 0x86, -0x61, 0x80, 0xA6, 0xAA, 0x68, 0xEA, 0x74, 0xAF, 0xAB, 0x70, -0x98, 0x8F, 0xB0, 0x77, 0x90, 0x43, 0x7F, 0x98, 0x83, 0xAA, -0x8C, 0x4D, 0x90, 0xA3, 0x88, 0x9C, 0xA1, 0xA6, 0x28, 0xE2, -0x06, 0x0A, 0xB4, 0x5F, 0x16, 0xA2, 0xB4, 0xBF, 0xA0, 0x6B, -0x08, 0x78, 0xAC, 0xC8, 0x79, 0x9E, 0x9B, 0x45, 0xD7, 0x03, -0x22, 0x64, 0xC2, 0x2B, 0x4A, 0x19, 0xBD, 0xA7, 0x55, 0x92, -0x58, 0xFF, 0x70, 0x08, 0x3B, 0xBD, 0x01, 0xDB, 0xD9, 0x1F, -0xB0, 0x11, 0x17, 0x51, 0x00, 0x1C, 0x0C, 0x73, 0x76, 0x30, -0x1C, 0x81, 0x44, 0x95, 0x24, 0x6D, 0xF2, 0x96, 0x89, 0x46, -0x61, 0x05, 0xB2, 0xA5, 0x8E, 0x24, 0x07, 0x69, 0x4E, 0x10, -0x9F, 0x44, 0x30, 0x1A, 0x8D, 0x2C, 0xD3, 0x32, 0x05, 0xA9, -0x30, 0x06, 0x59, 0xA3, 0xA8, 0x88, 0xA8, 0x77, 0x70, 0x08, -0x43, 0x9A, 0xA1, 0xA1, 0x18, 0x24, 0x9A, 0x13, 0x95, 0x3C, -0xE5, 0x87, 0xF9, 0xD8, 0x7D, 0x8A, 0x8A, 0xDE, 0xF1, 0xF1, -0x3B, 0x61, 0x27, 0x7A, 0xBF, 0x20, 0x49, 0xA0, 0x51, 0x84, -0x22, 0x3F, 0xFF, 0x13, 0x18, 0x0E, 0x87, 0xA6, 0x98, 0x83, -0xBD, 0xDE, 0x00, 0x72, 0x72, 0x48, 0xD5, 0x47, 0x63, 0xF2, -0x3B, 0x0F, 0x76, 0xA9, 0xA7, 0x65, 0x50, 0xA9, 0xB0, 0xA2, -0x53, 0x68, 0x5A, 0xA1, 0x40, 0x5A, 0x23, 0xE4, 0x63, 0x47, -0x06, 0x14, 0x45, 0xCE, 0x71, 0x2C, 0xC0, 0xFE, 0x4B, 0x35, -0x8C, 0xE8, 0xB9, 0xF0, 0xE7, 0xA8, 0x06, 0xAC, 0x52, 0xA9, -0x2A, 0x74, 0xED, 0x6D, 0x5E, 0x78, 0x57, 0xC9, 0x59, 0x41, -0x4C, 0x1D, 0x58, 0x96, 0x43, 0xB0, 0xC0, 0x34, 0x0D, 0x70, -0x1C, 0x1B, 0x34, 0x4D, 0x07, 0x8B, 0x3A, 0xC5, 0xA0, 0xFA, -0xC8, 0x05, 0x09, 0x72, 0x62, 0x38, 0x1C, 0x0E, 0x09, 0x87, -0xB0, 0xBB, 0xDF, 0x87, 0x87, 0x0F, 0x1F, 0xC1, 0x5F, 0x5B, -0xB7, 0xE1, 0xE1, 0xFD, 0x7B, 0xF0, 0xE0, 0xFE, 0x7D, 0xE8, -0x3D, 0xB8, 0x0B, 0xB7, 0x7E, 0xFF, 0x75, 0xEB, 0xDE, 0xBD, -0xBB, 0x55, 0x39, 0x08, 0x02, 0x6D, 0x7B, 0x7B, 0x5B, 0xFE, -0xE7, 0xCF, 0x3F, 0x00, 0x69, 0x58, 0x98, 0xAC, 0xC2, 0x36, -0x15, 0x4C, 0xA2, 0xB3, 0xC8, 0x25, 0x72, 0xCB, 0x32, 0x51, -0xA5, 0xC1, 0x31, 0x0D, 0x3A, 0x46, 0x28, 0xBF, 0x94, 0x06, -0x24, 0x4F, 0x59, 0x4E, 0xC9, 0x1F, 0xE6, 0x43, 0xD6, 0x1F, -0x1C, 0xC0, 0xCE, 0xA3, 0x5D, 0xFC, 0x7B, 0xEB, 0x0E, 0xEB, -0xED, 0xEE, 0xC2, 0xA0, 0xB7, 0x87, 0xC3, 0xFD, 0x47, 0x54, -0x47, 0x36, 0x2E, 0x32, 0x9C, 0x3B, 0xF7, 0xB2, 0x55, 0xAB, -0xD5, 0xFB, 0x74, 0x5C, 0x73, 0x3A, 0xAE, 0xB1, 0xDD, 0x9E, -0xC6, 0x4E, 0x67, 0x86, 0xCF, 0xCD, 0xCD, 0xE3, 0xD2, 0xD2, -0x49, 0x3C, 0x7D, 0x7A, 0x85, 0x77, 0xBB, 0xEB, 0xB8, 0x91, -0x65, 0xB8, 0xB9, 0x79, 0x46, 0x80, 0x6F, 0x6C, 0x64, 0xB8, -0xD6, 0xED, 0xF2, 0xE5, 0xD3, 0x2B, 0x48, 0x47, 0x36, 0xD2, -0x5E, 0x3E, 0x3D, 0xDD, 0xC1, 0x66, 0xB3, 0x85, 0xC4, 0xC5, -0x29, 0x2B, 0x48, 0x7C, 0x77, 0x1E, 0x7F, 0x14, 0x2C, 0xCB, -0x2E, 0x52, 0x4A, 0x12, 0xDB, 0xB6, 0x13, 0xC7, 0x71, 0x12, -0xD7, 0x75, 0x13, 0xCF, 0xF3, 0x12, 0xDF, 0xF7, 0x2B, 0xEF, -0xBD, 0xFF, 0xC1, 0xA5, 0x2F, 0xBE, 0xFC, 0x8A, 0x5F, 0xBD, -0x76, 0x9D, 0x5F, 0xF9, 0xE4, 0x2A, 0xFF, 0xF8, 0xD3, 0x6B, -0xFC, 0xFA, 0x67, 0x9F, 0xF3, 0x6F, 0xBE, 0xFB, 0x9E, 0xBF, -0xF9, 0xD6, 0xC5, 0xCD, 0x52, 0xC9, 0xAF, 0x88, 0xBD, 0x8E, -0xE3, 0x8E, 0x6D, 0x05, 0x87, 0xE0, 0x22, 0x4E, 0x77, 0x5C, -0x83, 0x09, 0xE4, 0xC9, 0xD1, 0x7D, 0x04, 0xF9, 0x08, 0x1F, -0x5E, 0xBA, 0x7C, 0xED, 0xE2, 0xDB, 0xEF, 0x7C, 0x9D, 0x8F, -0x72, 0xD1, 0xF7, 0xE3, 0x19, 0x10, 0xED, 0x4B, 0xC3, 0x85, -0x3F, 0xFF, 0xF4, 0xE3, 0xE5, 0x9B, 0x37, 0x6E, 0xFC, 0x22, -0x3A, 0xFD, 0x18, 0x46, 0x13, 0x0C, 0xC5, 0xAF, 0x34, 0x21, -0x14, 0xF9, 0x2A, 0x11, 0x62, 0x42, 0x83, 0x30, 0x43, 0x58, -0xA4, 0x8F, 0xC6, 0xF9, 0xD7, 0x2E, 0xBC, 0x7E, 0x45, 0x37, -0xF4, 0x5E, 0xA9, 0x58, 0xEA, 0x87, 0x41, 0xD0, 0x8F, 0xC2, -0x70, 0xE0, 0x3A, 0x4E, 0x1F, 0x11, 0xFA, 0x24, 0xFE, 0x83, -0xAE, 0x1B, 0x99, 0xD8, 0x3B, 0xB1, 0x69, 0x4C, 0x38, 0x3C, -0x82, 0x3E, 0x71, 0x7E, 0xBC, 0x08, 0x11, 0x1A, 0x49, 0xD0, -0xC4, 0xB1, 0x31, 0x69, 0x31, 0x77, 0x22, 0x5A, 0x25, 0xA4, -0x13, 0xE3, 0xA6, 0xF8, 0x00, 0x4E, 0xEE, 0xC5, 0xB3, 0xCA, -0x64, 0x8F, 0x3B, 0xB1, 0x31, 0x26, 0x1C, 0xCA, 0xB1, 0x63, -0xE8, 0x29, 0xBF, 0xFE, 0x05, 0xBF, 0xC0, 0xA7, 0xEC, 0x02, -0xFF, 0xAC, 0x09, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, -0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Gfx1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x04, 0xCE, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xD5, 0x94, 0x6B, 0x6C, 0x14, 0x55, 0x14, -0xC7, 0xFF, 0xF3, 0x9E, 0xD9, 0xC7, 0x74, 0x1F, 0x5D, 0xD8, -0x6E, 0x5B, 0x28, 0xDB, 0xD2, 0x94, 0x16, 0x04, 0xAC, 0xDA, -0x07, 0xB4, 0x54, 0x49, 0x0B, 0x94, 0xF4, 0x43, 0x6D, 0x04, -0xC5, 0xA6, 0x01, 0xA1, 0x1A, 0x89, 0x90, 0x18, 0x3F, 0x91, -0x26, 0xA4, 0xBE, 0x48, 0x3F, 0xA8, 0x11, 0x79, 0x24, 0x10, -0x21, 0x21, 0xFA, 0x41, 0xA2, 0xD1, 0x08, 0x06, 0xD1, 0xD4, -0x14, 0x14, 0x4A, 0xC5, 0x44, 0x41, 0x85, 0x86, 0xA6, 0xD0, -0x74, 0x41, 0x96, 0xB2, 0xDD, 0xED, 0x76, 0x77, 0x67, 0x76, -0x67, 0x67, 0x67, 0xC7, 0x5B, 0x62, 0xD0, 0x18, 0x6C, 0xA8, -0x21, 0x31, 0x9E, 0xE4, 0xE6, 0xDE, 0xDC, 0x73, 0xEE, 0xF9, -0xDD, 0x7B, 0xCE, 0x3D, 0x07, 0xF8, 0xBF, 0x0B, 0x35, 0x9D, -0x52, 0xD7, 0x75, 0x81, 0x4C, 0x0E, 0x8E, 0xE3, 0xC6, 0x1E, -0x38, 0x20, 0x95, 0x4A, 0x49, 0x44, 0x7D, 0x36, 0x14, 0x8D, -0x3D, 0xE4, 0x75, 0x3B, 0x4E, 0x98, 0xA6, 0xB9, 0x97, 0x6C, -0xF7, 0xF2, 0x3C, 0x9F, 0x7D, 0x20, 0x80, 0x74, 0x3A, 0xFD, -0xD6, 0xB1, 0xB3, 0x3F, 0xBF, 0x72, 0x59, 0xD1, 0x51, 0xBB, -0xD8, 0x0F, 0xBF, 0x4D, 0x84, 0xCF, 0x22, 0x5E, 0xA1, 0x29, -0x6A, 0x3F, 0x51, 0x1F, 0x21, 0xA0, 0xC9, 0x7F, 0x0D, 0xD0, -0x34, 0xAD, 0x7E, 0x28, 0x30, 0xD6, 0xD7, 0xF3, 0x59, 0x3F, -0xFD, 0x6C, 0xD0, 0x84, 0xA7, 0x79, 0x11, 0xE2, 0xD5, 0xF3, -0x21, 0xEA, 0x69, 0xB8, 0x90, 0x45, 0x9E, 0xC0, 0xC5, 0x45, -0x96, 0xF9, 0x90, 0x98, 0xEE, 0x15, 0x04, 0xE1, 0xF2, 0x8C, -0x00, 0x24, 0x34, 0xF6, 0xB4, 0x9E, 0xB9, 0xB0, 0x75, 0xF7, -0xA7, 0xFE, 0x9C, 0xA2, 0x02, 0x3C, 0xAE, 0xC4, 0xE1, 0x98, -0xA3, 0x81, 0x5B, 0x54, 0x09, 0x5D, 0xCE, 0x07, 0x4D, 0x6C, -0x26, 0x14, 0x15, 0xA2, 0xAA, 0x61, 0x81, 0x5D, 0x30, 0x7D, -0xB2, 0xA5, 0x8F, 0x6C, 0xED, 0x23, 0xE3, 0x98, 0x28, 0x8A, -0x99, 0xFB, 0x01, 0x1C, 0xDC, 0xFB, 0xC9, 0xB7, 0x9D, 0xA7, -0x87, 0x82, 0x78, 0xB8, 0x6E, 0x09, 0x68, 0x33, 0x86, 0xE7, -0xAC, 0x03, 0x48, 0xF1, 0x39, 0x18, 0xF2, 0x3F, 0x03, 0x92, -0x0B, 0x4C, 0xC4, 0x35, 0x24, 0x93, 0x69, 0xE8, 0x86, 0x01, -0x3B, 0x32, 0xA8, 0x70, 0x58, 0x50, 0xEA, 0x92, 0x47, 0x39, -0x86, 0x3E, 0x40, 0xF4, 0xEF, 0x4B, 0x92, 0x14, 0xBA, 0x27, -0x40, 0x51, 0x94, 0xB5, 0x3F, 0x5D, 0xB9, 0x7E, 0xFC, 0xE5, -0x7D, 0xC7, 0xA9, 0xD2, 0xF2, 0x12, 0xF8, 0xCA, 0x4A, 0xC0, -0xCA, 0x22, 0x16, 0x86, 0xBE, 0x40, 0x6B, 0xA9, 0x84, 0x7E, -0xB3, 0x14, 0x61, 0x7B, 0x05, 0x52, 0xC4, 0x39, 0x28, 0x13, -0x7A, 0xD6, 0x04, 0x58, 0x86, 0xCC, 0x06, 0x32, 0x8A, 0x02, -0xBF, 0xC8, 0x61, 0xE9, 0x6C, 0x77, 0xCA, 0x69, 0x95, 0x8E, -0x12, 0xD0, 0x3E, 0x8B, 0xC5, 0xF2, 0x03, 0xF3, 0x17, 0xE7, -0xEE, 0x84, 0x9A, 0xFA, 0xF2, 0xC5, 0x9E, 0x8F, 0xED, 0x06, -0x74, 0x58, 0x1D, 0xB9, 0x30, 0x58, 0x0B, 0x24, 0xD9, 0x8E, -0x28, 0x3B, 0x1B, 0xF9, 0xE1, 0xEF, 0x90, 0x87, 0x71, 0x0C, -0xD1, 0x25, 0x10, 0xC8, 0x29, 0x9A, 0x36, 0xC1, 0x30, 0x14, -0x68, 0x32, 0x28, 0x62, 0x9F, 0x26, 0x2F, 0x19, 0x89, 0xAA, -0x38, 0x3D, 0x7C, 0x9B, 0x1D, 0xB9, 0x15, 0x59, 0x92, 0x2F, -0x4B, 0x9D, 0xBB, 0x5E, 0x7F, 0x75, 0xF8, 0x2E, 0xA0, 0xAB, -0xAB, 0xEB, 0xF0, 0xAE, 0x43, 0x7D, 0x35, 0xE7, 0x06, 0x83, -0xE0, 0x05, 0x1A, 0x26, 0x2B, 0x81, 0x11, 0xED, 0xE0, 0x79, -0x06, 0x16, 0x81, 0xC3, 0x44, 0x74, 0x02, 0x55, 0x1E, 0x05, -0xB1, 0x68, 0x08, 0xAA, 0x5C, 0x08, 0x8E, 0x38, 0x66, 0xD8, -0xA9, 0x8C, 0xA4, 0x61, 0x82, 0x84, 0x4C, 0xD3, 0xA0, 0x2A, -0x06, 0x34, 0xDD, 0x40, 0x28, 0x9E, 0x40, 0x6D, 0x51, 0x1E, -0x7A, 0xDE, 0x78, 0xAD, 0xFF, 0x0E, 0x20, 0x91, 0x48, 0xAC, -0x0F, 0x84, 0x13, 0xDD, 0x83, 0x0A, 0x03, 0x51, 0xB4, 0x90, -0x24, 0x9A, 0xA0, 0x58, 0x1E, 0xA2, 0x45, 0x82, 0xC4, 0x9B, -0xB0, 0x5B, 0x48, 0x44, 0x72, 0xBC, 0x60, 0x46, 0x4E, 0x61, -0xB1, 0x43, 0xC5, 0xA8, 0x38, 0x07, 0xB4, 0xC0, 0x83, 0xA5, -0x49, 0x49, 0xD0, 0x29, 0xE2, 0x54, 0x43, 0x2C, 0x91, 0x41, -0x8A, 0x40, 0x60, 0xC4, 0xB1, 0xCC, 0x27, 0x63, 0x5E, 0x8E, -0xAC, 0xEF, 0xD8, 0xB1, 0xE3, 0x4D, 0x2A, 0x16, 0x8B, 0xE5, -0xC5, 0x55, 0xED, 0x97, 0x8E, 0xDD, 0xFD, 0x6E, 0x4F, 0xA1, -0x07, 0xFE, 0x7C, 0x07, 0x72, 0x45, 0x1A, 0xB7, 0xC7, 0xA3, -0xB8, 0xA5, 0xA4, 0x60, 0xB1, 0x51, 0x98, 0xED, 0xE6, 0xE1, -0x76, 0xB0, 0x60, 0x6E, 0xFE, 0x88, 0xA7, 0xC4, 0x7E, 0x5C, -0x17, 0x8A, 0x30, 0x5C, 0xDC, 0x4C, 0x42, 0x04, 0x64, 0x8C, -0x2C, 0x42, 0xB1, 0x0C, 0xA2, 0x64, 0x64, 0xF5, 0x49, 0xC8, -0xDA, 0x6D, 0xB4, 0x3F, 0xD6, 0x86, 0x3D, 0xBB, 0xF7, 0x1C, -0xE9, 0xEE, 0xEE, 0xDE, 0x42, 0x8D, 0x8C, 0x8C, 0x6C, 0x4B, -0x19, 0xFC, 0x7B, 0x5D, 0x87, 0xCE, 0xE1, 0xD2, 0x78, 0x1A, -0x6E, 0xAF, 0x0B, 0xC5, 0x05, 0x76, 0xCC, 0x2D, 0x74, 0xA0, -0xD0, 0x23, 0x81, 0x35, 0x53, 0x50, 0xD3, 0x31, 0x72, 0x63, -0x9D, 0x84, 0x2A, 0x0B, 0xD7, 0xC0, 0x01, 0xAC, 0x9C, 0x0B, -0x9C, 0x2A, 0x58, 0x8D, 0x49, 0xD9, 0x05, 0x33, 0x4B, 0x21, -0x46, 0x5E, 0x6C, 0xA4, 0xA2, 0x10, 0x13, 0xD7, 0x50, 0xE9, -0x6D, 0x80, 0xA0, 0xBB, 0x23, 0x75, 0x75, 0x75, 0x8F, 0x46, -0x22, 0x91, 0x6B, 0x4C, 0x32, 0x99, 0x5C, 0xB2, 0xA6, 0xE9, -0x89, 0x96, 0xB6, 0x15, 0xA5, 0x58, 0x5E, 0xE6, 0x41, 0x22, -0x3A, 0x89, 0xE1, 0x60, 0x14, 0x71, 0x9A, 0x41, 0x86, 0x31, -0x21, 0x58, 0x59, 0xE4, 0x7B, 0x1C, 0xF0, 0xCA, 0x12, 0x38, -0x56, 0x47, 0xD8, 0x26, 0xC3, 0x13, 0x18, 0x80, 0x33, 0x13, -0xC6, 0x8D, 0xBC, 0x3C, 0x24, 0xCD, 0x08, 0xAC, 0x54, 0x18, -0x8E, 0xCC, 0x30, 0x24, 0xC6, 0x81, 0xA5, 0xF9, 0xAB, 0x30, -0x15, 0x9A, 0xF3, 0xE7, 0xCF, 0x1F, 0xBF, 0xF3, 0x4D, 0x69, -0x9A, 0x16, 0x6A, 0x6A, 0x6A, 0x9E, 0xDC, 0xB4, 0x69, 0xD3, -0xF6, 0xC6, 0xC6, 0xC6, 0x2A, 0x9B, 0xCD, 0x46, 0x45, 0xD4, -0x0C, 0x4E, 0x5C, 0x1A, 0xC3, 0x85, 0x70, 0x0C, 0x2E, 0x17, -0x0B, 0x6F, 0xAE, 0x00, 0x4F, 0x0E, 0x0B, 0x17, 0x81, 0xD9, -0xB9, 0x0C, 0x32, 0xFD, 0x1F, 0xA0, 0x96, 0xFA, 0x15, 0xA7, -0x0A, 0x2B, 0x10, 0x9C, 0xE5, 0x44, 0x56, 0x8D, 0x42, 0x57, -0x05, 0xAC, 0x9C, 0xB5, 0x01, 0xBF, 0x0D, 0xDE, 0x1C, 0x6A, -0x6A, 0x6A, 0xAA, 0x32, 0x0C, 0x23, 0xFA, 0xF7, 0x3A, 0xE0, -0xCB, 0xCB, 0xCB, 0xEB, 0xDA, 0xDB, 0xDB, 0xB7, 0xB7, 0xB5, -0xB5, 0xAD, 0x76, 0x3A, 0x9D, 0xBC, 0x41, 0x31, 0x18, 0xB8, -0x31, 0x8E, 0x8B, 0x13, 0xE3, 0xE0, 0xAC, 0x59, 0x92, 0x07, -0x86, 0x24, 0x9C, 0x82, 0xC8, 0xA4, 0x51, 0xD4, 0xBB, 0x1F, -0xD6, 0x05, 0xD5, 0xF8, 0xC6, 0xAB, 0x62, 0x2C, 0x1E, 0x87, -0x9F, 0x5A, 0x88, 0xB5, 0xB9, 0xAB, 0xCC, 0xD6, 0xD6, 0xD6, -0x0D, 0x67, 0xCE, 0x9C, 0xF9, 0xE8, 0x1F, 0x2B, 0x99, 0x08, -0xE3, 0xF3, 0xF9, 0x2A, 0xD6, 0xAD, 0x5B, 0xF7, 0x52, 0x47, -0x47, 0xC7, 0xD3, 0x64, 0x6D, 0x67, 0x79, 0x1E, 0x83, 0x91, -0x08, 0x2E, 0x4E, 0x06, 0xA1, 0x70, 0x2A, 0x9C, 0x76, 0x13, -0x39, 0x66, 0x12, 0xF3, 0xAF, 0x5E, 0xC5, 0xF8, 0xD2, 0x65, -0x08, 0xC4, 0x46, 0xD1, 0x68, 0xAB, 0xC5, 0xD7, 0x9F, 0x7F, -0xD5, 0xDB, 0xD9, 0xD9, 0xD9, 0x32, 0xD5, 0x10, 0xA6, 0x03, -0xDC, 0xD5, 0xC9, 0xB2, 0x5C, 0xD0, 0xD2, 0xD2, 0xB2, 0x65, -0xF3, 0xE6, 0xCD, 0x5B, 0xCA, 0xCA, 0xCA, 0x7C, 0xA4, 0xB1, -0xE1, 0x86, 0x3A, 0x89, 0x4B, 0x91, 0x41, 0x8C, 0xEA, 0x21, -0x98, 0x14, 0x4D, 0xBA, 0x2E, 0x85, 0x35, 0xF3, 0xAA, 0xE0, -0xD5, 0x04, 0xAD, 0xA1, 0xA1, 0x61, 0x05, 0xF9, 0x34, 0xDF, -0x4F, 0xDB, 0x8B, 0xEE, 0x05, 0x22, 0x8E, 0x9D, 0xE4, 0xF0, -0x7A, 0x02, 0xDA, 0x5A, 0x5D, 0x5D, 0xBD, 0x90, 0xF4, 0x1A, -0x4C, 0xA4, 0x15, 0xF4, 0x05, 0x87, 0x31, 0xA6, 0xC5, 0xF0, -0x7C, 0xE9, 0x72, 0xBC, 0xFB, 0xF6, 0x3B, 0x07, 0x7B, 0x7A, -0x7A, 0xB6, 0x12, 0x7B, 0x63, 0xA6, 0x80, 0x3F, 0x8D, 0x29, -0xCA, 0x52, 0x59, 0x59, 0xB9, 0x7A, 0xE3, 0xC6, 0x8D, 0xDB, -0x9A, 0x9B, 0x9B, 0xEB, 0xAD, 0x56, 0x2B, 0xCD, 0x90, 0x62, -0x08, 0x04, 0x02, 0x21, 0x72, 0x81, 0x47, 0x48, 0x4D, 0x05, -0x66, 0xE2, 0x6F, 0x3A, 0xE1, 0x8A, 0x8B, 0x8B, 0x6B, 0x77, -0xEE, 0xDC, 0x79, 0xF4, 0xE4, 0xC9, 0x93, 0x37, 0xEB, 0xEB, -0xEB, 0x5F, 0x98, 0xE9, 0x65, 0xEF, 0x57, 0xA6, 0x9A, 0x91, -0xFD, 0x8F, 0xF9, 0xBF, 0x91, 0xDF, 0x01, 0x72, 0xD8, 0xEB, -0xCC, 0xAF, 0xB0, 0x2D, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Help1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x06, 0xC5, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0x85, 0x55, 0x0B, 0x6C, 0x53, 0xE7, 0x15, -0xFE, 0xCE, 0x7D, 0xF8, 0x6D, 0xC7, 0xCE, 0x9B, 0xC4, 0x76, -0x12, 0x88, 0x12, 0xDA, 0x3C, 0x58, 0x43, 0x50, 0x18, 0x6B, -0xB7, 0x69, 0x19, 0xB4, 0x2A, 0x08, 0xA8, 0xA8, 0x52, 0x34, -0x06, 0x22, 0x24, 0x0D, 0x84, 0x01, 0x12, 0x4A, 0xB4, 0x57, -0xA7, 0x02, 0x6B, 0x47, 0x25, 0x36, 0x54, 0x3A, 0x75, 0x12, -0xA0, 0x11, 0x69, 0xB0, 0x89, 0x0C, 0x69, 0x5D, 0xBA, 0x08, -0x18, 0x45, 0x6B, 0x12, 0x22, 0xB2, 0x41, 0xCA, 0xD8, 0xD2, -0x50, 0x48, 0x42, 0xC8, 0x52, 0x12, 0xC7, 0x71, 0x9A, 0x97, -0xED, 0xF8, 0x11, 0xDB, 0xF7, 0xEE, 0xDC, 0x64, 0x93, 0x06, -0xA5, 0xEB, 0x91, 0x8E, 0xFF, 0xEB, 0xFF, 0xDE, 0xFF, 0xFB, -0xCF, 0x39, 0xFF, 0xF9, 0xBE, 0x9F, 0xF0, 0x7F, 0xAC, 0xAB, -0xAB, 0xCB, 0xE2, 0x70, 0x38, 0x36, 0x58, 0xAD, 0xD6, 0x6F, -0xEB, 0xF5, 0xFA, 0x62, 0x51, 0x14, 0x33, 0x89, 0x4D, 0x51, -0x94, 0xA9, 0x70, 0x38, 0xDC, 0x37, 0x3A, 0x3A, 0xDA, 0x19, -0x0C, 0x06, 0x5B, 0x2A, 0x2B, 0x2B, 0x47, 0xBF, 0x08, 0x43, -0x7C, 0xD2, 0x64, 0x73, 0x73, 0xB3, 0xA5, 0xB1, 0xB1, 0xF1, -0xF5, 0xBC, 0xBC, 0xBC, 0xF3, 0x4E, 0xA7, 0x73, 0x9B, 0x4E, -0x6F, 0x2C, 0x8B, 0x26, 0xE0, 0x8C, 0xC4, 0x54, 0x7B, 0x24, -0xAE, 0xDA, 0x12, 0x2A, 0x2D, 0x31, 0x99, 0x4D, 0x45, 0x2E, -0x67, 0xF6, 0x7A, 0x8B, 0xD9, 0x7C, 0x60, 0xDB, 0xB6, 0x6D, -0x45, 0xDB, 0xB7, 0x6F, 0xFF, 0x47, 0x53, 0x53, 0xD3, 0xD4, -0xE3, 0x58, 0xC2, 0xE3, 0x13, 0xE7, 0xCF, 0x9F, 0x2F, 0xCF, -0xCF, 0xCF, 0xEF, 0x29, 0x2E, 0x2E, 0x7E, 0x2D, 0x41, 0x3A, -0x7B, 0xEF, 0x90, 0x0F, 0xB7, 0x07, 0x7D, 0xB8, 0x37, 0xEA, -0xC7, 0x80, 0x37, 0x88, 0xFE, 0xB1, 0x20, 0x7A, 0x1F, 0xFA, -0xF1, 0xD7, 0x7B, 0xE3, 0x68, 0xBB, 0x3D, 0x0C, 0xAF, 0x3F, -0x2E, 0xE5, 0xE4, 0x2D, 0xAD, 0xE2, 0x40, 0xFE, 0xD9, 0xDD, -0xDD, 0x5D, 0xF7, 0x38, 0x1E, 0xFD, 0xEF, 0x9F, 0x33, 0x67, -0xCE, 0x54, 0x96, 0x95, 0x95, 0xBD, 0x9F, 0xED, 0x74, 0x9B, -0x86, 0x3F, 0x9B, 0x43, 0x30, 0x0A, 0x24, 0x54, 0x76, 0x45, -0x45, 0x5C, 0x51, 0x90, 0x48, 0x2C, 0x8E, 0x71, 0x6D, 0x4C, -0xFC, 0x77, 0x4C, 0x40, 0x50, 0xE6, 0xB1, 0x72, 0x69, 0x32, -0x52, 0x2C, 0x32, 0x3C, 0x1E, 0xCF, 0x9B, 0xE5, 0xE5, 0xE5, -0xAF, 0x7F, 0x2E, 0x83, 0xB3, 0x67, 0xCF, 0x16, 0x94, 0x96, -0x96, 0xBE, 0x97, 0x9A, 0x9E, 0x69, 0xEE, 0x7D, 0x38, 0x83, -0x89, 0x60, 0x82, 0x82, 0xD1, 0x38, 0x05, 0xC2, 0x31, 0x44, -0xE6, 0xE3, 0x94, 0x91, 0x64, 0xA4, 0xA2, 0x9C, 0x64, 0xFA, -0x4A, 0x5E, 0x2A, 0x9E, 0x72, 0xDA, 0x29, 0xD9, 0xA2, 0x87, -0x3F, 0x34, 0x4F, 0xD3, 0x73, 0x31, 0xF2, 0x06, 0x55, 0xFC, -0xE9, 0x96, 0x87, 0x06, 0x3C, 0xB3, 0x94, 0x9E, 0x9E, 0xFE, -0x93, 0x9B, 0x37, 0x6F, 0xEE, 0x7A, 0x64, 0x83, 0xA3, 0x47, -0x8F, 0x92, 0xCB, 0xE5, 0x6A, 0x72, 0xB9, 0x73, 0x6C, 0x77, -0x46, 0xFC, 0x98, 0x0A, 0x2B, 0xF0, 0x33, 0xF0, 0x2C, 0x7B, -0x92, 0x49, 0xC6, 0xF3, 0x65, 0x6E, 0x64, 0x58, 0x05, 0x7C, -0x3A, 0xEA, 0x85, 0xC7, 0xEB, 0xC3, 0x12, 0x9B, 0x88, 0x75, -0x3C, 0xF7, 0xCA, 0x73, 0xF9, 0xE8, 0x1B, 0x0F, 0xE0, 0xD2, -0x1D, 0x1F, 0x3E, 0xE8, 0x9B, 0xC1, 0x5B, 0x17, 0xFB, 0x31, -0x30, 0x36, 0x0B, 0x9B, 0xCD, 0xF6, 0x76, 0x5B, 0x5B, 0x9B, -0x4B, 0xC3, 0x96, 0xB4, 0x1F, 0x3E, 0xCC, 0x0D, 0x05, 0x05, -0x05, 0x6B, 0x1E, 0x78, 0x67, 0x55, 0xDF, 0x9C, 0x82, 0x98, -0x92, 0xD0, 0xD2, 0x57, 0x45, 0x52, 0xF1, 0xB5, 0xA7, 0xF3, -0x20, 0x4B, 0xA2, 0xFA, 0xE1, 0x27, 0x13, 0x38, 0xD5, 0x35, -0x8E, 0x81, 0x89, 0x10, 0x4A, 0x1D, 0xBD, 0xEA, 0xE5, 0xD7, -0x36, 0x20, 0xC5, 0x66, 0x50, 0xB7, 0x54, 0x38, 0xF1, 0xE2, -0xBB, 0x1F, 0x31, 0x8A, 0xAA, 0x82, 0xD7, 0x8D, 0x9E, 0xBB, -0x81, 0xF7, 0x1B, 0x2A, 0xAD, 0x3A, 0x9D, 0xEE, 0xC7, 0x3C, -0x59, 0xBF, 0xD0, 0x45, 0x7B, 0xF7, 0xEE, 0x3D, 0xB6, 0x64, -0x49, 0x56, 0x61, 0x67, 0xFF, 0x04, 0x05, 0x62, 0xA0, 0x50, -0x2C, 0x81, 0xB9, 0x79, 0x85, 0x48, 0x4D, 0xD0, 0x33, 0xB9, -0x29, 0x90, 0x65, 0x99, 0x62, 0xB1, 0x28, 0xBD, 0xD9, 0x36, -0x46, 0x51, 0xC9, 0x80, 0xE9, 0xB8, 0x4C, 0xAF, 0x96, 0x3B, -0xC0, 0x6D, 0x4B, 0x26, 0x21, 0x4E, 0xEF, 0x5E, 0xF7, 0x80, -0x74, 0x06, 0x22, 0x51, 0xA0, 0xC9, 0xA8, 0x8A, 0x8A, 0x2C, -0x03, 0xE5, 0xA4, 0x27, 0x15, 0xE4, 0xE4, 0xE4, 0xBC, 0x23, -0x70, 0x8B, 0x49, 0xFC, 0xF0, 0x4D, 0xEF, 0x74, 0x10, 0xBE, -0x90, 0x82, 0x69, 0x2E, 0xCB, 0x54, 0x38, 0x8E, 0xDB, 0xDE, -0x00, 0xDE, 0xB8, 0x36, 0x82, 0xC3, 0xCD, 0x1D, 0x78, 0xAF, -0xFD, 0x23, 0xBC, 0x75, 0xA9, 0x07, 0x92, 0xDD, 0x0E, 0x29, -0x29, 0x09, 0x76, 0x87, 0x79, 0xA1, 0xBE, 0xA1, 0x50, 0x08, -0x43, 0x9E, 0x09, 0x88, 0x36, 0x1B, 0x44, 0x8B, 0x19, 0x82, -0xD9, 0x04, 0x58, 0x6D, 0xE8, 0x18, 0xF8, 0x0C, 0xA9, 0xA9, -0xA9, 0xB6, 0x8C, 0x8C, 0x8C, 0x35, 0xE2, 0xEA, 0xD5, 0xAB, -0xDD, 0x9B, 0x36, 0x6D, 0xFA, 0x7E, 0xBF, 0x67, 0x1A, 0xBD, -0xBE, 0x30, 0x82, 0x31, 0x05, 0xED, 0xC3, 0x33, 0xE8, 0xF4, -0x04, 0x31, 0x2F, 0xEB, 0xD1, 0x1D, 0xD0, 0xA3, 0xE5, 0x21, -0xF0, 0x40, 0x4C, 0x65, 0x10, 0x0B, 0x44, 0x93, 0x11, 0xDF, -0x2B, 0xD1, 0xA1, 0x2C, 0xD3, 0x88, 0x48, 0x24, 0x82, 0x37, -0xDA, 0x87, 0x31, 0x24, 0x67, 0x70, 0x06, 0x12, 0x04, 0x51, -0x00, 0x89, 0x04, 0xAB, 0x12, 0xC6, 0x77, 0x9F, 0x5D, 0x8E, -0x91, 0x91, 0x91, 0xFB, 0x82, 0xC1, 0x60, 0xC8, 0x90, 0x24, -0x89, 0x02, 0xD1, 0x38, 0x26, 0xC3, 0x31, 0xFA, 0xF3, 0xD0, -0x24, 0xDD, 0x99, 0x8D, 0x42, 0x34, 0xEA, 0x49, 0xB4, 0x98, -0x48, 0xB4, 0xDB, 0x20, 0xA5, 0xA5, 0x92, 0x94, 0x62, 0x27, -0x29, 0xD9, 0x46, 0xCF, 0xE7, 0x8A, 0xD8, 0xB5, 0xC2, 0x41, -0x1A, 0xF8, 0xCF, 0x3B, 0x07, 0xE9, 0x2F, 0xBA, 0x7C, 0xED, -0x1D, 0x64, 0x87, 0x8D, 0x24, 0xBB, 0x85, 0x24, 0xAB, 0x19, -0x61, 0x10, 0x69, 0x98, 0xF1, 0x78, 0xDC, 0x21, 0xF2, 0xE1, -0x66, 0x72, 0x06, 0xAF, 0x0E, 0xFB, 0x66, 0xF0, 0x9B, 0x8F, -0xC7, 0xF1, 0x69, 0x88, 0xFB, 0x5A, 0xAF, 0x83, 0xC0, 0x91, -0x8A, 0x9C, 0xB2, 0x64, 0xE5, 0xA8, 0x79, 0x91, 0x56, 0x02, -0xB7, 0x29, 0x81, 0x5F, 0x97, 0x49, 0x08, 0x06, 0xE7, 0xF0, -0xA3, 0xBF, 0x79, 0x71, 0xD1, 0xB8, 0x1C, 0x02, 0xBF, 0x27, -0xBD, 0x04, 0x92, 0x45, 0x8E, 0x9E, 0x89, 0xC5, 0x8D, 0x51, -0x6C, 0x88, 0x60, 0x4B, 0x59, 0x2E, 0x7A, 0x7B, 0x7B, 0x3B, -0x44, 0xD6, 0x99, 0xA4, 0xAD, 0x5B, 0xB7, 0xEE, 0x8B, 0x31, -0x71, 0xDE, 0xB9, 0x3E, 0x48, 0xA4, 0x37, 0x90, 0x60, 0xE0, -0x0D, 0x8C, 0x46, 0x12, 0xCD, 0x66, 0x5A, 0x00, 0x37, 0x73, -0x26, 0x26, 0x3D, 0x35, 0x66, 0x04, 0xC8, 0x29, 0xC7, 0x50, -0xFB, 0xF7, 0x00, 0xF5, 0xA4, 0x15, 0x73, 0x96, 0x46, 0x12, -0x74, 0x22, 0x09, 0x0C, 0x2E, 0x88, 0x44, 0xDC, 0xF4, 0x2C, -0x54, 0x71, 0xBC, 0x94, 0xAE, 0xD0, 0xB3, 0x05, 0xD9, 0xC4, -0x7C, 0xB8, 0xC4, 0x18, 0x66, 0x61, 0xDD, 0xBA, 0x75, 0x0D, -0x85, 0x79, 0x2E, 0xFA, 0x63, 0x77, 0x3F, 0x4D, 0x8B, 0x86, -0x85, 0x0C, 0x44, 0xA3, 0x81, 0xB4, 0x7A, 0xFF, 0xC7, 0x49, -0x92, 0x05, 0x34, 0xDA, 0xA7, 0xD1, 0x3C, 0x1C, 0x44, 0x47, -0x72, 0x11, 0x03, 0x73, 0xD4, 0x92, 0xC0, 0xB5, 0x10, 0x34, -0x70, 0x4D, 0x13, 0x38, 0x78, 0x05, 0xE2, 0xCC, 0x38, 0x7E, -0xBA, 0x3A, 0x8B, 0x89, 0x68, 0x44, 0x4B, 0x4B, 0x4B, 0xB3, -0xC8, 0xFD, 0x1A, 0x71, 0xBB, 0xDD, 0x35, 0x2B, 0x57, 0xAE, -0xB4, 0xD9, 0x65, 0xD0, 0xA5, 0xC1, 0x49, 0x90, 0xC1, 0xC8, -0x9B, 0xE8, 0x49, 0xD0, 0x1B, 0x20, 0x1A, 0xF4, 0x8B, 0xCF, -0x92, 0x88, 0x87, 0x0F, 0xEE, 0xE3, 0x16, 0x25, 0x63, 0xCE, -0x9A, 0x4A, 0x24, 0x30, 0x22, 0xE3, 0x93, 0xB0, 0xA8, 0x38, -0xA4, 0x24, 0x08, 0xF3, 0x51, 0xBC, 0x00, 0x2F, 0xAA, 0xBF, -0xFA, 0x14, 0x79, 0xBD, 0x5E, 0xF5, 0xC2, 0x85, 0x0B, 0xC7, -0x16, 0xB4, 0x68, 0xF3, 0xE6, 0xCD, 0x27, 0x4F, 0x9C, 0x38, -0x51, 0x97, 0x91, 0x99, 0x89, 0xDA, 0xA6, 0x0F, 0x71, 0x71, -0x8A, 0x3B, 0x82, 0xDB, 0x4D, 0xB2, 0x58, 0xB9, 0xFE, 0xDC, -0x82, 0x66, 0x33, 0x96, 0x1B, 0x62, 0xD8, 0xE7, 0x54, 0x70, -0x2D, 0x20, 0xE1, 0x0F, 0x73, 0x76, 0xAD, 0xD8, 0x8B, 0x5A, -0xC0, 0xFC, 0x52, 0x59, 0x8F, 0x54, 0x3E, 0xF4, 0xF4, 0x91, -0x8F, 0xF1, 0xFB, 0x17, 0x96, 0x22, 0x2B, 0xD5, 0x81, 0x2B, -0x57, 0xAE, 0x4C, 0x1C, 0x3E, 0x7C, 0x38, 0x77, 0xE1, 0xAB, -0xC2, 0xC2, 0xC2, 0x67, 0x0E, 0x1C, 0x38, 0x70, 0x63, 0xE7, -0xCE, 0x9D, 0x72, 0x34, 0xAE, 0xA0, 0xA6, 0xA9, 0x5D, 0xBD, -0xE6, 0xE7, 0xFA, 0x5A, 0x92, 0x20, 0x99, 0x2C, 0xAA, 0x68, -0x32, 0xD3, 0xD7, 0x75, 0x13, 0xF8, 0x61, 0xB1, 0x0E, 0x37, -0x3C, 0x21, 0xF5, 0x67, 0xFE, 0x02, 0x82, 0x24, 0x33, 0xB2, -0x4A, 0x2A, 0x97, 0x05, 0xB1, 0x79, 0x35, 0x65, 0xFC, 0x13, -0x3A, 0x56, 0x61, 0xC5, 0x8A, 0x65, 0x2E, 0x75, 0x6A, 0x6A, -0x8A, 0x4E, 0x9F, 0x3E, 0x7D, 0xEC, 0xF8, 0xF1, 0xE3, 0x3F, -0x58, 0x90, 0x8A, 0xBE, 0xBE, 0xBE, 0xDB, 0x57, 0xAF, 0x5E, -0xFD, 0x2D, 0x13, 0xA3, 0x7A, 0xFD, 0xFA, 0xF5, 0x38, 0x57, -0xF7, 0x2D, 0xBC, 0xDD, 0x7A, 0x0B, 0x27, 0x6F, 0x8D, 0x22, -0x6E, 0xC9, 0x04, 0x0C, 0x71, 0x5C, 0x13, 0xCD, 0xE8, 0xFE, -0x97, 0x1F, 0x51, 0xD9, 0x0A, 0x32, 0x85, 0x16, 0x85, 0x98, -0xA5, 0x41, 0x08, 0x4D, 0xA3, 0x34, 0x71, 0x1F, 0x7B, 0x2B, -0xD2, 0xE0, 0x62, 0x02, 0x32, 0x38, 0xEE, 0xDE, 0xBD, 0x3B, -0xD2, 0xD1, 0xD1, 0xF1, 0x8B, 0x47, 0xE4, 0x3A, 0x2B, 0x2B, -0x2B, 0xB9, 0xAA, 0xAA, 0xAA, 0x9D, 0x89, 0x57, 0xBC, 0x76, -0xED, 0x5A, 0xF0, 0xE1, 0x63, 0xD8, 0x3B, 0x89, 0x73, 0xED, -0x7D, 0xB8, 0x7A, 0xCF, 0x0F, 0x4F, 0x44, 0x0F, 0xE8, 0x18, -0x5C, 0xE0, 0x8E, 0x51, 0x62, 0xB0, 0x28, 0x01, 0xAC, 0x48, -0x8E, 0x62, 0x4D, 0xB6, 0x8A, 0x82, 0x2C, 0x1B, 0xB8, 0x1B, -0xC1, 0xB7, 0x9E, 0x46, 0xBE, 0xF0, 0xA1, 0x43, 0x87, 0x5E, -0xFA, 0x80, 0xED, 0x91, 0x1B, 0x2D, 0x10, 0x08, 0x84, 0xC7, -0xC6, 0xC6, 0x2E, 0x33, 0xF1, 0xBE, 0xD1, 0xD3, 0xD3, 0x93, -0xC9, 0x1B, 0x50, 0xC1, 0xD2, 0x5C, 0x7A, 0xAE, 0xC8, 0x89, -0xEF, 0xAC, 0x71, 0xD3, 0x96, 0x62, 0x0B, 0x55, 0xBA, 0x12, -0xF4, 0x62, 0xAE, 0x82, 0x97, 0x9F, 0x96, 0x68, 0x6B, 0x99, -0x1D, 0x15, 0x79, 0x56, 0xCA, 0x4E, 0x4B, 0xD2, 0x6E, 0x51, -0x0D, 0x58, 0x23, 0x96, 0xFF, 0xC8, 0x91, 0x23, 0xBB, 0xB8, -0x1A, 0xAD, 0x4F, 0xBC, 0x70, 0x34, 0x5B, 0xB6, 0x6C, 0x59, -0x72, 0x49, 0x49, 0xC9, 0x2F, 0x57, 0xAD, 0x5A, 0x55, 0x95, -0x96, 0x96, 0x26, 0x33, 0x11, 0xD5, 0xEC, 0xEC, 0x6C, 0xD2, -0x22, 0x64, 0x76, 0x82, 0x41, 0x54, 0x0D, 0x8C, 0xEF, 0x62, -0x75, 0x68, 0x68, 0x88, 0xB4, 0x92, 0x58, 0x2C, 0x16, 0x95, -0x83, 0xEB, 0x6B, 0x6D, 0x6D, 0xAD, 0xE5, 0xC3, 0xBD, 0xFE, -0x85, 0x37, 0x9A, 0x66, 0x1B, 0x37, 0x6E, 0x24, 0x2E, 0xD7, -0x72, 0xBF, 0xDF, 0xBF, 0x8F, 0xCF, 0xE4, 0x65, 0x6E, 0xE1, -0x34, 0x96, 0x73, 0x98, 0x4C, 0x26, 0x4D, 0x55, 0x17, 0x36, -0xD1, 0x3C, 0x16, 0x8B, 0xA1, 0xB3, 0xB3, 0x53, 0xCB, 0x3C, -0xE2, 0xF3, 0xF9, 0x6E, 0xB0, 0xB2, 0xFE, 0x4A, 0x10, 0x84, -0xCB, 0xA7, 0x4E, 0x9D, 0x9A, 0x7B, 0x1C, 0xF3, 0x73, 0xB6, -0x7B, 0xF7, 0x6E, 0xB1, 0xBE, 0xBE, 0xDE, 0xBD, 0x67, 0xCF, -0x9E, 0x57, 0x6A, 0x6B, 0x6B, 0x4F, 0xB2, 0xE2, 0x76, 0xD5, -0xD5, 0xD5, 0xDD, 0x3F, 0x78, 0xF0, 0xE0, 0x48, 0x43, 0x43, -0xC3, 0xC8, 0xFE, 0xFD, 0xFB, 0x07, 0x77, 0xEC, 0xD8, 0xD1, -0x5D, 0x5D, 0x5D, 0xFD, 0x3B, 0xFE, 0xA6, 0x9E, 0xBD, 0x84, -0xBF, 0x37, 0x7E, 0x29, 0xF0, 0x93, 0x8C, 0x41, 0x24, 0x5E, -0x6C, 0x61, 0x4F, 0x63, 0x77, 0x32, 0x98, 0x93, 0xC7, 0x74, -0x1E, 0xAD, 0x35, 0x35, 0x35, 0xF2, 0x97, 0xAD, 0xFF, 0x37, -0x84, 0x15, 0xB6, 0xDE, 0xA9, 0xD0, 0x66, 0x37, 0x00, 0x00, -0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 - -}; - -static const unsigned char Toolbar_Log1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x03, 0xE9, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xB5, 0x54, 0x5D, 0x6C, 0x93, 0x55, 0x18, -0x7E, 0xCE, 0xF9, 0xDA, 0x0E, 0x3B, 0xD6, 0xE2, 0x58, 0xB7, -0x76, 0x23, 0xD4, 0x64, 0xC6, 0x4D, 0x26, 0x65, 0x75, 0x84, -0xC4, 0x6B, 0x13, 0x13, 0x3B, 0xF1, 0xC2, 0x3F, 0x6C, 0x4C, -0xB8, 0x50, 0x82, 0xEE, 0xA7, 0xDB, 0x57, 0xC4, 0x71, 0xA3, -0xC3, 0x18, 0x35, 0xEE, 0xC2, 0xE8, 0x22, 0xF1, 0x82, 0x84, -0x09, 0x4A, 0x82, 0x89, 0x9A, 0x25, 0x18, 0xC0, 0x78, 0x01, -0x89, 0x3F, 0x41, 0x2E, 0x70, 0xDD, 0x20, 0x04, 0x31, 0x73, -0xE9, 0x12, 0x60, 0xA2, 0x41, 0x18, 0x0E, 0xDA, 0x2E, 0xED, -0xE7, 0x7B, 0xCE, 0x77, 0xBE, 0xBF, 0xD1, 0x7A, 0xA5, 0xA7, -0x79, 0x7B, 0xDE, 0x73, 0xBE, 0x73, 0xDE, 0xE7, 0x9C, 0xE7, -0x39, 0xEF, 0x0B, 0xFC, 0xCF, 0x4D, 0xB3, 0x9C, 0xB1, 0xB1, -0xB1, 0x47, 0x27, 0x0E, 0x1E, 0x3A, 0x95, 0xCD, 0xEE, 0xD2, -0xF5, 0x6C, 0x56, 0xD7, 0x77, 0xBE, 0xAC, 0x0F, 0x8F, 0x8C, -0xE8, 0xC3, 0x7A, 0x56, 0x1F, 0x1A, 0xD6, 0xA5, 0x65, 0x84, -0x91, 0x33, 0x28, 0x8C, 0x06, 0x03, 0x99, 0x21, 0x7D, 0x60, -0x70, 0x48, 0xEF, 0xCF, 0x64, 0xF4, 0x7E, 0xEA, 0xFB, 0x06, -0x32, 0x64, 0x83, 0x7A, 0x2C, 0x16, 0x3B, 0x77, 0xEA, 0xE4, -0xC9, 0x39, 0x11, 0x97, 0x5B, 0x00, 0xA1, 0x70, 0x38, 0x18, -0x8B, 0x46, 0xE3, 0xD1, 0x68, 0x2C, 0x1E, 0x8D, 0x91, 0x59, -0xBE, 0xEC, 0xA3, 0xF1, 0x16, 0x61, 0x2D, 0x2D, 0xD2, 0x9A, -0xDD, 0xD6, 0xDC, 0x1C, 0x8F, 0x44, 0x5A, 0xC8, 0x9A, 0xA5, -0x35, 0x91, 0x85, 0x42, 0xA1, 0xA0, 0x15, 0xD7, 0x67, 0x39, -0x8C, 0xAC, 0xB4, 0xBC, 0x8C, 0x0B, 0x17, 0x2F, 0x61, 0xD3, -0x43, 0x5D, 0x28, 0x57, 0x0C, 0x54, 0x2A, 0x15, 0xC0, 0xA0, -0xDE, 0xA0, 0x4E, 0xFC, 0xC8, 0x37, 0x2A, 0xD2, 0xA3, 0x6F, -0x62, 0x2C, 0xE6, 0x61, 0xCE, 0x8B, 0x75, 0x6A, 0x8D, 0xBB, -0xF9, 0xDC, 0x83, 0xBA, 0x40, 0x00, 0x1B, 0x3A, 0x1F, 0x00, -0x23, 0xB4, 0x8A, 0x02, 0x70, 0x02, 0x38, 0x81, 0xDC, 0xF6, -0xD7, 0xF5, 0xEB, 0x08, 0xAD, 0xB9, 0xD7, 0x99, 0x5B, 0xA1, -0x01, 0x5F, 0x31, 0x96, 0x20, 0x02, 0x81, 0x73, 0x06, 0x8D, -0x73, 0x68, 0x8C, 0x9B, 0xBD, 0x35, 0x56, 0xC6, 0xC9, 0xA6, -0x73, 0x53, 0x18, 0xD9, 0x9D, 0xC5, 0xD1, 0xC9, 0xAF, 0xA0, -0x69, 0x6A, 0x9E, 0xF6, 0xB2, 0x6A, 0x00, 0x02, 0xB9, 0x50, -0x2A, 0xE2, 0xCC, 0xD9, 0x29, 0xB9, 0x80, 0xA9, 0x3F, 0xD1, -0x8B, 0x2D, 0xCC, 0xF2, 0x99, 0xF2, 0xE9, 0xF3, 0xF8, 0x07, -0xEF, 0x13, 0x65, 0x15, 0x14, 0x4B, 0x25, 0x73, 0x0D, 0x1D, -0x82, 0x9B, 0x8B, 0xAA, 0xDF, 0xA0, 0xCE, 0x1F, 0xC0, 0x96, -0x9E, 0x6E, 0x5B, 0x95, 0x7F, 0x03, 0xF9, 0xE3, 0xFB, 0xEF, -0xF0, 0x5A, 0x2A, 0x85, 0xA6, 0xB5, 0x4D, 0x78, 0x6E, 0xDB, -0xF3, 0xCE, 0x1A, 0x5E, 0xE3, 0x06, 0x90, 0x1C, 0x9B, 0xDC, -0x1B, 0x4A, 0x74, 0x56, 0x03, 0xA4, 0x5C, 0xB8, 0x83, 0xA5, -0x43, 0x07, 0x11, 0x9D, 0x9C, 0xC4, 0xAE, 0x17, 0x5F, 0x82, -0xDF, 0xEF, 0x37, 0x03, 0xAB, 0x35, 0x55, 0x35, 0x90, 0x14, -0x15, 0x8B, 0x38, 0x3B, 0x35, 0x23, 0x91, 0x2C, 0xB9, 0xAA, -0x81, 0xE4, 0x27, 0x0E, 0xA0, 0x95, 0xBE, 0xCF, 0xB7, 0xB6, -0xA1, 0x6D, 0x53, 0xB7, 0xE2, 0x9D, 0xD9, 0x20, 0x35, 0x28, -0x32, 0x10, 0x08, 0xF8, 0xD1, 0x93, 0x4C, 0xA8, 0x17, 0x83, -0xAA, 0x20, 0x4B, 0xF3, 0x79, 0xF0, 0x6F, 0x4E, 0x20, 0x9F, -0xCF, 0xA3, 0xFD, 0xD5, 0xDD, 0x52, 0x6C, 0x71, 0x2B, 0x0F, -0x48, 0x2D, 0x8A, 0x04, 0x3D, 0x37, 0x17, 0x17, 0xED, 0xC0, -0xD5, 0x40, 0xE6, 0xC6, 0x3F, 0x44, 0x98, 0x44, 0x2D, 0x3C, -0xB1, 0x15, 0x91, 0xF6, 0x76, 0x8F, 0xF0, 0x16, 0x88, 0xBB, -0xF9, 0x5C, 0xF1, 0x65, 0xA2, 0x5D, 0x5D, 0xB8, 0x86, 0x50, -0x43, 0x83, 0x99, 0x30, 0x92, 0x2A, 0x11, 0xC1, 0x90, 0x1B, -0xAF, 0x9D, 0x3E, 0x8D, 0xE0, 0x99, 0x9F, 0x30, 0xEB, 0xF3, -0x21, 0xD1, 0xD7, 0x6F, 0x06, 0x63, 0xD6, 0x6E, 0x66, 0x9F, -0x98, 0xB9, 0x28, 0xB2, 0x6B, 0x51, 0x6F, 0x6F, 0x6F, 0x47, -0x4F, 0xCF, 0xE6, 0xF4, 0xDA, 0xC6, 0x46, 0xB9, 0xB8, 0x42, -0x4F, 0x16, 0xF4, 0xAA, 0x98, 0x3A, 0xBF, 0x78, 0x8E, 0x17, -0x86, 0x32, 0xA8, 0xBB, 0x7C, 0x19, 0xFE, 0x3D, 0x7B, 0xD0, -0x9A, 0x7C, 0xD8, 0xFE, 0xE6, 0x1C, 0xDA, 0x74, 0x66, 0xA6, -0x73, 0x47, 0x8E, 0x1F, 0x3F, 0x76, 0xC9, 0x0B, 0x90, 0xEA, -0xED, 0xE8, 0xDA, 0x98, 0x48, 0x5F, 0x59, 0xF8, 0x5D, 0xDE, -0xA0, 0x42, 0x82, 0x43, 0x24, 0x9D, 0xBA, 0xF4, 0xEC, 0xE7, -0x47, 0xC0, 0xBF, 0xFC, 0x02, 0x57, 0x89, 0x96, 0xCD, 0x6F, -0xBD, 0x0D, 0xAE, 0x71, 0x8B, 0x38, 0x77, 0x6C, 0xE9, 0xB8, -0x01, 0x3C, 0xAF, 0x48, 0xB0, 0xA2, 0x69, 0x9A, 0xB7, 0x34, -0xD0, 0xAF, 0x70, 0xE3, 0x06, 0x16, 0xC6, 0xDE, 0xC3, 0xE2, -0xED, 0xDB, 0xB8, 0x7F, 0xEF, 0x9B, 0xF0, 0x11, 0x45, 0x8E, -0xF0, 0x4A, 0x03, 0x4F, 0x9E, 0x38, 0x1A, 0xD8, 0x37, 0x48, -0x11, 0x45, 0xDD, 0xC9, 0x64, 0x7A, 0x75, 0x7D, 0xBD, 0x09, -0x58, 0x34, 0x29, 0x12, 0xED, 0xFC, 0xBB, 0xEF, 0xA0, 0xFE, -0xC7, 0x1F, 0xB0, 0xF4, 0xF4, 0x33, 0xD8, 0xB8, 0x63, 0x87, -0x62, 0x85, 0xB9, 0x34, 0x80, 0xE7, 0x26, 0xD3, 0x39, 0xBA, -0xC1, 0xB1, 0x15, 0x14, 0x3D, 0x9E, 0x4A, 0x75, 0x74, 0x6E, -0xE8, 0x4A, 0xFF, 0x3A, 0x3B, 0x47, 0xD9, 0xD9, 0x68, 0x03, -0x94, 0xEE, 0xFC, 0x0D, 0xFF, 0x9F, 0x39, 0xCC, 0xFF, 0xF2, -0x1B, 0x12, 0xFB, 0xF6, 0xE3, 0x9E, 0xD5, 0x0D, 0x36, 0xEF, -0xB5, 0x40, 0xA6, 0x73, 0x3F, 0xDB, 0x00, 0x9E, 0x6A, 0xEA, -0xD3, 0x7C, 0x58, 0xBF, 0xAE, 0x4D, 0x52, 0x53, 0x2E, 0x53, -0x25, 0x2D, 0x97, 0x51, 0xB8, 0x79, 0x05, 0xC6, 0x7D, 0x61, -0xC4, 0xF7, 0x7F, 0x8C, 0xFA, 0x48, 0x04, 0xCB, 0x34, 0xE7, -0xA1, 0x47, 0x05, 0x95, 0xCF, 0x59, 0xE5, 0x8F, 0xBB, 0x79, -0x35, 0x20, 0xAB, 0x5B, 0xB5, 0x8A, 0xEA, 0xBF, 0x61, 0x9F, -0x6A, 0x9E, 0x12, 0x6B, 0x29, 0x9C, 0xC4, 0xBA, 0x07, 0x1F, -0x71, 0x0A, 0x9D, 0x6D, 0x2A, 0xC9, 0x54, 0xA5, 0x15, 0x49, -0x67, 0x89, 0x7F, 0x17, 0x80, 0x80, 0x2E, 0x12, 0x2D, 0xB9, -0x99, 0x73, 0xE6, 0x29, 0x0C, 0x53, 0xBC, 0xA6, 0xF5, 0x09, -0xC4, 0x3B, 0xB7, 0x38, 0x42, 0x02, 0x76, 0xC9, 0xE0, 0x60, -0xAE, 0x24, 0x73, 0xCA, 0xBA, 0x5B, 0x64, 0xDB, 0x1D, 0xFF, -0x68, 0xDF, 0xD6, 0xF4, 0x0B, 0xDB, 0x8F, 0x72, 0x6E, 0x6E, -0x30, 0x6E, 0xDD, 0x82, 0x41, 0x82, 0x8B, 0x53, 0xC9, 0x93, -0x78, 0x4E, 0xEE, 0x7D, 0x39, 0x60, 0x0E, 0xA8, 0x68, 0x9F, -0x4C, 0x1C, 0x78, 0xB2, 0xBF, 0xEF, 0x95, 0xAF, 0x3D, 0x00, -0xAF, 0xBF, 0x31, 0xFA, 0xD8, 0x53, 0xCF, 0x6E, 0xFB, 0x94, -0x33, 0x73, 0x9A, 0x53, 0xC5, 0x44, 0x30, 0x68, 0x97, 0x00, -0x39, 0x7B, 0x17, 0x80, 0x95, 0xB5, 0x5E, 0x4D, 0x0E, 0x1F, -0xFE, 0x6C, 0xFB, 0xDE, 0xD1, 0xD1, 0x6F, 0xB1, 0xA2, 0x31, -0x25, 0xFA, 0x7F, 0x61, 0xF6, 0xC1, 0xFF, 0x01, 0x59, 0x9D, -0x93, 0x96, 0xAE, 0x48, 0x48, 0x15, 0x00, 0x00, 0x00, 0x00, -0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Open1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x03, 0x81, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0x9D, 0x55, 0x5B, 0x6B, 0x13, 0x41, 0x14, -0x3E, 0xB3, 0xB3, 0xDD, 0xCD, 0x65, 0x37, 0x4D, 0xC4, 0x60, -0x55, 0x8A, 0x36, 0x50, 0xEF, 0x5A, 0xB5, 0x5E, 0xA3, 0x48, -0x45, 0x11, 0x41, 0xA4, 0x2A, 0xE8, 0x93, 0xE0, 0x83, 0xE8, -0x43, 0x2B, 0x3E, 0x48, 0x8B, 0xFA, 0xE0, 0x1F, 0x10, 0x04, -0x41, 0xC1, 0x27, 0x45, 0x14, 0x11, 0x7D, 0x16, 0x7C, 0x13, -0xA1, 0xFA, 0x28, 0x3E, 0xA8, 0x78, 0x41, 0xA8, 0x25, 0x6A, -0xB5, 0xDA, 0xDA, 0x34, 0x4D, 0xD3, 0x24, 0xBB, 0x73, 0x3C, -0xB3, 0x49, 0xB6, 0x49, 0x76, 0x13, 0x2F, 0x27, 0x0C, 0x93, -0xDD, 0xCC, 0x7C, 0xE7, 0x3B, 0xDF, 0x77, 0x66, 0xC2, 0xC0, -0x27, 0x5E, 0x3C, 0x3A, 0xDF, 0x19, 0x0C, 0x68, 0x2A, 0x63, -0x0C, 0xE4, 0x00, 0x45, 0xCE, 0x4A, 0xCD, 0xF7, 0xBC, 0xAD, -0xC3, 0x68, 0xA6, 0x2D, 0x32, 0x93, 0xF9, 0x61, 0x8F, 0xA6, -0x5E, 0xCD, 0x08, 0x6B, 0x96, 0xA9, 0xCC, 0x4A, 0x9F, 0xBE, -0xF0, 0xE0, 0x73, 0x35, 0x16, 0xAF, 0x07, 0x3F, 0xB2, 0x7F, -0x3D, 0x3B, 0xB8, 0x77, 0xDD, 0xBB, 0x68, 0xD4, 0x1C, 0x0C, -0x85, 0x43, 0xFD, 0x61, 0x23, 0xD4, 0x17, 0x36, 0x8D, 0x33, -0x46, 0x24, 0xDC, 0x1F, 0x8E, 0x18, 0xFD, 0x41, 0x23, 0xDA, -0xC7, 0xC2, 0x4B, 0xCF, 0xA8, 0x46, 0xA2, 0x8F, 0xD6, 0x9C, -0x6A, 0x8B, 0xEB, 0xA7, 0xD7, 0x2E, 0x9B, 0xD7, 0xB7, 0x3A, -0x11, 0xEB, 0xFF, 0x96, 0xFA, 0xD0, 0xF5, 0x76, 0x38, 0x7D, -0x77, 0x6C, 0x3C, 0xEB, 0xE2, 0x29, 0xF5, 0x09, 0x34, 0x3D, -0xCC, 0x50, 0x20, 0x9B, 0x35, 0xF7, 0x40, 0x36, 0xD2, 0x0B, -0x59, 0xB3, 0x17, 0x32, 0xA1, 0x03, 0x90, 0xCA, 0x27, 0xC1, -0x0A, 0xAD, 0x04, 0x6E, 0xB4, 0x43, 0x2C, 0xC2, 0x20, 0x6E, -0x4C, 0x40, 0x3C, 0x34, 0x06, 0x51, 0x7D, 0x1A, 0x54, 0x40, -0x10, 0x85, 0x3C, 0x08, 0x5B, 0x70, 0xCB, 0xB2, 0x6B, 0xF0, -0x3C, 0x09, 0xBA, 0x93, 0xFB, 0x97, 0xF0, 0xF9, 0x3B, 0x82, -0xC8, 0x4D, 0x54, 0x14, 0x8E, 0x48, 0xEF, 0x84, 0x40, 0x1C, -0xF9, 0x34, 0x8C, 0xB1, 0x88, 0x8D, 0xE1, 0x90, 0x06, 0x5C, -0x0D, 0x20, 0x28, 0x2D, 0x24, 0x15, 0x47, 0xA0, 0x81, 0x76, -0x01, 0x80, 0x58, 0xC9, 0xFD, 0x58, 0x87, 0xE7, 0x49, 0xD0, -0xA2, 0x9B, 0x8B, 0xD4, 0xC8, 0xF2, 0xA0, 0xC2, 0x35, 0x12, -0x5C, 0xCA, 0x2E, 0x27, 0x60, 0x42, 0x88, 0xB2, 0x01, 0xB4, -0x85, 0x71, 0x7A, 0xCB, 0x9D, 0x19, 0xD0, 0x66, 0xC2, 0xCE, -0x3B, 0x6B, 0x6C, 0x62, 0x22, 0x04, 0x36, 0x4F, 0xD0, 0xD1, -0xD1, 0x71, 0xAE, 0x62, 0xAE, 0xA2, 0x28, 0xEE, 0x60, 0x0A, -0x2B, 0x2F, 0xE7, 0xA5, 0x99, 0x95, 0x66, 0x51, 0x9C, 0x9E, -0xDB, 0x5C, 0x4F, 0x9F, 0x42, 0xAD, 0x7F, 0x31, 0x34, 0x34, -0x74, 0xBF, 0xBB, 0xBB, 0xFB, 0x70, 0xF5, 0x72, 0x4A, 0x86, -0xB2, 0x73, 0x5C, 0xE0, 0x92, 0x34, 0x44, 0x7E, 0x06, 0x11, -0x2D, 0x17, 0xDE, 0x07, 0xDF, 0x5B, 0xC1, 0xF3, 0x67, 0x4F, -0x1F, 0xE7, 0x67, 0xB3, 0x39, 0x62, 0xCD, 0xCA, 0x03, 0x9C, -0xD9, 0x29, 0x4B, 0x96, 0x51, 0x96, 0x46, 0x1A, 0x5B, 0x9C, -0x72, 0x64, 0xAC, 0xF0, 0xF0, 0x2B, 0xC1, 0x93, 0xC0, 0xD0, -0x0B, 0xB9, 0xDC, 0xC4, 0xFB, 0x5C, 0xB5, 0x3C, 0x8E, 0x44, -0xAC, 0x2C, 0x91, 0x3C, 0x0F, 0x94, 0x04, 0x8B, 0x93, 0xF4, -0x2C, 0x7C, 0x38, 0xD7, 0x26, 0xF1, 0x48, 0xA4, 0xAB, 0xC4, -0x2C, 0xFB, 0x91, 0x40, 0xB7, 0xB9, 0x2B, 0x49, 0x07, 0xEA, -0xA8, 0x39, 0x0F, 0x10, 0x67, 0x51, 0x58, 0x53, 0xF5, 0x68, -0xE8, 0x83, 0xEF, 0xAD, 0x80, 0xA8, 0x42, 0x0B, 0xA6, 0x21, -0x97, 0xFD, 0x55, 0x23, 0x11, 0x73, 0xE4, 0x91, 0x33, 0x25, -0xB0, 0x7E, 0x56, 0xE4, 0xA8, 0x95, 0xC8, 0x7D, 0xD5, 0xA4, -0x02, 0xF9, 0xBB, 0xAA, 0x72, 0xC8, 0xE7, 0xA6, 0xD0, 0x6C, -0x8D, 0xBB, 0x15, 0x48, 0x89, 0x50, 0xF2, 0x21, 0x53, 0xD1, -0x4A, 0x57, 0x78, 0x7A, 0x2B, 0x80, 0x3F, 0xB4, 0x29, 0x93, -0x9F, 0x32, 0x57, 0x19, 0xAE, 0xC9, 0x8A, 0x52, 0xEA, 0x5D, -0xEB, 0x87, 0x04, 0xA9, 0x32, 0xB6, 0xDA, 0xE4, 0xBF, 0x38, -0x68, 0x95, 0x08, 0x04, 0x02, 0x50, 0x2C, 0x16, 0x6B, 0x4D, -0x46, 0x41, 0xAD, 0x39, 0xDE, 0x68, 0x8B, 0x6F, 0x78, 0x12, -0xAC, 0xE8, 0x5C, 0xE8, 0x90, 0xE1, 0xAA, 0x2A, 0xA5, 0xA9, -0xEA, 0x24, 0x4A, 0x60, 0x8D, 0x51, 0x12, 0xDB, 0x07, 0xA6, -0x71, 0x78, 0x3C, 0x38, 0xB4, 0xAF, 0xEB, 0x6A, 0x50, 0x57, -0x4D, 0x5D, 0xD3, 0xB0, 0x08, 0xF2, 0x1E, 0x12, 0x32, 0x41, -0xE9, 0xA0, 0x09, 0x97, 0x7D, 0x13, 0x0F, 0x9A, 0x54, 0xB0, -0x3B, 0xB9, 0x9C, 0x45, 0xDB, 0x56, 0xF7, 0xC6, 0x96, 0xF4, -0xB4, 0x70, 0xCE, 0x99, 0xAE, 0xEB, 0xCC, 0xB2, 0x2C, 0xC7, -0x03, 0xF9, 0x0C, 0x75, 0x7A, 0x83, 0x8F, 0x07, 0x4D, 0x13, -0x48, 0x0A, 0x4C, 0xA1, 0xA2, 0x14, 0xCD, 0xBD, 0x8B, 0xE4, -0x4C, 0xE0, 0x30, 0x3F, 0xBE, 0x00, 0x3E, 0xA5, 0x9A, 0xCB, -0xE3, 0x57, 0x82, 0xB7, 0x4D, 0x2B, 0x74, 0xE8, 0xFE, 0x91, -0xED, 0x14, 0x0C, 0x06, 0xA5, 0xD9, 0xD8, 0xDA, 0x1A, 0x85, -0x89, 0xAF, 0x72, 0xB9, 0x5D, 0x8D, 0x55, 0x2B, 0x91, 0x4F, -0x06, 0x9F, 0x2E, 0x2A, 0x55, 0x9A, 0x1E, 0x4F, 0xB1, 0xF1, -0xEF, 0xC3, 0xF4, 0xE7, 0x63, 0x4B, 0x1F, 0x4A, 0x6D, 0xFA, -0x1F, 0x12, 0xD5, 0x54, 0x50, 0x28, 0x58, 0x50, 0x9C, 0xFE, -0x02, 0xF9, 0x49, 0x22, 0x3F, 0x39, 0x02, 0x74, 0x67, 0xC2, -0x94, 0x7E, 0x00, 0xD2, 0x99, 0x3C, 0x98, 0xB1, 0xC5, 0x8D, -0x8A, 0xAD, 0xE6, 0x86, 0x96, 0xED, 0xEB, 0xF5, 0x5C, 0x6C, -0xDA, 0x90, 0x58, 0xBF, 0x79, 0x63, 0x62, 0x57, 0x65, 0xAC, -0x5D, 0xD5, 0xBE, 0xBB, 0x6B, 0x4D, 0x47, 0xCF, 0xE0, 0xE0, -0xC0, 0xAD, 0xDB, 0x37, 0x06, 0xDE, 0x14, 0x7E, 0xDE, 0x13, -0xB9, 0xD1, 0x3B, 0x22, 0x33, 0x72, 0x53, 0x7C, 0x7F, 0x7D, -0x6D, 0xE6, 0xC9, 0xC3, 0xC1, 0x97, 0x57, 0x2E, 0x1D, 0xBD, -0x73, 0xF2, 0xD8, 0xF6, 0x81, 0xE4, 0x86, 0xF6, 0x2D, 0x7F, -0x66, 0xD1, 0x20, 0x48, 0xA2, 0xD6, 0xE3, 0x47, 0x93, 0x17, -0xAF, 0x5F, 0x3E, 0x71, 0xEB, 0xD4, 0xF1, 0x9E, 0xB3, 0x5B, -0x37, 0x26, 0x76, 0x46, 0xCC, 0x40, 0x2C, 0xA0, 0xAB, 0x1A, -0x8D, 0x86, 0x07, 0xF6, 0x5F, 0x42, 0xDE, 0x1C, 0xAA, 0xAE, -0xFD, 0x1B, 0xD8, 0x6F, 0xB7, 0x0F, 0x3D, 0x51, 0x8F, 0x05, -0x15, 0x71, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, -0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Options1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x04, 0x6B, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0x63, 0x60, 0x20, 0x03, 0x6C, 0xDB, 0xBE, -0x43, 0x73, 0xE7, 0xAE, 0x5D, 0xE2, 0xC4, 0xA8, 0x65, 0x22, -0xD5, 0xF0, 0xB2, 0xDA, 0xB6, 0x60, 0x45, 0x65, 0xB5, 0x73, -0x7A, 0x7A, 0x7A, 0x7B, 0xF6, 0xED, 0x3F, 0x40, 0xD0, 0x12, -0x16, 0x18, 0x63, 0xFA, 0xF4, 0xE9, 0x2E, 0x5C, 0x5C, 0x5C, -0x32, 0xF1, 0xF1, 0xF1, 0x0B, 0x70, 0x29, 0xCE, 0xCA, 0x2B, -0x56, 0x96, 0x90, 0x96, 0x59, 0x78, 0xE3, 0xCE, 0x43, 0x0E, -0x03, 0x1D, 0x75, 0x6D, 0x36, 0x36, 0xB6, 0xF8, 0xF9, 0x0B, -0x16, 0xCC, 0x4A, 0x4C, 0x48, 0xF8, 0x80, 0x4B, 0x0F, 0x33, -0x8C, 0xE1, 0xE1, 0xE1, 0xC1, 0xE9, 0xEA, 0xEA, 0xBA, 0xCE, -0xC8, 0xC8, 0x88, 0x7B, 0xC3, 0x86, 0x0D, 0xFB, 0xB0, 0x29, -0xB6, 0xB4, 0xB0, 0xE0, 0x77, 0x76, 0xB0, 0x0D, 0x79, 0xFD, -0xFE, 0xB3, 0xC0, 0xBB, 0x0F, 0x9F, 0x18, 0xA4, 0xA4, 0x24, -0xCC, 0x8D, 0x0C, 0xF4, 0xB3, 0xDC, 0x3D, 0xDC, 0x77, 0x2E, -0x5A, 0xB4, 0xE8, 0x25, 0x36, 0x3D, 0x8C, 0xC8, 0x9C, 0x49, -0x93, 0x26, 0x79, 0xF1, 0xF1, 0xF1, 0xF5, 0x7D, 0xF8, 0xF0, -0xA1, 0x00, 0x08, 0x76, 0x60, 0xD3, 0x50, 0x5C, 0x52, 0xAA, -0xA8, 0xAA, 0xAE, 0x99, 0xA7, 0xAE, 0xAE, 0x11, 0xFE, 0xE1, -0xCB, 0x4F, 0x49, 0x23, 0x3D, 0x0D, 0x06, 0x0E, 0x36, 0x96, -0xD7, 0x97, 0x2E, 0x5E, 0x74, 0x71, 0x75, 0x75, 0xB9, 0x84, -0xD7, 0x02, 0x10, 0xA8, 0xAD, 0xAD, 0x95, 0x02, 0x86, 0xEF, -0xD6, 0xD7, 0xAF, 0x5F, 0x57, 0x64, 0x65, 0x65, 0xED, 0xC4, -0xE5, 0xF5, 0x69, 0xB3, 0xE6, 0x35, 0x70, 0xF0, 0x0A, 0xD7, -0x0B, 0xF2, 0xF3, 0x31, 0x00, 0x2D, 0xF9, 0xCF, 0xC1, 0xC6, -0xFC, 0xE6, 0xDC, 0xB9, 0x73, 0x2E, 0x9E, 0x1E, 0x1E, 0x28, -0x96, 0x60, 0x58, 0x00, 0x02, 0xCD, 0xCD, 0xCD, 0x92, 0x1A, -0x1A, 0x1A, 0xDB, 0x80, 0x96, 0x54, 0x02, 0x2D, 0xC1, 0xEA, -0x93, 0xF6, 0xDE, 0xA9, 0x5B, 0x84, 0xC5, 0x24, 0xBD, 0x18, -0x19, 0x19, 0x19, 0x44, 0x84, 0x04, 0x18, 0xC0, 0x3E, 0x61, -0x65, 0x7E, 0x73, 0xF6, 0xDC, 0x59, 0x17, 0x2F, 0x4F, 0x4F, -0xB8, 0x25, 0x58, 0x2D, 0x80, 0x5A, 0x22, 0xA5, 0xAE, 0xAE, -0xBE, 0xF5, 0xCD, 0x9B, 0x37, 0x18, 0x96, 0x24, 0x67, 0x15, -0x19, 0x19, 0x9B, 0x5A, 0x9C, 0x64, 0x01, 0x02, 0xB0, 0x21, -0x8C, 0x8C, 0xFF, 0x81, 0x96, 0x30, 0x42, 0x82, 0x8B, 0xF9, -0xF5, 0xE5, 0xCB, 0x57, 0xCC, 0x5C, 0x9C, 0x9D, 0x1E, 0x80, -0xE4, 0x70, 0x26, 0x53, 0x60, 0x50, 0x3D, 0xBB, 0x79, 0xF3, -0xA6, 0xB7, 0x88, 0x88, 0x48, 0xFB, 0xB4, 0x69, 0xD3, 0xDC, -0x61, 0xE2, 0x6C, 0x96, 0xB9, 0xAC, 0x6C, 0x4A, 0x66, 0x33, -0xA4, 0x24, 0x44, 0x99, 0x41, 0xAE, 0x63, 0x67, 0x63, 0x65, -0x10, 0x17, 0x15, 0x02, 0xB2, 0xFE, 0x33, 0x9C, 0xBB, 0x74, -0x9D, 0xE1, 0xC7, 0xAF, 0xBF, 0x22, 0x52, 0x52, 0x52, 0x65, -0x04, 0x7D, 0x80, 0x1C, 0x5C, 0x40, 0x9F, 0x6C, 0x83, 0xFB, -0xC4, 0xAD, 0x63, 0x3A, 0x83, 0xB8, 0x7C, 0x7A, 0x63, 0xBC, -0x05, 0x03, 0xCB, 0xC5, 0xED, 0x47, 0x1F, 0x3F, 0xBC, 0xD7, -0xF0, 0xE5, 0xE3, 0xDB, 0x6B, 0x66, 0x26, 0xC6, 0x9E, 0xFA, -0x46, 0xE6, 0x13, 0xDF, 0x7E, 0xFC, 0xCC, 0xCD, 0xC3, 0xC1, -0x7A, 0xD8, 0xCD, 0xC9, 0xD6, 0x9E, 0x90, 0xD9, 0x28, 0xC1, -0xB5, 0x62, 0xE5, 0xAA, 0x73, 0x1E, 0x39, 0xFD, 0x0B, 0x6C, -0xC2, 0xDA, 0xFE, 0x65, 0x38, 0x84, 0xFE, 0x97, 0x2E, 0x59, -0x31, 0xD5, 0x31, 0xAE, 0x88, 0x15, 0x59, 0xDD, 0x8C, 0x59, -0xB3, 0xF3, 0x56, 0x6C, 0xD8, 0xF9, 0xAF, 0xB4, 0xA1, 0x67, -0x11, 0xD1, 0x86, 0xC3, 0x80, 0x6A, 0x58, 0x4B, 0xCD, 0xFC, -0xC5, 0x6B, 0xFE, 0x3D, 0x69, 0xCD, 0xF9, 0xB7, 0x51, 0x55, -0xE4, 0xDF, 0x64, 0x75, 0xE5, 0xEA, 0x64, 0x4E, 0x4E, 0xD6, -0x20, 0x46, 0x44, 0x28, 0x64, 0x64, 0xE5, 0xA8, 0xCC, 0x5F, -0xB1, 0xE9, 0x5F, 0x78, 0x72, 0x91, 0x0F, 0x4C, 0x8C, 0x60, -0x51, 0x01, 0x8C, 0x47, 0x5F, 0x3E, 0x71, 0xF9, 0x8D, 0x92, -0xDF, 0x3E, 0x35, 0x59, 0x1D, 0x59, 0xC1, 0x28, 0xF0, 0xEF, -0x3E, 0x83, 0x4D, 0x59, 0x11, 0xA3, 0x9E, 0x2C, 0xBF, 0x8F, -0x19, 0x3B, 0xD3, 0x4B, 0xCE, 0xFF, 0x0C, 0xF3, 0xC3, 0xA1, -0x25, 0x02, 0x23, 0x23, 0x13, 0xCB, 0xBD, 0xFB, 0x0F, 0x8E, -0x7E, 0x7C, 0xF7, 0x72, 0x2B, 0xB1, 0x16, 0x84, 0xB3, 0xB2, -0xB2, 0xAE, 0x91, 0x16, 0xE2, 0xF2, 0x53, 0x7B, 0xB2, 0x83, -0xE1, 0xC8, 0xE6, 0x3D, 0xFF, 0x3F, 0xFC, 0x94, 0xFD, 0xCF, -0xA5, 0xAE, 0xC2, 0xA0, 0x6D, 0xAD, 0x6F, 0xAE, 0x2C, 0x21, -0x28, 0x68, 0x22, 0xCC, 0x1F, 0xC7, 0xC3, 0xC8, 0x30, 0x37, -0x8C, 0x93, 0x83, 0x59, 0x44, 0x80, 0x4F, 0xF5, 0xC3, 0x9B, -0x97, 0x09, 0x3B, 0xD6, 0x2F, 0xFD, 0x0F, 0x77, 0x20, 0x3E, -0xC3, 0x81, 0x29, 0x68, 0x91, 0xA0, 0xA0, 0x20, 0x2B, 0x30, -0x55, 0x30, 0x5C, 0xFB, 0xFE, 0xFD, 0x1D, 0x1B, 0x03, 0x7B, -0x81, 0xC0, 0xBA, 0xED, 0xEE, 0x16, 0xCF, 0x1F, 0xC4, 0xFC, -0x66, 0x61, 0x67, 0xE0, 0x15, 0xE2, 0x65, 0xD0, 0x60, 0x64, -0x02, 0x42, 0xC6, 0xD8, 0x8B, 0xEF, 0x3F, 0x31, 0x3C, 0x58, -0xB3, 0x3A, 0x6B, 0xF1, 0xCD, 0x9B, 0x5F, 0x09, 0x85, 0x0A, -0x28, 0x5D, 0x87, 0xB3, 0xB3, 0xB3, 0xFF, 0x54, 0x55, 0x55, -0xFD, 0xE7, 0xE8, 0xE8, 0xF8, 0xCF, 0xDC, 0xDC, 0xFC, 0xBD, -0xA4, 0x84, 0x84, 0x15, 0x48, 0xAE, 0x99, 0x93, 0xED, 0xDA, -0x62, 0x11, 0x9E, 0x7F, 0xA7, 0x2C, 0x35, 0xFF, 0x5D, 0xF6, -0xB2, 0xFA, 0x77, 0xC2, 0x52, 0xE3, 0xDF, 0x0E, 0x2D, 0xB9, -0x7F, 0x13, 0x45, 0x04, 0xFE, 0x25, 0x33, 0x32, 0x2C, 0x8C, -0xC0, 0xEF, 0x68, 0x88, 0xCB, 0x85, 0x84, 0x84, 0x40, 0x86, -0xFF, 0x77, 0x72, 0x72, 0xFA, 0x6F, 0x65, 0x65, 0xF5, 0x5E, -0x52, 0x52, 0xD2, 0x0A, 0x2E, 0xC9, 0xC8, 0x18, 0xDF, 0x27, -0x2B, 0xF1, 0x7B, 0x06, 0x1F, 0xC7, 0xBF, 0x93, 0x16, 0x1A, -0xFF, 0x81, 0x96, 0xFC, 0x07, 0x5B, 0xA2, 0x29, 0xF7, 0x7F, -0xA2, 0x08, 0x3F, 0xCC, 0x12, 0x66, 0xAC, 0x26, 0x33, 0x31, -0x31, 0x85, 0x03, 0x0B, 0xBB, 0x9F, 0x6A, 0x6A, 0x6A, 0x20, -0x97, 0xFF, 0xB7, 0xB4, 0xB4, 0x7C, 0x2F, 0x01, 0x75, 0x39, -0x32, 0x48, 0x60, 0x67, 0x8D, 0x9F, 0x20, 0x2F, 0x05, 0xB2, -0xE4, 0x3F, 0xD4, 0x12, 0x90, 0x4F, 0xFE, 0x23, 0x5B, 0x12, -0x89, 0xC5, 0x92, 0x70, 0x0E, 0x0E, 0x8E, 0x9F, 0xC0, 0x32, -0x08, 0x1C, 0x2C, 0x16, 0x16, 0x16, 0x28, 0x2E, 0xC7, 0x63, -0x09, 0xC8, 0x27, 0xF0, 0xE0, 0xDA, 0xA9, 0x2D, 0xFF, 0x6F, -0x32, 0x30, 0xB8, 0xB2, 0x99, 0x18, 0x17, 0xC4, 0x33, 0x33, -0x82, 0x93, 0x30, 0x37, 0x10, 0xA7, 0x8A, 0x8A, 0x8A, 0xFE, -0x54, 0x51, 0x51, 0xF9, 0xEF, 0xEC, 0xEC, 0x8C, 0x11, 0x2C, -0x78, 0x2D, 0x91, 0x93, 0x42, 0x04, 0x97, 0xB7, 0xF5, 0xFF, -0xD3, 0xCE, 0x46, 0xFF, 0xF6, 0x1B, 0xAB, 0xFE, 0x5F, 0x2A, -0x21, 0xF0, 0x2F, 0x9F, 0x93, 0x4D, 0x0D, 0xA4, 0x4E, 0x0E, -0x18, 0xA1, 0x77, 0x41, 0xC1, 0x02, 0x0A, 0x73, 0x90, 0xCB, -0xB1, 0x05, 0x0B, 0x21, 0x9F, 0xCC, 0xE4, 0xE3, 0xFC, 0x7F, -0xCE, 0xD9, 0xF0, 0xFF, 0xDD, 0xE4, 0xA0, 0x7F, 0xAF, 0x1A, -0x73, 0xFE, 0x5F, 0x8B, 0xF0, 0xF8, 0x52, 0x2D, 0x2A, 0x20, -0x00, 0x56, 0x24, 0x20, 0x20, 0xA0, 0x00, 0x34, 0xF8, 0x2E, -0x30, 0xCC, 0x3F, 0x02, 0x93, 0x26, 0xD1, 0x86, 0xC3, 0x80, -0x1F, 0x2B, 0x4B, 0xFC, 0x64, 0x79, 0xC9, 0xDF, 0xCB, 0xA4, -0x04, 0xFF, 0x3D, 0xCC, 0x0A, 0xFB, 0xF7, 0xF3, 0xF4, 0x96, -0x7F, 0x9B, 0x33, 0x63, 0x0B, 0x50, 0x14, 0x01, 0x5D, 0xAD, -0xC0, 0xCB, 0xCB, 0xDB, 0x0C, 0x64, 0xEA, 0x90, 0x8A, 0x81, -0xB1, 0xA9, 0x63, 0xC8, 0xC4, 0xD4, 0x34, 0x91, 0x9F, 0xEB, -0xEB, 0x21, 0x7B, 0xA3, 0x17, 0x1B, 0x22, 0x7C, 0x33, 0x70, -0x39, 0x86, 0x03, 0x88, 0x79, 0xC8, 0xC5, 0x92, 0x8C, 0x0C, -0x82, 0xC1, 0x5C, 0xEC, 0x28, 0xF9, 0x00, 0x00, 0x44, 0x5A, -0xA4, 0x22, 0x92, 0xC8, 0x77, 0x80, 0x00, 0x00, 0x00, 0x00, -0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Pad1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x04, 0x71, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xED, 0x54, 0x6D, 0x4C, 0x5B, 0x65, 0x14, -0x7E, 0x6E, 0x3F, 0xE0, 0xDE, 0xB6, 0xD0, 0x96, 0xAF, 0x31, -0x10, 0x18, 0x83, 0x31, 0xC5, 0xCA, 0xA7, 0x63, 0xA0, 0x82, -0x5B, 0x54, 0xE6, 0x0C, 0x0C, 0x31, 0x4E, 0x60, 0x6C, 0x03, -0xB6, 0x80, 0x31, 0x46, 0xA7, 0x2E, 0x3A, 0x25, 0x9B, 0x6E, -0x9A, 0x18, 0xF7, 0xC3, 0x25, 0xB0, 0xA8, 0x13, 0x37, 0xED, -0xA6, 0xC8, 0x40, 0xB3, 0x4F, 0xC4, 0x31, 0x8D, 0x51, 0x97, -0x08, 0x66, 0x06, 0x37, 0xD4, 0xCC, 0xF5, 0x43, 0xA0, 0x95, -0xB5, 0x40, 0x47, 0x81, 0x01, 0xBD, 0xFD, 0xA2, 0x9E, 0xB7, -0x4A, 0xB2, 0x44, 0x13, 0x71, 0x7F, 0xFC, 0xA1, 0xA7, 0x39, -0xCD, 0xBD, 0xEF, 0x39, 0xCF, 0x73, 0xEE, 0x79, 0xDE, 0xF7, -0xBC, 0xC0, 0xFF, 0xF6, 0x6F, 0x1B, 0x37, 0xFF, 0x30, 0xE6, -0x9C, 0xE2, 0x03, 0x81, 0x40, 0xAD, 0xCF, 0xE7, 0x5B, 0x22, -0x93, 0xC9, 0x26, 0x38, 0x8E, 0x6B, 0x8D, 0xD6, 0x86, 0x5B, -0x17, 0x42, 0x42, 0xD8, 0x04, 0xC2, 0x56, 0x13, 0x56, 0x43, -0xD8, 0x41, 0xC2, 0xEA, 0x09, 0x2B, 0xB2, 0x98, 0x6C, 0x3E, -0xC9, 0x25, 0xBA, 0xEB, 0xBD, 0x5E, 0x6F, 0xB3, 0xD7, 0xE7, -0x03, 0x25, 0x31, 0xCF, 0xA3, 0xE5, 0x87, 0x16, 0x52, 0x60, -0xC6, 0x25, 0x36, 0x11, 0x79, 0x39, 0x39, 0xE4, 0x84, 0x95, -0x93, 0xD1, 0xF2, 0x7E, 0x16, 0x93, 0xB0, 0xBF, 0x8B, 0x3F, -0x9B, 0xE5, 0x32, 0xA9, 0xA4, 0x41, 0xA5, 0x10, 0xA0, 0x0E, -0x53, 0x42, 0x08, 0x0D, 0x41, 0x20, 0x30, 0x57, 0x7C, 0xE1, -0x92, 0x29, 0xEA, 0xEF, 0xC8, 0x59, 0x0E, 0xCB, 0x65, 0x18, -0x86, 0x55, 0x29, 0x05, 0x30, 0x2E, 0xC6, 0x19, 0xEC, 0xE0, -0x07, 0xC3, 0x00, 0x17, 0x13, 0xA9, 0x6D, 0xA1, 0x0A, 0xBA, -0x59, 0x97, 0x0B, 0x4E, 0xA7, 0x13, 0x0A, 0xA5, 0x0A, 0x52, -0xA9, 0x54, 0xA9, 0x54, 0xF0, 0x97, 0x2D, 0xB6, 0xD1, 0x29, -0x6A, 0xF9, 0x2F, 0xC9, 0x49, 0x16, 0xB8, 0x3D, 0x9E, 0x70, -0x8A, 0x2A, 0x07, 0x07, 0x07, 0x70, 0xEA, 0x74, 0x2B, 0x36, -0x55, 0x3F, 0x86, 0xB8, 0xB8, 0x38, 0x5D, 0x6C, 0x74, 0x64, -0x0B, 0x71, 0x6F, 0x91, 0xEE, 0xDE, 0xBD, 0xA7, 0x80, 0xF0, -0xCD, 0x2E, 0x97, 0xC8, 0xF5, 0xF7, 0xF7, 0x63, 0xD7, 0xCE, -0x9D, 0x48, 0x4C, 0x5A, 0x02, 0x55, 0x58, 0x18, 0x23, 0x10, -0x42, 0xE4, 0x72, 0x8D, 0x52, 0xE0, 0x35, 0xD4, 0xFA, 0x9F, -0xDC, 0xE3, 0xF5, 0x6A, 0x66, 0x5D, 0xA2, 0x20, 0xBA, 0x45, -0x8C, 0xD8, 0x6D, 0xE8, 0x3C, 0x7D, 0x02, 0x05, 0xF9, 0x85, -0x10, 0x04, 0x05, 0x93, 0x29, 0x53, 0x21, 0xF0, 0x67, 0x39, -0xDA, 0xA0, 0x17, 0x3D, 0x6E, 0xF7, 0x9E, 0x8E, 0x8F, 0x3A, -0x30, 0x34, 0x34, 0x84, 0x65, 0x69, 0x69, 0xB8, 0xD0, 0xD7, -0x07, 0x5D, 0x46, 0x26, 0xEE, 0x2A, 0xBA, 0x1B, 0x02, 0xCF, -0x23, 0xE0, 0xF7, 0xC1, 0x60, 0x34, 0xA1, 0x60, 0x65, 0x1E, -0x38, 0x09, 0x87, 0x9E, 0xDE, 0x6F, 0x71, 0x6B, 0x7A, 0x3A, -0xBC, 0xFE, 0x39, 0x98, 0x8C, 0x06, 0x7C, 0xD1, 0x7E, 0x0A, -0xA5, 0x5B, 0x2A, 0x91, 0x98, 0x98, 0x84, 0x5F, 0x4C, 0x46, -0x7C, 0xF2, 0xE1, 0x11, 0x6C, 0x7D, 0xE6, 0x39, 0xC4, 0xC5, -0xDF, 0xF4, 0x12, 0x67, 0x77, 0x38, 0x5F, 0xF6, 0xFB, 0xFD, -0xBB, 0x3A, 0x3A, 0x3A, 0x60, 0x36, 0x9B, 0xA1, 0xD6, 0xA8, -0x61, 0xB5, 0x58, 0x91, 0x93, 0x7B, 0x3B, 0xEE, 0x2C, 0x2C, -0x22, 0xA9, 0x24, 0xB8, 0x36, 0x35, 0x89, 0xF3, 0xE7, 0xBF, -0x43, 0xD9, 0xBA, 0x75, 0xC1, 0x02, 0xC7, 0x8E, 0x9D, 0x40, -0x5E, 0xDE, 0x0A, 0x84, 0xAB, 0xD5, 0x18, 0xB6, 0x5A, 0x71, -0xF2, 0xFD, 0x36, 0x54, 0x34, 0xD4, 0x31, 0x69, 0xF0, 0xAB, -0xC5, 0x82, 0xE3, 0x1F, 0xE8, 0xF1, 0xF8, 0xB3, 0x2F, 0x20, -0x3A, 0x26, 0xE6, 0x15, 0xE9, 0xA6, 0xBA, 0xFA, 0xE5, 0x72, -0xB9, 0xAC, 0x64, 0x69, 0x4A, 0x0A, 0x78, 0x41, 0x40, 0x7B, -0x5B, 0x1B, 0xD6, 0x57, 0x56, 0xE1, 0xB6, 0xCC, 0x2C, 0x04, -0xE8, 0x27, 0x97, 0x4A, 0xA1, 0xD5, 0x46, 0x04, 0x65, 0x23, -0x49, 0xE0, 0xF1, 0x78, 0x91, 0x9A, 0x9A, 0x4A, 0x6B, 0x1A, -0xF8, 0xE8, 0x3D, 0x94, 0x30, 0x99, 0xF9, 0x2B, 0x31, 0x62, -0xBB, 0x82, 0x83, 0x6F, 0xEB, 0x91, 0x9D, 0x9B, 0x85, 0xFB, -0xCB, 0xCA, 0x21, 0x28, 0x14, 0x18, 0x77, 0x4E, 0x1E, 0x95, -0x96, 0x57, 0x6C, 0xC8, 0x50, 0x2A, 0x84, 0x32, 0x9F, 0xCF, -0x4F, 0xA0, 0x48, 0xAC, 0x59, 0xBB, 0x96, 0xBA, 0xD0, 0xC2, -0xE1, 0x9C, 0x84, 0xBE, 0xB3, 0x07, 0x6D, 0x9F, 0x7E, 0x83, -0x61, 0xFB, 0x08, 0xEE, 0xC8, 0xBA, 0x19, 0x5D, 0x67, 0xCE, -0xC2, 0x60, 0x30, 0x22, 0x43, 0x97, 0x8E, 0x37, 0x8F, 0x76, -0xE1, 0xD0, 0xC9, 0x73, 0x30, 0x58, 0xC7, 0x90, 0xBC, 0x58, -0x0B, 0xCC, 0xCD, 0xC1, 0x48, 0xB1, 0xEC, 0xDC, 0x1C, 0xDA, -0x03, 0x81, 0x5E, 0x03, 0x84, 0x1B, 0x3D, 0xCE, 0x75, 0x7F, -0xDD, 0x5B, 0x93, 0x9A, 0x9C, 0xA8, 0x97, 0x4A, 0x24, 0x70, -0x8C, 0x4F, 0x80, 0xCD, 0x01, 0xCD, 0x03, 0x3E, 0xFE, 0xAC, -0x17, 0x17, 0xCD, 0xA3, 0x10, 0x45, 0x17, 0x1C, 0x8E, 0x31, -0xBC, 0xBA, 0xAD, 0x1A, 0x2A, 0x81, 0x0F, 0x9E, 0x9E, 0x69, -0x97, 0x88, 0xC6, 0xA6, 0x56, 0x44, 0x45, 0x45, 0x83, 0xE7, -0xA9, 0x83, 0x94, 0x18, 0x3C, 0x5C, 0x9C, 0x4F, 0x33, 0x20, -0x0F, 0xCE, 0x41, 0x54, 0x84, 0x06, 0x7E, 0x2A, 0x68, 0x1A, -0xB0, 0xD4, 0x72, 0xDD, 0x5F, 0xF5, 0x6E, 0x4E, 0x49, 0x4E, -0x3C, 0x4C, 0xC7, 0x0A, 0xFD, 0x97, 0x4C, 0x18, 0x19, 0x73, -0x20, 0x31, 0x3E, 0x16, 0x2D, 0xED, 0x5D, 0x38, 0xF7, 0xBD, -0x91, 0x0A, 0x7A, 0x83, 0x7B, 0xB0, 0x77, 0x7B, 0xAD, 0xA8, -0x0E, 0x53, 0x35, 0xB1, 0x02, 0x93, 0xD7, 0xA6, 0xB7, 0xED, -0x78, 0x5D, 0xCF, 0x87, 0x85, 0xAB, 0x83, 0xA4, 0x85, 0xD9, -0xCB, 0xD0, 0x50, 0xF1, 0x00, 0x2C, 0xC3, 0x76, 0x2C, 0x8A, -0x8E, 0x42, 0xC6, 0x2D, 0xA9, 0xB0, 0x8F, 0x5D, 0x85, 0x79, -0xC0, 0x52, 0xC3, 0x06, 0xCD, 0x37, 0x47, 0xD5, 0x98, 0xB3, -0xAF, 0x67, 0x43, 0x18, 0x19, 0xA1, 0xC5, 0x86, 0xD2, 0x55, -0xFE, 0x70, 0xFA, 0xE0, 0x49, 0xA7, 0x03, 0xAB, 0x57, 0xA4, -0x23, 0x47, 0x97, 0x76, 0xE0, 0xC1, 0xE2, 0xA2, 0xE7, 0x99, -0xB3, 0x67, 0xB6, 0xC6, 0x62, 0x2C, 0x87, 0xE5, 0x32, 0x0C, -0xC3, 0x32, 0x8E, 0x79, 0x3E, 0xC6, 0x2D, 0xDD, 0x58, 0xB7, -0x35, 0x59, 0x1D, 0x1E, 0x56, 0xA5, 0xA0, 0x29, 0xB6, 0x8D, -0x3A, 0xA0, 0x20, 0xFD, 0x22, 0x34, 0x6A, 0x1F, 0x9D, 0xE1, -0xA2, 0xEA, 0xD2, 0x7B, 0x1C, 0x95, 0x25, 0xAB, 0x6D, 0xC5, -0x85, 0x79, 0xFB, 0x69, 0x26, 0x5E, 0x7B, 0xA3, 0xB9, 0x29, -0xC0, 0x50, 0x4F, 0x3E, 0xF5, 0xF4, 0xE7, 0xF7, 0x15, 0xE6, -0x5D, 0xD9, 0x58, 0x76, 0xAF, 0xAB, 0xA6, 0x7C, 0x4D, 0x27, -0x69, 0xBE, 0x83, 0xC8, 0x6B, 0x44, 0xB7, 0x47, 0x42, 0x27, -0x92, 0xBA, 0x88, 0xC0, 0xF4, 0xCC, 0x2C, 0x26, 0xA6, 0xA6, -0x8E, 0x70, 0x67, 0xBE, 0xEC, 0xC9, 0x4E, 0x88, 0x5F, 0xDC, -0xB7, 0x88, 0x24, 0xFA, 0xF1, 0xB2, 0x39, 0xA8, 0x1F, 0xCF, -0xF3, 0xEF, 0xA4, 0x26, 0xC4, 0x36, 0x2C, 0xE4, 0x1E, 0x9A, -0x37, 0x93, 0xD5, 0xDE, 0x22, 0x8A, 0x62, 0x3D, 0xDB, 0x47, -0xDD, 0xF2, 0x14, 0x92, 0xFA, 0x2A, 0xAC, 0xC3, 0xB6, 0x1C, -0xD9, 0xF6, 0x27, 0x1E, 0xFD, 0xE9, 0xC0, 0x21, 0xBD, 0x35, -0x32, 0x42, 0x93, 0x10, 0x12, 0x22, 0xC7, 0xCC, 0xCC, 0xF4, -0xD0, 0xE6, 0xAA, 0xF5, 0x8D, 0xB8, 0xEE, 0xA6, 0x5D, 0x88, -0x3D, 0x52, 0x5E, 0xDA, 0xF8, 0xD6, 0xC1, 0xF7, 0x8A, 0x89, -0x23, 0xC9, 0x47, 0x5D, 0x8C, 0x3B, 0xC7, 0xAD, 0x8C, 0x9B, -0xC5, 0xB8, 0xAC, 0xEC, 0x9C, 0x92, 0x96, 0x77, 0x0F, 0x77, -0xEF, 0xDD, 0xD7, 0xDC, 0x95, 0xBC, 0x34, 0x65, 0x15, 0xAD, -0xA9, 0x6E, 0xC4, 0x19, 0x96, 0x71, 0x30, 0x2E, 0xC6, 0x79, -0xFD, 0x47, 0xB2, 0xF3, 0xA7, 0xF9, 0xC3, 0x43, 0xF1, 0xFB, -0x2D, 0x7B, 0x23, 0x1E, 0x7A, 0x1D, 0x0F, 0xFF, 0x4F, 0x14, -0xF8, 0x0F, 0xDB, 0x6F, 0x02, 0xB1, 0xDD, 0xD5, 0xD4, 0x39, -0x26, 0x04, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, -0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Pause1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x04, 0xD9, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0x8C, 0x56, 0x4D, 0x88, 0x1C, 0x55, 0x10, -0xFE, 0xDE, 0x7F, 0xFF, 0x4C, 0xCF, 0xEC, 0x8E, 0xEC, 0x92, -0x8D, 0x0A, 0xD1, 0x43, 0x50, 0x82, 0xE4, 0x26, 0x11, 0x0F, -0x6E, 0x16, 0x3C, 0x28, 0x39, 0x05, 0xF7, 0xAA, 0x07, 0x31, -0x37, 0x2F, 0x7A, 0xF1, 0x27, 0x28, 0x11, 0xC5, 0x8B, 0x2B, -0x01, 0x3D, 0x48, 0x8E, 0x7A, 0xF0, 0xEA, 0x25, 0x28, 0xE8, -0x1E, 0x22, 0x04, 0x72, 0x59, 0x16, 0x3C, 0x24, 0x41, 0x61, -0xC3, 0x22, 0xBB, 0x1B, 0xF6, 0x6F, 0x66, 0x77, 0x66, 0xBA, -0xA7, 0x5F, 0xBF, 0xF7, 0xCA, 0x83, 0xD3, 0x4D, 0xB2, 0xAE, -0xD1, 0x82, 0xC7, 0x34, 0xDD, 0xD3, 0x55, 0x5F, 0xD5, 0x57, -0x5F, 0x55, 0xB3, 0xDB, 0xB7, 0x6F, 0xA3, 0x36, 0x22, 0x82, -0x94, 0x12, 0x5A, 0x6B, 0x30, 0xC6, 0x90, 0xE7, 0x39, 0xCA, -0xB2, 0x44, 0x9A, 0xA6, 0x4F, 0x5A, 0x6B, 0x1F, 0xB7, 0xD6, -0x9E, 0x24, 0x22, 0x8A, 0xA2, 0x68, 0x63, 0x6A, 0x6A, 0x6A, -0x43, 0x08, 0xB1, 0x21, 0x84, 0x80, 0x94, 0x12, 0x21, 0x84, -0xC6, 0x0F, 0x63, 0xAC, 0xB9, 0x96, 0x78, 0x84, 0x31, 0xC6, -0xC0, 0x18, 0x7B, 0x8E, 0x73, 0x7E, 0x3E, 0x8E, 0xE3, 0xA7, -0xB4, 0xD6, 0xB3, 0x44, 0x04, 0xA5, 0xD4, 0x7D, 0xC6, 0xD8, -0x1A, 0x80, 0x9F, 0x01, 0xFC, 0xFE, 0x28, 0x1F, 0xC7, 0x06, -0x20, 0x22, 0x10, 0xD1, 0xB9, 0x34, 0x4D, 0x3F, 0xCC, 0xB2, -0xEC, 0x45, 0xAD, 0xF5, 0xB4, 0x31, 0x06, 0x44, 0x04, 0x00, -0xE0, 0x9C, 0xD7, 0x7F, 0xDD, 0x26, 0xA2, 0x1B, 0xDE, 0xFB, -0x4F, 0x89, 0xE8, 0xB7, 0x07, 0x91, 0xD7, 0xC6, 0x8F, 0xDE, -0xF0, 0xDE, 0x43, 0x4A, 0x79, 0xA5, 0xDD, 0x6E, 0xFF, 0x9A, -0xA6, 0xE9, 0x05, 0xA5, 0xD4, 0x34, 0x11, 0xC1, 0x39, 0x87, -0xA2, 0x28, 0x50, 0x14, 0x05, 0xBC, 0xF7, 0xE0, 0x9C, 0x43, -0x29, 0x35, 0xAB, 0xB5, 0x5E, 0x34, 0xC6, 0xDC, 0x14, 0x42, -0xBC, 0x53, 0x03, 0x78, 0x28, 0x00, 0xE7, 0x1C, 0xF5, 0x09, -0x21, 0x40, 0x29, 0x75, 0xAD, 0xD5, 0x6A, 0x7D, 0xC4, 0x39, -0x57, 0xDE, 0x7B, 0x84, 0x10, 0xE0, 0xBD, 0x87, 0xF7, 0x1E, -0xD6, 0x5A, 0x58, 0x6B, 0xC1, 0x18, 0x83, 0x10, 0x02, 0x44, -0x84, 0x10, 0x02, 0x84, 0x10, 0x2D, 0x63, 0xCC, 0x12, 0xE7, -0xFC, 0xF3, 0xA3, 0x41, 0xE4, 0x11, 0x82, 0x2F, 0xA7, 0x69, -0xFA, 0x96, 0x73, 0xAE, 0x2E, 0x13, 0xF2, 0x3C, 0x47, 0xBF, -0xDF, 0x47, 0xAB, 0xD5, 0x6A, 0x40, 0x00, 0x80, 0x52, 0x0A, -0x71, 0x1C, 0x43, 0x29, 0x05, 0xEF, 0x3D, 0x18, 0x63, 0x30, -0xC6, 0xBC, 0x57, 0x96, 0xE5, 0x3A, 0x11, 0x7D, 0x53, 0x97, -0x8B, 0x0B, 0x21, 0x30, 0x39, 0xCF, 0x67, 0x59, 0xF6, 0x09, -0x11, 0xA1, 0x2C, 0x4B, 0x78, 0xEF, 0x61, 0x8C, 0xC1, 0xD2, -0xD2, 0x12, 0x16, 0x17, 0x17, 0x71, 0xF5, 0xEA, 0x55, 0x68, -0xAD, 0xB1, 0xB5, 0xB5, 0x85, 0x4B, 0x97, 0x2E, 0xE1, 0xE2, -0xC5, 0x8B, 0xB8, 0x7E, 0xFD, 0x3A, 0xE2, 0x38, 0x6E, 0xB2, -0x04, 0x00, 0xAD, 0xF5, 0x17, 0x9C, 0xF3, 0xD3, 0x93, 0x06, -0x01, 0x8F, 0xA2, 0x08, 0xC6, 0x18, 0xB4, 0x5A, 0xAD, 0x8F, -0x8D, 0x31, 0x8C, 0x31, 0x06, 0xEF, 0x3D, 0xAA, 0xAA, 0x02, -0x11, 0x61, 0x65, 0x65, 0x05, 0x6B, 0x6B, 0x6B, 0x58, 0x5D, -0x5D, 0x85, 0xF7, 0x1E, 0x83, 0xC1, 0x00, 0xCB, 0xCB, 0xCB, -0xB8, 0x75, 0xEB, 0x16, 0xD6, 0xD6, 0xD6, 0x9A, 0xAC, 0xEA, -0xC3, 0x18, 0x4B, 0x95, 0x52, 0x97, 0x6B, 0xE0, 0x9C, 0x88, -0x18, 0x63, 0xEC, 0x59, 0xA5, 0xD4, 0x79, 0x21, 0x04, 0x94, -0x52, 0x30, 0xC6, 0x80, 0x73, 0x0E, 0x6B, 0x2D, 0xA2, 0x28, -0x02, 0x00, 0x08, 0x21, 0x30, 0x1A, 0x8D, 0x10, 0x42, 0x40, -0xA7, 0xD3, 0x69, 0xCA, 0x54, 0x97, 0xB3, 0x46, 0x3C, 0xB1, -0x57, 0x19, 0x63, 0x4F, 0x30, 0xC6, 0xC0, 0xCB, 0xB2, 0x3C, -0xE1, 0xBD, 0x7F, 0x19, 0x40, 0x5C, 0xD7, 0xB2, 0xAE, 0x6F, -0x1C, 0xC7, 0x10, 0x42, 0x34, 0x01, 0xC6, 0xE3, 0x71, 0x4D, -0xEA, 0x43, 0x5A, 0x11, 0x42, 0x80, 0x31, 0xD6, 0x90, 0x4E, -0x44, 0x8F, 0x39, 0xE7, 0x5E, 0xAA, 0xAA, 0x6A, 0x5A, 0x56, -0x55, 0xF5, 0x74, 0x08, 0xE1, 0x34, 0x63, 0x0C, 0x9C, 0xF3, -0xBF, 0xD3, 0x9A, 0xFC, 0x46, 0x51, 0x04, 0xAD, 0x35, 0x00, -0x20, 0x4D, 0xD3, 0xC6, 0xB9, 0x52, 0xAA, 0xC9, 0x80, 0x73, -0x8E, 0xBA, 0xDB, 0x26, 0xCE, 0x01, 0x00, 0xD6, 0xDA, 0x67, -0xBC, 0xF7, 0xAB, 0x72, 0x38, 0x1C, 0x9E, 0xE0, 0x9C, 0x77, -0x47, 0xA3, 0xD1, 0x43, 0xA8, 0xA4, 0x94, 0x0D, 0xD9, 0x00, -0x10, 0xC7, 0x31, 0xDA, 0xED, 0x36, 0x7A, 0xBD, 0x5E, 0x23, -0xB4, 0xF1, 0x78, 0x8C, 0x9D, 0x9D, 0x1D, 0x0C, 0x06, 0x83, -0xA3, 0xBD, 0x0F, 0x00, 0xD3, 0x00, 0xBA, 0x32, 0xCF, 0xF3, -0x40, 0x44, 0x54, 0xA3, 0xE0, 0x9C, 0x37, 0x69, 0x3B, 0xE7, -0xE0, 0x9C, 0x03, 0x00, 0x1C, 0x1E, 0x1E, 0x62, 0x7F, 0x7F, -0x1F, 0x5B, 0x5B, 0x5B, 0x70, 0xCE, 0x41, 0x08, 0x81, 0xA2, -0x28, 0xB0, 0xB7, 0xB7, 0x87, 0xA2, 0x28, 0x1A, 0x2D, 0xD5, -0x01, 0x38, 0xE7, 0x04, 0x80, 0xA4, 0x73, 0x6E, 0x13, 0xC0, -0x6E, 0xED, 0xA8, 0x26, 0x2B, 0x84, 0x80, 0xE1, 0x70, 0xD8, -0x04, 0x28, 0xCB, 0x12, 0x52, 0x4A, 0xC4, 0x71, 0xDC, 0x0C, -0x45, 0x6B, 0x6D, 0xC3, 0x4B, 0xAD, 0xA5, 0x07, 0xB4, 0xB2, -0x07, 0x60, 0x4F, 0x0A, 0x21, 0xEE, 0x01, 0xB8, 0xEB, 0xBD, -0x6F, 0x10, 0x3B, 0xE7, 0x30, 0x1C, 0x0E, 0x91, 0xE7, 0x39, -0xEA, 0xD2, 0x49, 0x29, 0xD1, 0xED, 0x76, 0xD1, 0xEF, 0xF7, -0x51, 0x4F, 0xD0, 0x5E, 0xAF, 0x87, 0xF5, 0xF5, 0x75, 0xB4, -0x5A, 0x2D, 0x24, 0x49, 0x02, 0xAD, 0x75, 0x13, 0x9C, 0x88, -0xEE, 0x00, 0xD8, 0x92, 0xD6, 0xDA, 0x6D, 0x22, 0xFA, 0xC5, -0x5A, 0x3B, 0x1A, 0x8D, 0x46, 0x69, 0x51, 0x14, 0x38, 0x38, -0x38, 0x40, 0xAF, 0xD7, 0x6B, 0xDA, 0xB5, 0xE6, 0x20, 0x4D, -0x53, 0x24, 0x49, 0x02, 0x29, 0x65, 0x43, 0xF0, 0xEE, 0xEE, -0x2E, 0xFA, 0xFD, 0x3E, 0xA6, 0xA6, 0xA6, 0x90, 0x65, 0x59, -0xAD, 0xEE, 0x6D, 0xCE, 0xF9, 0x0D, 0x22, 0x3A, 0x90, 0x55, -0x55, 0x01, 0xC0, 0x1F, 0x79, 0x9E, 0xFF, 0xB8, 0xB9, 0xB9, -0xF9, 0x5A, 0xBF, 0xDF, 0xC7, 0x68, 0x34, 0x02, 0xE7, 0x1C, -0x33, 0x33, 0x33, 0x4D, 0xC7, 0x48, 0x29, 0x61, 0x8C, 0x69, -0x66, 0x90, 0x73, 0x0E, 0x71, 0x1C, 0x23, 0x49, 0x12, 0xF4, -0x7A, 0x3D, 0x94, 0x65, 0x89, 0x3C, 0xCF, 0x91, 0x65, 0x19, -0xB2, 0x2C, 0xFB, 0x21, 0x4D, 0xD3, 0xFB, 0x00, 0x20, 0x37, -0x36, 0x36, 0xEA, 0x29, 0x7A, 0x65, 0x30, 0x18, 0x5C, 0xD8, -0xDE, 0xDE, 0x8E, 0x92, 0x24, 0x41, 0xBB, 0xDD, 0x6E, 0x50, -0xC7, 0x71, 0x8C, 0x4E, 0xA7, 0x03, 0xCE, 0x79, 0x53, 0x2A, -0xEF, 0x3D, 0xB4, 0xD6, 0x30, 0xC6, 0x20, 0x49, 0x12, 0x8C, -0xC7, 0x63, 0x1C, 0x1C, 0x1C, 0xC0, 0x39, 0xD7, 0x73, 0xCE, -0x7D, 0x56, 0x77, 0x96, 0x98, 0x9F, 0x9F, 0x87, 0xB5, 0x16, -0xDE, 0xFB, 0xED, 0x10, 0xC2, 0x21, 0x63, 0xEC, 0x15, 0xAD, -0x35, 0xB2, 0x2C, 0x83, 0x73, 0x0E, 0xA7, 0x4E, 0x9D, 0xC2, -0xC2, 0xC2, 0x02, 0xE6, 0xE7, 0xE7, 0xD1, 0xED, 0x76, 0x11, -0xC7, 0x31, 0xCE, 0x9C, 0x39, 0x83, 0xB3, 0x67, 0xCF, 0x62, -0x76, 0x76, 0xB6, 0x69, 0x69, 0x00, 0xF5, 0xA8, 0x78, 0x53, -0x4A, 0x79, 0xB3, 0xAA, 0x2A, 0x54, 0x55, 0x05, 0x59, 0x3F, -0x9C, 0xC8, 0xFD, 0xAB, 0xB9, 0xB9, 0xB9, 0xB9, 0x10, 0xC2, -0xFB, 0x55, 0x55, 0xA1, 0x2C, 0x4B, 0x10, 0x11, 0x3A, 0x9D, -0x0E, 0xA6, 0xA7, 0xA7, 0x1B, 0x71, 0xCD, 0xCC, 0xCC, 0xA0, -0xDF, 0xEF, 0xA3, 0x28, 0x0A, 0x54, 0x55, 0xD5, 0x8C, 0x17, -0x29, 0xE5, 0xBB, 0x21, 0x84, 0xEF, 0x6B, 0xD1, 0xFE, 0x63, -0xE1, 0x10, 0x11, 0x84, 0x10, 0x1F, 0x74, 0xBB, 0xDD, 0xB7, -0xD3, 0x34, 0xED, 0xD7, 0x9D, 0x55, 0xAB, 0xFB, 0x01, 0x20, -0x60, 0x8C, 0xA1, 0xAA, 0x2A, 0x58, 0x6B, 0x41, 0x44, 0xF7, -0x95, 0x52, 0x6F, 0x70, 0xCE, 0xBF, 0x3C, 0xBA, 0x0F, 0xF8, -0x71, 0xEB, 0x32, 0x84, 0xF0, 0xB5, 0x31, 0xE6, 0x85, 0x76, -0xBB, 0xFD, 0x5D, 0xBB, 0xDD, 0xFE, 0xB3, 0xD5, 0x6A, 0xC1, -0x18, 0xD3, 0xCC, 0x1B, 0xAD, 0x35, 0xE2, 0x38, 0x86, 0x94, -0xF2, 0x1E, 0x11, 0x5D, 0x03, 0x70, 0x0E, 0xC0, 0xB7, 0xC7, -0x6D, 0xB4, 0x7F, 0xDD, 0xC9, 0x21, 0x84, 0xBB, 0x42, 0x88, -0xD7, 0x93, 0x24, 0x39, 0xD9, 0xE9, 0x74, 0x16, 0xA4, 0x94, -0xA7, 0x89, 0x68, 0x8A, 0x31, 0x46, 0x52, 0xCA, 0x5E, 0x14, -0x45, 0x77, 0xA2, 0x28, 0x5A, 0xAE, 0xAA, 0x6A, 0xF7, 0x38, -0xC7, 0xFF, 0xEB, 0xAB, 0x62, 0xF2, 0xE2, 0x26, 0x63, 0xEC, -0x27, 0x00, 0x2B, 0x44, 0xD4, 0x05, 0x40, 0x13, 0x95, 0xEE, -0x00, 0xD8, 0xC7, 0x7F, 0xD8, 0x5F, 0x03, 0x00, 0xF2, 0xB8, -0xA7, 0xA8, 0x90, 0xD3, 0xAF, 0x66, 0x00, 0x00, 0x00, 0x00, -0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Play1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x04, 0xF0, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0x94, 0x95, 0x4F, 0x88, 0x15, 0xD9, 0x15, -0xC6, 0x7F, 0xF7, 0x6F, 0xDD, 0x57, 0xEF, 0x5F, 0xBF, 0x8E, -0xAD, 0x89, 0xE0, 0x22, 0x93, 0x81, 0x0E, 0x34, 0x59, 0x64, -0xA3, 0xA3, 0x9D, 0x5D, 0x76, 0x81, 0xEC, 0xEC, 0x75, 0xB2, -0x1C, 0x8C, 0x20, 0x01, 0x37, 0x32, 0xAD, 0xAB, 0x21, 0x0C, -0x12, 0x48, 0x56, 0x19, 0xB2, 0x0D, 0xB3, 0x75, 0x9D, 0x6D, -0xFE, 0x4C, 0x8B, 0x2B, 0xC1, 0x21, 0x4A, 0xCC, 0xD8, 0xA4, -0x83, 0xA3, 0x12, 0xEC, 0xF6, 0xBD, 0xD7, 0xBE, 0xAA, 0x57, -0x55, 0xB7, 0x6E, 0xDD, 0x2C, 0xE6, 0x55, 0x45, 0x8D, 0x38, -0xE4, 0x42, 0xC1, 0x85, 0xBA, 0xF7, 0x3B, 0xF7, 0x7C, 0xE7, -0xFB, 0xCE, 0x11, 0x0F, 0x1E, 0x3C, 0xA0, 0x5D, 0x31, 0x46, -0xB4, 0xD6, 0x58, 0x6B, 0x01, 0x28, 0x8A, 0x02, 0xEF, 0xBD, -0xE9, 0xF5, 0x7A, 0x1B, 0x65, 0x59, 0x9E, 0xAE, 0xAA, 0xEA, -0x3B, 0x31, 0xC6, 0xE8, 0x9C, 0x7B, 0x32, 0x99, 0x4C, 0x9E, -0x49, 0x29, 0x9F, 0x6B, 0xAD, 0x83, 0x94, 0xB2, 0xBB, 0x0F, -0x20, 0x84, 0xE8, 0x30, 0x35, 0xDF, 0xBC, 0x7E, 0x20, 0xA5, -0xDC, 0xEE, 0xF5, 0x7A, 0xEF, 0x59, 0x6B, 0xD7, 0x63, 0x8C, -0x18, 0x63, 0x9E, 0x0B, 0x21, 0xF6, 0x81, 0xBF, 0x02, 0x7F, -0x7B, 0xD7, 0xE5, 0xB7, 0x06, 0x58, 0xBD, 0xE4, 0x5C, 0xBF, -0xDF, 0xFF, 0x48, 0x4A, 0x79, 0xD6, 0x5A, 0x7B, 0xCA, 0x5A, -0x4B, 0x08, 0x01, 0x21, 0x04, 0x52, 0x4A, 0xA4, 0x94, 0x08, -0x21, 0x9E, 0x36, 0x4D, 0xB3, 0x57, 0xD7, 0xF5, 0xC7, 0x42, -0x88, 0x2F, 0xDE, 0x86, 0x25, 0xDF, 0x02, 0x9E, 0x28, 0xA5, -0xAE, 0x0F, 0x87, 0xC3, 0x3F, 0xA7, 0x69, 0xFA, 0x53, 0xAD, -0xF5, 0xA9, 0xA6, 0x69, 0xA8, 0xEB, 0x1A, 0xEF, 0x3D, 0x55, -0x55, 0xD1, 0x34, 0x0D, 0x42, 0x08, 0x94, 0x52, 0xA7, 0xAD, -0xB5, 0x3B, 0xBD, 0x5E, 0xEF, 0x73, 0x21, 0xC4, 0x95, 0x18, -0xA3, 0xFA, 0x9F, 0x0C, 0x5A, 0xFE, 0x00, 0xEA, 0xBA, 0x76, -0x5A, 0xEB, 0xDF, 0xF4, 0xFB, 0xFD, 0x0F, 0x85, 0x10, 0x84, -0x10, 0xA8, 0xEB, 0x9A, 0xBA, 0xAE, 0xB1, 0xD6, 0x52, 0xD7, -0x35, 0x00, 0x4A, 0x29, 0x94, 0x52, 0xDD, 0x5E, 0x08, 0x31, -0x74, 0xCE, 0xFD, 0xB6, 0x28, 0x8A, 0x53, 0x21, 0x84, 0x1B, -0x42, 0x88, 0xBA, 0x0B, 0xD0, 0x16, 0x64, 0x55, 0xE0, 0xAB, -0x69, 0x9A, 0x7E, 0x18, 0x42, 0x00, 0xA0, 0x69, 0x1A, 0x9A, -0xA6, 0xA1, 0x2C, 0x4B, 0x9A, 0xA6, 0x01, 0x20, 0x84, 0x80, -0xD6, 0xBA, 0x0B, 0x20, 0x84, 0xE8, 0x3E, 0x6B, 0xED, 0xB5, -0xB2, 0x2C, 0x1F, 0xC7, 0x18, 0x3F, 0x6D, 0x71, 0x65, 0xCB, -0xA7, 0x52, 0xEA, 0x83, 0xC1, 0x60, 0x70, 0x3D, 0xC6, 0x48, -0x55, 0x55, 0x78, 0xEF, 0x3B, 0x50, 0x80, 0x5B, 0xB7, 0x6E, -0x71, 0xFB, 0xF6, 0x6D, 0x84, 0x10, 0xC4, 0x18, 0xBB, 0x7F, -0xED, 0x3E, 0x84, 0xC0, 0x4A, 0x00, 0x9F, 0x48, 0x29, 0xBF, -0xDF, 0x06, 0x95, 0x49, 0x92, 0x90, 0x24, 0x09, 0x69, 0x9A, -0x7E, 0x64, 0xAD, 0xB5, 0x42, 0x08, 0x5E, 0xE5, 0x1C, 0x20, -0x49, 0x12, 0xF6, 0xF6, 0xF6, 0xD8, 0xDD, 0xDD, 0xE5, 0xFE, -0xFD, 0xFB, 0xB4, 0xB4, 0xB6, 0xC0, 0x21, 0x04, 0x9A, 0xA6, -0x21, 0xC6, 0x88, 0x94, 0x72, 0xA4, 0xB5, 0xBE, 0xD6, 0xD2, -0x28, 0xA5, 0x94, 0x89, 0x94, 0xF2, 0x87, 0xC6, 0x98, 0x0B, -0x52, 0x4A, 0x8C, 0x31, 0x58, 0x6B, 0x11, 0x42, 0x74, 0x41, -0xA4, 0x94, 0x0C, 0x06, 0x03, 0x0E, 0x0E, 0x0E, 0xB8, 0x71, -0xE3, 0x06, 0xFB, 0xFB, 0xFB, 0x24, 0x49, 0xD2, 0x05, 0x78, -0x95, 0xAA, 0x18, 0x23, 0x42, 0x88, 0x1F, 0x03, 0xEF, 0x09, -0x21, 0xA4, 0xCC, 0xF3, 0x7C, 0xDD, 0x7B, 0xFF, 0xA3, 0x18, -0xE3, 0x7A, 0x6B, 0x14, 0xAD, 0x35, 0xCE, 0x39, 0x9C, 0x73, -0x1D, 0x0D, 0xC6, 0x18, 0x00, 0xEE, 0xDD, 0xBB, 0xC7, 0xD5, -0xAB, 0x57, 0x79, 0xF8, 0xF0, 0x21, 0xD6, 0xDA, 0x56, 0xAE, -0xAF, 0xD1, 0x15, 0x63, 0x3C, 0x1D, 0x42, 0xD8, 0xF6, 0xDE, -0x4F, 0xA4, 0xF7, 0xFE, 0x4C, 0x55, 0x55, 0xEF, 0x2F, 0x97, -0x4B, 0x96, 0xCB, 0xE5, 0x6B, 0xFC, 0x1B, 0x63, 0x48, 0xD3, -0x14, 0xE7, 0x5C, 0x57, 0xD4, 0x7E, 0xBF, 0xCF, 0x9D, 0x3B, -0x77, 0xB8, 0x72, 0xE5, 0x0A, 0x8F, 0x1E, 0x3D, 0x42, 0x29, -0x45, 0x08, 0x01, 0xEF, 0x3D, 0x65, 0x59, 0x52, 0x14, 0x05, -0x45, 0x51, 0x88, 0x3C, 0xCF, 0xBF, 0x97, 0x65, 0xD9, 0xBA, -0xCE, 0xB2, 0xEC, 0xDB, 0x52, 0xCA, 0x49, 0x96, 0x65, 0xAF, -0xD9, 0x5C, 0x29, 0x85, 0xD6, 0x1A, 0x63, 0x0C, 0xE3, 0xF1, -0xB8, 0xCB, 0x40, 0x29, 0xC5, 0x68, 0x34, 0x62, 0x6F, 0x6F, -0x8F, 0x4B, 0x97, 0x2E, 0x71, 0xF3, 0xE6, 0x4D, 0xCE, 0x9C, -0x39, 0xD3, 0x49, 0xB8, 0xA5, 0x0A, 0x98, 0x00, 0xEB, 0x3A, -0xCB, 0xB2, 0xD8, 0x6A, 0xBE, 0x69, 0x9A, 0x2E, 0xE5, 0x95, -0x91, 0x50, 0x4A, 0x31, 0x9D, 0x4E, 0x99, 0xCF, 0xE7, 0xAD, -0xDA, 0x00, 0x70, 0xCE, 0xE1, 0xBD, 0x67, 0x3A, 0x9D, 0x32, -0x1E, 0x8F, 0x09, 0x21, 0x74, 0xC5, 0x5F, 0x9D, 0x8B, 0x31, -0xC6, 0xA8, 0x43, 0x08, 0x4F, 0x80, 0xC3, 0xB6, 0x58, 0x2B, -0x25, 0x10, 0x63, 0xA4, 0x28, 0x0A, 0x16, 0x8B, 0x05, 0x79, -0x9E, 0x33, 0x9B, 0xCD, 0x30, 0xC6, 0xA0, 0xB5, 0xA6, 0x2C, -0x4B, 0xB6, 0xB6, 0xB6, 0xB8, 0x7C, 0xF9, 0x32, 0x1B, 0x1B, -0x1B, 0x14, 0x45, 0xD1, 0xDD, 0x91, 0x52, 0xB6, 0x4E, 0x9F, -0xC6, 0x18, 0x8F, 0xB4, 0x10, 0xE2, 0x89, 0x10, 0xE2, 0xCB, -0xBA, 0xAE, 0xBB, 0x2C, 0xBC, 0xF7, 0x64, 0x59, 0xC6, 0x74, -0x3A, 0xE5, 0xE5, 0xCB, 0x97, 0x9C, 0x38, 0x71, 0x82, 0x24, -0x49, 0x90, 0x52, 0x52, 0x55, 0x15, 0x5B, 0x5B, 0x5B, 0xEC, -0xEC, 0xEC, 0x10, 0x63, 0xE4, 0xF1, 0xE3, 0xC7, 0xAC, 0xAD, -0xAD, 0xD1, 0xEB, 0xF5, 0xB0, 0xD6, 0xB6, 0x26, 0x6C, 0x9A, -0xA6, 0xF9, 0x07, 0xF0, 0x42, 0x7B, 0xEF, 0x5F, 0x08, 0x21, -0xFE, 0x52, 0x96, 0xE5, 0xF3, 0x2C, 0xCB, 0x36, 0x96, 0xCB, -0x25, 0xC7, 0xC7, 0xC7, 0xCC, 0xE7, 0x73, 0xEA, 0xBA, 0x66, -0x3C, 0x1E, 0x93, 0xA6, 0x29, 0x00, 0x65, 0x59, 0x72, 0xEE, -0xDC, 0x39, 0x2E, 0x5E, 0xBC, 0xC8, 0xC6, 0xC6, 0x06, 0x59, -0x96, 0x71, 0x74, 0x74, 0x44, 0x9E, 0xE7, 0x8C, 0xC7, 0x63, -0x06, 0x83, 0x01, 0xCE, 0x39, 0x92, 0x24, 0xF9, 0x4A, 0x08, -0x71, 0x1B, 0x98, 0xE9, 0xAA, 0xAA, 0x3C, 0x70, 0x7F, 0xB9, -0x5C, 0xFE, 0xE9, 0xD9, 0xB3, 0x67, 0x3B, 0xC7, 0xC7, 0xC7, -0xE4, 0x79, 0x8E, 0x94, 0xB2, 0x7B, 0x59, 0x08, 0x81, 0xB2, -0x2C, 0xB9, 0x70, 0xE1, 0x02, 0xBB, 0xBB, 0xBB, 0xCC, 0x66, -0x33, 0x16, 0x8B, 0x05, 0x49, 0x92, 0x10, 0x63, 0xEC, 0xD4, -0x57, 0x14, 0x05, 0xFD, 0x7E, 0x9F, 0xC1, 0x60, 0xF0, 0xC7, -0x34, 0x4D, 0xFF, 0x05, 0xA0, 0x9F, 0x3E, 0x7D, 0xDA, 0xF6, -0x98, 0x8F, 0x17, 0x8B, 0xC5, 0x4F, 0x0E, 0x0F, 0x0F, 0xFB, -0x49, 0x92, 0x30, 0x1C, 0x0E, 0x71, 0xCE, 0x11, 0x42, 0x20, -0xCB, 0x32, 0xCE, 0x9E, 0x3D, 0xCB, 0xF6, 0xF6, 0x36, 0x9B, -0x9B, 0x9B, 0xDC, 0xBD, 0x7B, 0x17, 0xEF, 0x3D, 0x4A, 0x29, -0x9C, 0x73, 0x08, 0x21, 0x28, 0xCB, 0x92, 0xF9, 0x7C, 0x8E, -0xF7, 0xFE, 0xB0, 0xAE, 0xEB, 0x4F, 0x16, 0x8B, 0xC5, 0xD7, -0x05, 0xCF, 0xF3, 0x9C, 0x3C, 0xCF, 0xA9, 0xAA, 0xEA, 0x0B, -0xA5, 0xD4, 0xB5, 0xD1, 0x68, 0xD4, 0x69, 0x3F, 0xC6, 0x48, -0x59, 0x96, 0x78, 0xEF, 0x39, 0x7F, 0xFE, 0x3C, 0x9B, 0x9B, -0x9B, 0xD4, 0x75, 0x4D, 0xAF, 0xD7, 0x03, 0xA0, 0xAA, 0xAA, -0xCE, 0x84, 0x2B, 0xF7, 0xD7, 0xDE, 0xFB, 0x5F, 0xD6, 0x75, -0x7D, 0xB0, 0xF2, 0xC3, 0x7F, 0x9B, 0xDD, 0x4A, 0x5E, 0x9F, -0x9E, 0x3C, 0x79, 0xF2, 0x57, 0x93, 0xC9, 0x84, 0x18, 0x23, -0xDE, 0xFB, 0xAE, 0x55, 0x3B, 0xE7, 0xBA, 0x06, 0xE7, 0x9C, -0xC3, 0x18, 0xD3, 0xB5, 0xF2, 0x55, 0x27, 0x0D, 0xCE, 0xB9, -0x6B, 0x52, 0xCA, 0xCF, 0x5E, 0xF5, 0x83, 0x7C, 0x63, 0xD8, -0xD4, 0x5A, 0xEB, 0xEB, 0x6B, 0x6B, 0x6B, 0xBF, 0xE8, 0xF7, -0xFB, 0xB3, 0x16, 0x30, 0x49, 0x12, 0x8C, 0x31, 0xDD, 0x34, -0x33, 0xC6, 0x60, 0x8C, 0x21, 0x84, 0xD0, 0x0E, 0xA0, 0x7F, -0x1B, 0x63, 0x7E, 0x2E, 0xA5, 0xFC, 0x75, 0xDB, 0x6E, 0xDE, -0x35, 0xD1, 0x9A, 0x18, 0xE3, 0xEF, 0xAC, 0xB5, 0xE7, 0x47, -0xA3, 0xD1, 0x1F, 0x86, 0xC3, 0xE1, 0xC1, 0x60, 0x30, 0x20, -0x49, 0x92, 0xEE, 0x8C, 0x31, 0x06, 0xE7, 0x5C, 0x54, 0x4A, -0xED, 0x03, 0xBF, 0x07, 0x3E, 0x00, 0x3E, 0x7B, 0x13, 0xFC, -0x9D, 0x43, 0x3F, 0xC6, 0xF8, 0x77, 0x21, 0xC4, 0xCF, 0xD2, -0x34, 0xFD, 0xEE, 0x70, 0x38, 0xDC, 0xD6, 0x5A, 0xBF, 0x0F, -0xAC, 0x01, 0x51, 0x6B, 0xFD, 0x22, 0x49, 0x92, 0x2F, 0x9D, -0x73, 0x9F, 0x7B, 0xEF, 0xBF, 0xFA, 0xBF, 0x87, 0xFE, 0x1B, -0xEB, 0x9F, 0xC0, 0x4B, 0x60, 0x2D, 0xC6, 0xF8, 0x2D, 0xA0, -0x01, 0x8E, 0x80, 0x19, 0xF0, 0xE2, 0x9B, 0x2E, 0xFF, 0x67, -0x00, 0xD2, 0x61, 0xAF, 0x5D, 0xF2, 0x84, 0xFD, 0x03, 0x00, -0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, -0x82 -}; - -static const unsigned char Toolbar_Refresh1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x05, 0x82, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xAD, 0x55, 0x79, 0x4C, 0xD4, 0x47, 0x14, -0x9E, 0xD9, 0xF3, 0x77, 0xEC, 0x2E, 0xEB, 0x72, 0xB3, 0x2C, -0x28, 0x82, 0x28, 0x8A, 0x02, 0x22, 0xE1, 0x14, 0x11, 0x4B, -0x41, 0xA1, 0xA5, 0xB2, 0xB6, 0x14, 0xDB, 0x82, 0x46, 0xA1, -0x1E, 0x50, 0x2F, 0xD4, 0x9A, 0xD0, 0xB4, 0x8D, 0x69, 0xDA, -0x44, 0x63, 0x68, 0x43, 0x6A, 0x5B, 0x89, 0xB6, 0xC4, 0x3F, -0x80, 0xDA, 0xD6, 0x5A, 0x54, 0x4E, 0xB5, 0xF1, 0x68, 0x05, -0x39, 0x9A, 0x20, 0x64, 0xC5, 0x03, 0x2F, 0x0A, 0x42, 0x51, -0x77, 0xD9, 0x65, 0xAF, 0x99, 0xBE, 0x55, 0xB4, 0x42, 0x97, -0x46, 0x93, 0xBE, 0xE4, 0xCB, 0x7B, 0x73, 0xBD, 0x6F, 0xE6, -0xBD, 0x37, 0x33, 0x08, 0x39, 0x11, 0x6D, 0x85, 0x1F, 0xB7, -0xE6, 0xAC, 0x22, 0xD8, 0xD9, 0xD8, 0x8B, 0x8A, 0xC0, 0x59, -0x67, 0xEA, 0x4C, 0xED, 0x0E, 0x37, 0x37, 0xAE, 0xFD, 0xA3, -0xBB, 0x0A, 0xEF, 0xFF, 0x9D, 0x60, 0xE7, 0x4F, 0x29, 0xA2, -0x48, 0xBF, 0xF4, 0x55, 0xFE, 0x8A, 0x18, 0xE6, 0xCF, 0x3E, -0x5A, 0x98, 0x5C, 0xE5, 0xA5, 0x8E, 0xA9, 0x54, 0x16, 0xC6, -0xD7, 0xB0, 0xD5, 0x89, 0xF5, 0x4C, 0xC7, 0xA2, 0x46, 0x56, -0x97, 0x7C, 0x96, 0x6F, 0x5B, 0x72, 0xCE, 0xAD, 0x6A, 0x79, -0x6B, 0xC8, 0xBA, 0x82, 0xAB, 0x8B, 0x5D, 0x5F, 0x88, 0xC0, -0xC7, 0xDF, 0x37, 0x8D, 0xE7, 0x55, 0xBE, 0xEE, 0x34, 0x81, -0x8E, 0x1A, 0xA7, 0x6D, 0x0E, 0xF2, 0x8A, 0xB8, 0x21, 0x73, -0x61, 0x4A, 0xA5, 0x2E, 0x28, 0x8B, 0x73, 0x47, 0xA1, 0x9E, -0x1A, 0x12, 0xA8, 0x51, 0xDB, 0xE6, 0xB9, 0xB9, 0xEB, 0xB5, -0xF7, 0x2D, 0x57, 0xCB, 0x7A, 0x7A, 0xBB, 0xAE, 0xAC, 0xE9, -0x8A, 0xDF, 0xB6, 0xE9, 0x5A, 0x8A, 0xE8, 0xB9, 0x08, 0xDC, -0x78, 0xBF, 0xD5, 0x77, 0xCD, 0x3D, 0x88, 0x60, 0x21, 0xF6, -0x53, 0x86, 0x33, 0x97, 0x0D, 0x17, 0x84, 0x7A, 0xAB, 0x1E, -0x13, 0x8A, 0x31, 0xC2, 0x18, 0x53, 0x8A, 0x10, 0x25, 0x08, -0x0B, 0x30, 0x2C, 0x96, 0x20, 0xFC, 0xC0, 0x32, 0x38, 0xE5, -0x62, 0x4B, 0xCB, 0xA7, 0x7A, 0x7D, 0x5F, 0x45, 0xD1, 0x95, -0x04, 0x76, 0xA2, 0xBF, 0x71, 0xAC, 0xC5, 0xF5, 0xE1, 0xDE, -0x22, 0x86, 0x4B, 0xBD, 0x69, 0xE9, 0x44, 0xD7, 0xCC, 0x7F, -0xA0, 0x66, 0x63, 0x03, 0xC2, 0x12, 0x3B, 0x12, 0x5A, 0xC0, -0x9B, 0x9D, 0x22, 0x3A, 0x4A, 0x91, 0xDE, 0x82, 0x90, 0x01, -0x53, 0x68, 0x52, 0x64, 0x31, 0x83, 0x03, 0x60, 0x22, 0x2C, -0x15, 0xB4, 0xB4, 0xEB, 0x56, 0xCC, 0x09, 0xF4, 0x1D, 0x06, -0x37, 0xEB, 0x27, 0x8D, 0xD7, 0x07, 0x17, 0x92, 0x8A, 0xF7, -0xDF, 0xDC, 0x44, 0x3E, 0xB9, 0xB5, 0x8C, 0xE4, 0xF6, 0x28, -0x49, 0x66, 0xBB, 0x8C, 0x24, 0x9F, 0x91, 0x93, 0xB8, 0xE3, -0x3C, 0x49, 0x38, 0xC1, 0x92, 0x45, 0x75, 0x0C, 0x49, 0x6D, -0x50, 0xDA, 0x93, 0x6A, 0x59, 0x5B, 0x62, 0xBD, 0xC4, 0x9E, -0x50, 0x2B, 0x26, 0xD1, 0xC7, 0xC4, 0x24, 0xA2, 0x52, 0x42, -0x42, 0x0E, 0x48, 0xC8, 0x82, 0x0A, 0xA9, 0x31, 0xE7, 0x94, -0x3A, 0xDA, 0xA9, 0xF3, 0xB7, 0xCA, 0x3D, 0x70, 0x49, 0x6B, -0x72, 0xE7, 0xFB, 0xBA, 0x45, 0x64, 0xB5, 0x4E, 0x45, 0xB2, -0xBB, 0x78, 0xBA, 0xAC, 0x99, 0xA7, 0x0B, 0xEB, 0x78, 0x12, -0x75, 0x84, 0x23, 0xAB, 0x4E, 0x47, 0x1F, 0xDF, 0xDB, 0xBD, -0x26, 0xB1, 0xF4, 0x62, 0xA1, 0xF2, 0x1B, 0xDD, 0xD6, 0xA0, -0x92, 0xB6, 0xCC, 0x2D, 0xD9, 0x4D, 0xC1, 0xBD, 0x0B, 0xAA, -0xC4, 0x24, 0xF4, 0xA0, 0x88, 0x04, 0x97, 0x89, 0x69, 0xF2, -0x11, 0xFE, 0xDC, 0xCB, 0x87, 0x19, 0xA7, 0xB9, 0x40, 0x79, -0x3F, 0x7B, 0x47, 0x6D, 0xE8, 0x08, 0xB7, 0xE6, 0x76, 0x78, -0xDA, 0xB3, 0x3B, 0x38, 0xA2, 0x6D, 0x63, 0x69, 0xFA, 0xEF, -0x1C, 0x4D, 0x3E, 0xCD, 0x93, 0xEC, 0xBA, 0xE9, 0xA4, 0xE8, -0x92, 0x7F, 0xE4, 0xC4, 0x35, 0xE5, 0x97, 0x77, 0xCA, 0x8A, -0x7F, 0xCB, 0x28, 0x9D, 0x7F, 0x88, 0xB7, 0x27, 0x56, 0xB3, -0xF7, 0x32, 0x6B, 0x79, 0xFF, 0x49, 0xC3, 0x93, 0x53, 0x13, -0xE9, 0xFE, 0xFA, 0xC9, 0xF9, 0xBB, 0xB2, 0x1A, 0x03, 0xCF, -0x6A, 0xCF, 0x7B, 0x8E, 0x64, 0x5D, 0x54, 0xD8, 0x32, 0xCE, -0xCB, 0xEC, 0x8B, 0x1B, 0x38, 0xB2, 0xB6, 0x79, 0x1A, 0x59, -0xDF, 0xCA, 0x1F, 0x9A, 0x6C, 0x6D, 0xD1, 0x99, 0x94, 0xA5, -0xCB, 0x7E, 0x94, 0x47, 0x4D, 0xEA, 0x7C, 0xA2, 0x68, 0x8F, -0x46, 0x7A, 0x67, 0xD5, 0xCE, 0xCE, 0x4D, 0xAF, 0xD7, 0x54, -0x2E, 0xA9, 0x75, 0x1D, 0xCC, 0x68, 0xD4, 0xD8, 0x36, 0x36, -0xBB, 0x0E, 0x69, 0xBF, 0x67, 0xC5, 0x8E, 0x71, 0xF5, 0x2A, -0x11, 0xCE, 0xAA, 0x0C, 0xAD, 0xF8, 0xBC, 0xE3, 0xC3, 0xEF, -0x4A, 0x2E, 0x14, 0xAC, 0xCD, 0x6F, 0x5C, 0x1A, 0x92, 0x57, -0x97, 0x28, 0x7C, 0x6E, 0x82, 0x67, 0x25, 0xBD, 0x72, 0xB6, -0x34, 0xAD, 0x66, 0xFA, 0x92, 0x1D, 0xAD, 0xF1, 0x69, 0x4F, -0xFA, 0xA6, 0x6E, 0x10, 0x32, 0x6F, 0x37, 0xF1, 0x7D, 0x5F, -0x74, 0x6F, 0x22, 0xE7, 0xFA, 0xEB, 0xC8, 0xB1, 0x3B, 0xDF, -0xDA, 0x4B, 0xBB, 0x77, 0xF4, 0x15, 0x37, 0xAF, 0xF8, 0x61, -0x65, 0x43, 0xEC, 0x96, 0x9C, 0x13, 0x71, 0x31, 0xD9, 0xC7, -0xA2, 0xA5, 0x8E, 0xB9, 0x78, 0x32, 0xC7, 0x19, 0x47, 0xE5, -0x01, 0x33, 0xDC, 0x62, 0x35, 0x7B, 0xE3, 0x6A, 0xCF, 0x38, -0x1B, 0x2F, 0x68, 0x96, 0x6D, 0x65, 0x84, 0xDE, 0x7B, 0x66, -0x71, 0x79, 0x48, 0xC6, 0x42, 0x9D, 0x4A, 0xAC, 0x48, 0x04, -0x40, 0xD8, 0x48, 0x6F, 0x3E, 0xEC, 0xB5, 0x75, 0xEA, 0xDA, -0x5F, 0x3D, 0x98, 0xD2, 0x79, 0xD2, 0x69, 0xC6, 0xDF, 0x6C, -0x92, 0x4B, 0x47, 0x4C, 0xD2, 0xA3, 0x9A, 0x29, 0x61, 0x21, -0xFB, 0xAE, 0x4C, 0x3F, 0xE4, 0xCA, 0xAA, 0x76, 0xBD, 0xE3, -0xBB, 0xBB, 0xFF, 0xD9, 0x39, 0x4A, 0x14, 0x55, 0x7D, 0x65, -0xF0, 0xF6, 0x67, 0xF7, 0xC5, 0x4D, 0x42, 0x8E, 0x93, 0x20, -0x95, 0x42, 0x8E, 0x65, 0xBC, 0x10, 0x31, 0x8C, 0x15, 0x09, -0xC4, 0x23, 0x56, 0x56, 0x38, 0xDA, 0xEC, 0x98, 0xE7, 0x34, -0x6E, 0xA1, 0xF9, 0x1E, 0xBB, 0x35, 0x6C, 0xFC, 0x6B, 0xEE, -0x2A, 0x37, 0x01, 0x27, 0xC7, 0x61, 0x7D, 0xA6, 0xDB, 0x05, -0x71, 0xEF, 0xCE, 0x08, 0x88, 0x5B, 0x17, 0xC4, 0xC6, 0x14, -0x04, 0xA9, 0xC3, 0x56, 0xFB, 0xBE, 0xD1, 0x35, 0x78, 0xFD, -0x2B, 0xDD, 0xBD, 0x1B, 0x2E, 0x77, 0x0C, 0x37, 0x50, 0xBF, -0xED, 0x3A, 0xEA, 0xB7, 0xEB, 0xB0, 0x01, 0x0F, 0x20, 0x8B, -0xC0, 0x80, 0x86, 0x87, 0x07, 0x1A, 0xCA, 0x62, 0xAE, 0x1E, -0xF8, 0x57, 0x88, 0xBC, 0xB7, 0x21, 0xA1, 0x87, 0x5A, 0xE9, -0x11, 0x18, 0xA1, 0xE9, 0xD6, 0x48, 0x66, 0xCA, 0x11, 0x63, -0x41, 0x8C, 0xC2, 0x84, 0x6C, 0xCC, 0x75, 0x74, 0xCF, 0x7A, -0x0B, 0xDD, 0x37, 0x12, 0x6A, 0x1C, 0x85, 0x9B, 0x6B, 0xA5, -0xD8, 0x62, 0x82, 0x1B, 0xAD, 0x87, 0xDB, 0x6C, 0xA5, 0x48, -0x08, 0xA9, 0x67, 0xA5, 0x02, 0xC4, 0xCB, 0x30, 0x72, 0x91, -0x49, 0xA8, 0x68, 0x48, 0x92, 0x5F, 0x9D, 0x34, 0x54, 0x3E, -0x8E, 0xC0, 0xE1, 0x1C, 0x5E, 0x1B, 0x0F, 0x30, 0xDD, 0x67, -0x85, 0x31, 0xF9, 0x52, 0x17, 0xCF, 0x7C, 0x21, 0x2B, 0x14, -0x1B, 0xC4, 0x7D, 0x54, 0xEE, 0x62, 0xC3, 0x4A, 0x05, 0x7E, -0x34, 0xDB, 0x60, 0x41, 0x74, 0xC4, 0x84, 0xB0, 0x79, 0x04, -0xF4, 0x30, 0xC5, 0x23, 0x0F, 0x28, 0xB2, 0xD9, 0x28, 0x95, -0x48, 0x31, 0xE6, 0x1C, 0x04, 0x72, 0xA9, 0x59, 0xFC, 0x97, -0xC0, 0xEF, 0x78, 0xE6, 0xC3, 0x81, 0xA7, 0x04, 0x5E, 0x1B, -0xE1, 0x19, 0x63, 0x90, 0x2B, 0x10, 0x04, 0x42, 0x73, 0x0A, -0x68, 0xC1, 0xCC, 0x79, 0xD2, 0xDC, 0x11, 0xA9, 0x30, 0xD3, -0x26, 0x35, 0x8B, 0x58, 0x05, 0xC6, 0x32, 0x58, 0xCC, 0x32, -0xB0, 0x7B, 0x78, 0xEE, 0x8C, 0x16, 0xE4, 0x38, 0x01, 0xB5, -0x19, 0x21, 0xA5, 0x7A, 0x84, 0x4C, 0x66, 0x42, 0x59, 0x06, -0x18, 0x44, 0x56, 0xCA, 0x0B, 0x98, 0x53, 0xBF, 0xA6, 0xE9, -0x93, 0x9F, 0x6C, 0xFC, 0x11, 0x81, 0xF7, 0x66, 0x24, 0x86, -0x6C, 0xF8, 0x82, 0xA9, 0x06, 0x30, 0x00, 0x11, 0x90, 0x88, -0xFD, 0x03, 0xB9, 0x68, 0xD6, 0x87, 0x5B, 0x69, 0x91, 0x1A, -0xFC, 0x24, 0xAC, 0xFD, 0x69, 0xC6, 0xE0, 0x35, 0x45, 0x14, -0x0A, 0xC6, 0x6A, 0xC6, 0xE8, 0xE1, 0x00, 0xED, 0xB1, 0x0E, -0xD1, 0xCB, 0xA9, 0x8B, 0xFD, 0x5F, 0x69, 0xE8, 0xBE, 0x4D, -0xC5, 0x26, 0x61, 0x51, 0x5B, 0x9E, 0xB1, 0x6C, 0x5C, 0x52, -0x3D, 0x37, 0x20, 0x0C, 0x21, 0xE2, 0x7C, 0x8A, 0x91, 0x0A, -0xE0, 0x05, 0x76, 0x00, 0xE8, 0x30, 0x40, 0x94, 0x7A, 0x3B, -0x8A, 0x9E, 0xB3, 0x57, 0x9E, 0x13, 0x71, 0x50, 0xF9, 0x71, -0x54, 0x95, 0xA2, 0x3C, 0xBC, 0x82, 0xA9, 0x0C, 0xFD, 0x5A, -0x7C, 0x38, 0x78, 0x9F, 0xA8, 0xCC, 0xAF, 0x44, 0xB0, 0x0E, -0xE6, 0xA4, 0xFB, 0x6C, 0x47, 0x2F, 0x6D, 0xEC, 0x90, 0xF7, -0x66, 0xFD, 0x12, 0x60, 0xF0, 0xDF, 0x25, 0x88, 0x85, 0x3E, -0x99, 0xB3, 0xE2, 0x79, 0x24, 0x30, 0x28, 0x1E, 0x23, 0x48, -0x02, 0xA4, 0x80, 0x9D, 0xE8, 0x20, 0x02, 0xCC, 0x01, 0xCC, -0x80, 0xF6, 0x2C, 0xD0, 0x0B, 0x41, 0xE7, 0x82, 0x2E, 0x04, -0x14, 0x81, 0x5D, 0x14, 0xB6, 0x4F, 0xB8, 0x3F, 0xE1, 0x4B, -0x45, 0x0D, 0xD8, 0xCB, 0x1D, 0x9B, 0x1C, 0x17, 0xA2, 0x71, -0x95, 0xB4, 0x15, 0xFE, 0x88, 0xC7, 0xC9, 0xF6, 0x01, 0xA8, -0x00, 0x3C, 0x40, 0x82, 0x1E, 0x7F, 0x4E, 0x78, 0xAC, 0xB4, -0x45, 0xE8, 0x9F, 0xBF, 0xC4, 0x36, 0xD6, 0xA7, 0x00, 0x40, -0xF0, 0xD0, 0x25, 0x40, 0x4B, 0xDF, 0x1E, 0x64, 0x9A, 0xF4, -0x14, 0x1E, 0xF9, 0x08, 0xC3, 0x2E, 0x24, 0x00, 0x05, 0xEC, -0xC8, 0x0B, 0xF4, 0x54, 0x40, 0xB0, 0xE3, 0x14, 0xD0, 0x9E, -0x0B, 0x7A, 0x2E, 0xE8, 0xD9, 0xA0, 0x83, 0x00, 0x7E, 0x60, -0x3B, 0xC6, 0x63, 0xC7, 0x4E, 0xE6, 0x31, 0xA9, 0xE3, 0xFF, -0x12, 0x95, 0x16, 0xE1, 0x89, 0x98, 0x10, 0x5A, 0x11, 0x40, -0xEA, 0xF5, 0xDE, 0xF8, 0xFE, 0xBF, 0x01, 0xF7, 0x76, 0x0D, -0xC5, 0xC1, 0x73, 0x36, 0xCA, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Stop1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x04, 0x89, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0x7C, 0x55, 0x4D, 0x88, 0x1C, 0x45, 0x14, -0xFE, 0xAA, 0xEA, 0x55, 0x55, 0x77, 0xCF, 0xF4, 0xEC, 0x6E, -0xC2, 0x46, 0xE2, 0xC5, 0x8B, 0xB7, 0x5C, 0x02, 0x62, 0x7E, -0xBC, 0x45, 0x16, 0x4C, 0x50, 0x44, 0x05, 0x2F, 0x26, 0x7A, -0xF1, 0xE0, 0xC1, 0x9F, 0x8B, 0x47, 0xAF, 0xC1, 0x83, 0x10, -0xC8, 0x41, 0x04, 0xC1, 0x1F, 0x44, 0xF0, 0xA0, 0xE4, 0x22, -0xB8, 0x88, 0x90, 0x10, 0x10, 0x44, 0x11, 0x44, 0x88, 0x04, -0xBC, 0x04, 0x12, 0x02, 0xEB, 0x1E, 0x66, 0x66, 0x67, 0x76, -0x67, 0xA6, 0xBB, 0xAA, 0x5E, 0x95, 0x07, 0xA7, 0xCB, 0xDD, -0xB0, 0xC9, 0x83, 0xA2, 0xBB, 0x69, 0xEA, 0xFD, 0x7C, 0xEF, -0x7D, 0xDF, 0x13, 0xB7, 0x6F, 0xDF, 0xC6, 0x7E, 0xB3, 0xD6, -0x42, 0x08, 0x01, 0x29, 0x25, 0x26, 0x93, 0x89, 0x94, 0x52, -0x9E, 0x2C, 0x8A, 0x42, 0x3B, 0xE7, 0xCE, 0x7B, 0xEF, 0xCF, -0xA6, 0x94, 0xA2, 0x31, 0xE6, 0xE6, 0x60, 0x30, 0xB8, 0xA1, -0xB5, 0x0E, 0x42, 0x88, 0x3F, 0x8D, 0x31, 0x88, 0x31, 0x1E, -0xF0, 0x23, 0x84, 0x00, 0x00, 0x10, 0x0E, 0xB1, 0x94, 0x12, -0x98, 0xF9, 0xE5, 0xAA, 0xAA, 0xDE, 0x50, 0x4A, 0xBD, 0x54, -0x96, 0x25, 0xAC, 0xB5, 0xF9, 0x9F, 0x10, 0xE2, 0xC2, 0xBE, -0xF7, 0xAF, 0x63, 0x8C, 0xDF, 0xA4, 0x94, 0x7E, 0xEC, 0x9C, -0x1E, 0x08, 0xF4, 0x60, 0x05, 0x5A, 0xEB, 0xBE, 0x31, 0xE6, -0x0B, 0x6B, 0xED, 0xAB, 0x44, 0x84, 0x94, 0x12, 0xA4, 0x94, -0x10, 0x42, 0xC0, 0x7B, 0x9F, 0xAB, 0xD4, 0x5A, 0x43, 0x29, -0x85, 0x94, 0x12, 0x42, 0x08, 0x08, 0x21, 0x7C, 0xCE, 0xCC, -0xEF, 0x08, 0x21, 0x9A, 0x87, 0x56, 0x10, 0x63, 0x7C, 0x9C, -0x88, 0x7E, 0xA8, 0xEB, 0xFA, 0x64, 0xE7, 0xB0, 0x6D, 0x5B, -0x00, 0x80, 0x31, 0x26, 0x07, 0x50, 0x4A, 0x41, 0x08, 0x81, -0x94, 0x12, 0x94, 0x52, 0xD0, 0x5A, 0x83, 0x88, 0xDE, 0x6C, -0x9A, 0xE6, 0x04, 0x33, 0x9F, 0x17, 0x42, 0x4C, 0x3A, 0x9F, -0x52, 0x29, 0x05, 0x22, 0x42, 0x8C, 0x71, 0x8D, 0x88, 0xBE, -0xAF, 0xAA, 0xEA, 0x64, 0x97, 0x55, 0x8C, 0x11, 0x31, 0x46, -0xB4, 0x6D, 0x8B, 0xB6, 0x6D, 0xE1, 0xBD, 0x87, 0x73, 0x0E, -0xCE, 0x39, 0x78, 0xEF, 0xC1, 0xCC, 0x60, 0xE6, 0x8C, 0xBF, -0x31, 0xE6, 0x8C, 0x94, 0x72, 0x33, 0xA5, 0xB4, 0x92, 0x03, -0xA4, 0x94, 0x10, 0x63, 0x24, 0x22, 0xFA, 0xAA, 0xD7, 0xEB, -0x3D, 0x15, 0x63, 0x84, 0x73, 0x2E, 0x5F, 0xEC, 0xBE, 0x9B, -0xA6, 0xC9, 0xC7, 0x7B, 0x8F, 0x10, 0x02, 0x98, 0x19, 0xCB, -0xFB, 0x60, 0x66, 0x08, 0x21, 0x60, 0xAD, 0x7D, 0x46, 0x4A, -0xF9, 0x51, 0x4A, 0xE9, 0x3F, 0x78, 0x8D, 0x31, 0xD0, 0x5A, -0x3F, 0x5B, 0xD7, 0xF5, 0x0B, 0x5A, 0xEB, 0x9C, 0xA5, 0xF7, -0x1E, 0x29, 0x25, 0x10, 0xFD, 0x87, 0x62, 0x08, 0x21, 0xFF, -0xB3, 0xD6, 0xA2, 0x2C, 0x4B, 0x10, 0xD1, 0x81, 0x4A, 0x99, -0xB9, 0xEB, 0xE3, 0x6B, 0x4A, 0xA9, 0xD3, 0x4A, 0x29, 0x90, -0x31, 0xA6, 0x94, 0x52, 0xBE, 0x6F, 0x8C, 0x11, 0x31, 0x46, -0x28, 0xA5, 0xB2, 0x33, 0x21, 0x04, 0x84, 0x10, 0x60, 0x66, -0xCC, 0x66, 0xB3, 0xEC, 0x60, 0x3E, 0x9F, 0x43, 0x29, 0x05, -0xA5, 0x54, 0x86, 0x47, 0x4A, 0x99, 0xA7, 0x4C, 0x29, 0xD5, -0x17, 0x42, 0xBC, 0x95, 0x52, 0xFA, 0x5D, 0xDC, 0xBB, 0x77, -0xEF, 0x84, 0xB5, 0xF6, 0x2F, 0xAD, 0x35, 0x62, 0x8C, 0xD8, -0x8F, 0xFF, 0xDD, 0xBB, 0x77, 0x71, 0xE5, 0xCA, 0x95, 0x0C, -0x8B, 0xF7, 0x1E, 0x4A, 0x29, 0x94, 0x65, 0x09, 0x00, 0xD8, -0xD8, 0xD8, 0xC0, 0xC5, 0x8B, 0x17, 0xA1, 0xB5, 0xCE, 0x41, -0x3A, 0x0E, 0x31, 0x73, 0x12, 0x42, 0x9C, 0xA0, 0xA6, 0x69, -0x6A, 0xAD, 0x35, 0x42, 0x08, 0x39, 0x63, 0xAD, 0x35, 0x3A, -0xB8, 0xAE, 0x5D, 0xBB, 0x86, 0x87, 0x59, 0x55, 0x55, 0xB8, -0x74, 0xE9, 0x12, 0x88, 0x28, 0xF7, 0xA3, 0xEB, 0x49, 0x4A, -0x49, 0x78, 0xEF, 0x0D, 0x85, 0x10, 0x2E, 0x2C, 0x16, 0x0B, -0x48, 0x29, 0xA1, 0x94, 0xCA, 0x59, 0x10, 0x51, 0xC6, 0x7A, -0xB1, 0x58, 0x1C, 0x1A, 0xA0, 0x63, 0x3D, 0x33, 0xC3, 0x39, -0x87, 0x94, 0x52, 0x86, 0x29, 0xA5, 0x84, 0xB6, 0x6D, 0x9F, -0xA0, 0xBD, 0xBD, 0xBD, 0x33, 0x8B, 0xC5, 0x22, 0x13, 0xAA, -0x7B, 0x56, 0x55, 0x85, 0xF1, 0x78, 0x9C, 0x2F, 0x1D, 0x66, -0xCE, 0x39, 0x8C, 0x46, 0xA3, 0x0E, 0x92, 0x03, 0x32, 0xB1, -0xEC, 0xC9, 0xD3, 0x34, 0x9F, 0xCF, 0xE3, 0xFE, 0x31, 0xEB, -0x4E, 0xD3, 0x34, 0x98, 0x4C, 0x26, 0x78, 0x94, 0xB5, 0x6D, -0x8B, 0xF1, 0x78, 0x0C, 0xAD, 0x75, 0x27, 0x1B, 0xFF, 0x33, -0x98, 0x08, 0x42, 0x88, 0x20, 0x43, 0x08, 0x37, 0x97, 0x54, -0xCF, 0x4D, 0xEE, 0xC6, 0xB2, 0xAB, 0xEC, 0x51, 0x01, 0x9A, -0xA6, 0x39, 0x40, 0xB8, 0xCE, 0xC7, 0xF2, 0xFB, 0x37, 0x92, -0x52, 0x5E, 0x07, 0x90, 0x65, 0xA0, 0x23, 0x51, 0xD3, 0x34, -0xB8, 0x73, 0xE7, 0x4E, 0x96, 0x8A, 0xC3, 0x6C, 0x3C, 0x1E, -0xE3, 0xFE, 0xFD, 0xFB, 0x58, 0x5F, 0x5F, 0x47, 0x51, 0x14, -0x30, 0xC6, 0xE4, 0x5E, 0x2E, 0xA5, 0xE7, 0x1F, 0x62, 0xE6, -0x39, 0x33, 0xA3, 0x69, 0x1A, 0x38, 0xE7, 0xB0, 0x58, 0x2C, -0x30, 0x9D, 0x4E, 0xB1, 0xBB, 0xBB, 0x8B, 0xE1, 0x70, 0x88, -0xBA, 0xAE, 0x33, 0x27, 0xBA, 0x8B, 0x21, 0x84, 0xDC, 0xA7, -0xE1, 0x70, 0x88, 0xB6, 0x6D, 0x31, 0x18, 0x0C, 0x50, 0xD7, -0x75, 0x0E, 0xA4, 0xB5, 0x6E, 0x53, 0x4A, 0x8D, 0xD8, 0xDC, -0xDC, 0x94, 0xCC, 0xFC, 0xDD, 0xF6, 0xF6, 0xF6, 0x2B, 0x3B, -0x3B, 0x3B, 0xD8, 0xDB, 0xDB, 0xC3, 0x6C, 0x36, 0x83, 0x94, -0x12, 0xAB, 0xAB, 0xAB, 0xB0, 0xD6, 0xC2, 0x39, 0x87, 0x23, -0x47, 0x8E, 0xE0, 0xD4, 0xA9, 0x53, 0x68, 0x9A, 0x06, 0xB7, -0x6E, 0xDD, 0x82, 0xF7, 0x1E, 0x55, 0x55, 0x65, 0x76, 0x13, -0x11, 0xEA, 0xBA, 0x46, 0xBF, 0xDF, 0x47, 0x55, 0x55, 0xE8, -0xF5, 0x7A, 0x1F, 0x13, 0xD1, 0x7B, 0x34, 0x1A, 0x8D, 0x22, -0x33, 0x5F, 0x9D, 0x4E, 0xA7, 0xCF, 0x6F, 0x6D, 0x6D, 0xD9, -0xB6, 0x6D, 0x61, 0xAD, 0xC5, 0x60, 0x30, 0x40, 0xBF, 0xDF, -0xCF, 0x25, 0x1F, 0x3F, 0x7E, 0x1C, 0xC7, 0x8E, 0x1D, 0x83, -0xF7, 0x1E, 0xC3, 0xE1, 0x10, 0xDB, 0xDB, 0xDB, 0x9D, 0x8A, -0x42, 0x4A, 0x89, 0xB6, 0x6D, 0xB1, 0xB3, 0xB3, 0xD3, 0xE9, -0xD6, 0x38, 0x84, 0xF0, 0x25, 0x11, 0x25, 0xDA, 0xDA, 0xDA, -0x82, 0x52, 0xEA, 0x67, 0x66, 0xFE, 0x56, 0x08, 0xF1, 0xBA, -0x94, 0x32, 0x67, 0xC1, 0xCC, 0x08, 0x21, 0x64, 0x4E, 0x84, -0x10, 0x90, 0x52, 0x82, 0xB5, 0x16, 0x29, 0x25, 0x38, 0xE7, -0xA0, 0xB5, 0x46, 0x51, 0x14, 0x10, 0x42, 0xA0, 0x6D, 0x5B, -0xCC, 0xE7, 0x73, 0x10, 0xD1, 0xA7, 0xD3, 0xE9, 0xF4, 0x0F, -0x66, 0x06, 0x69, 0xAD, 0x21, 0xA5, 0x84, 0x73, 0xEE, 0xDD, -0xA3, 0x47, 0x8F, 0x3E, 0x19, 0x63, 0x3C, 0xDB, 0x69, 0xBD, -0x73, 0x0E, 0x31, 0x46, 0x94, 0x65, 0x89, 0xB2, 0x2C, 0xF3, -0x7C, 0x17, 0x45, 0x01, 0x22, 0x42, 0xD3, 0x34, 0x07, 0x98, -0xBF, 0x6C, 0xEC, 0x8D, 0x94, 0xD2, 0xE5, 0x6E, 0x67, 0xC8, -0x7D, 0x43, 0x31, 0x51, 0x4A, 0x5D, 0x58, 0x5F, 0x5F, 0xFF, -0x65, 0x30, 0x18, 0x80, 0x99, 0xF3, 0x0E, 0x30, 0xC6, 0xC0, -0x18, 0x93, 0x49, 0xD4, 0x41, 0xD3, 0x89, 0x62, 0xD7, 0xF4, -0xA2, 0x28, 0x7E, 0x92, 0x52, 0xBE, 0x08, 0x60, 0x96, 0xF7, -0xC1, 0x03, 0x1B, 0x6D, 0x02, 0xE0, 0x5C, 0x55, 0x55, 0x9F, -0xF4, 0x7A, 0x3D, 0x10, 0x51, 0x76, 0xDE, 0xC9, 0xF6, 0x52, -0x8E, 0xF3, 0x8E, 0xF6, 0xDE, 0x23, 0xC6, 0xE8, 0xA4, 0x94, -0x1F, 0x0A, 0x21, 0x9E, 0x4B, 0x29, 0xCD, 0xF6, 0xFB, 0x94, -0x87, 0x2C, 0x7C, 0xC7, 0xCC, 0x6F, 0x6B, 0xAD, 0x37, 0x56, -0x56, 0x56, 0xAE, 0xAE, 0xAD, 0xAD, 0x61, 0x75, 0x75, 0x15, -0xC6, 0x98, 0x03, 0x2C, 0x5D, 0xC2, 0xE6, 0xA4, 0x94, 0x97, -0x01, 0x9C, 0x03, 0xF0, 0xC1, 0x61, 0x5C, 0xA1, 0x87, 0x91, -0x28, 0xC6, 0x78, 0x3D, 0xA5, 0x74, 0xDD, 0x5A, 0xFB, 0x59, -0x51, 0x14, 0xA5, 0x10, 0xE2, 0xB1, 0x18, 0xE3, 0x69, 0x00, -0x41, 0x4A, 0xF9, 0xAB, 0x52, 0x6A, 0x44, 0x44, 0xBB, 0xCC, -0xFC, 0xF7, 0xA3, 0xE4, 0xE4, 0xDF, 0x01, 0x00, 0xA3, 0xE7, -0xE8, 0xEB, 0x29, 0x7A, 0xCB, 0x6D, 0x00, 0x00, 0x00, 0x00, -0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Wiimote1_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, -0x00, 0x00, 0x00, 0x16, 0x08, 0x06, 0x00, 0x00, 0x00, 0xC4, -0xB4, 0x6C, 0x3B, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0F, 0xD7, 0x00, 0x00, 0x0F, 0xD7, 0x01, -0xD6, 0x33, 0x5E, 0x3F, 0x00, 0x00, 0x07, 0xB1, 0x49, 0x44, -0x41, 0x54, 0x38, 0x11, 0x01, 0xA6, 0x07, 0x59, 0xF8, 0x03, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0D, 0x0D, 0x06, -0x68, 0x67, 0x6A, 0x57, 0x5F, 0x63, 0x5F, 0x61, 0x05, 0x04, -0x05, 0xE5, 0xD9, 0xD9, 0xD9, 0xEA, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0A, -0x03, 0x69, 0x69, 0x6C, 0x57, 0xCD, 0xCE, 0xD0, 0xD9, 0xD4, -0xE8, 0xC6, 0xFE, 0xCE, 0xDA, 0xC2, 0xFE, 0x77, 0x76, 0x84, -0xFB, 0x9B, 0x9B, 0x9F, 0xA0, 0x2F, 0x2F, 0x30, 0x1A, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, -0x02, 0x00, 0x4C, 0x4C, 0x4F, 0x3F, 0x8B, 0x8A, 0x8E, 0xA7, -0x03, 0x02, 0x0A, 0x6F, 0x1B, 0x1E, 0x10, 0x13, 0xE1, 0xDD, -0xEC, 0x00, 0x81, 0x76, 0x97, 0x00, 0xDA, 0xDA, 0xDE, 0x02, -0xD1, 0xD1, 0xD9, 0x2F, 0x5E, 0x5E, 0x5E, 0x5F, 0x0A, 0x0B, -0x07, 0xCC, 0xD7, 0xD7, 0xD6, 0xE0, 0x01, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x2D, 0x2D, 0x2F, 0x21, 0x70, 0x6F, 0x74, -0x89, 0x30, 0x31, 0x31, 0x53, 0xA2, 0xA1, 0xA9, 0x01, 0x11, -0x12, 0x0F, 0x00, 0xFA, 0xF9, 0xFB, 0x00, 0x0F, 0x0F, 0x0D, -0x00, 0xDD, 0xDD, 0xE0, 0x00, 0xD1, 0xD0, 0xD5, 0x00, 0x02, -0x03, 0x03, 0x00, 0x11, 0x11, 0x0F, 0x00, 0x59, 0x59, 0x51, -0xE9, 0x6B, 0x6B, 0x67, 0x46, 0x03, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x14, 0x14, 0x14, 0x0B, 0x77, 0x76, -0x7C, 0x7A, 0x6F, 0x6F, 0x73, 0xA3, 0xEE, 0xEE, 0xF1, 0x30, -0xA4, 0xA4, 0xAB, 0x01, 0x58, 0x58, 0x4F, 0x00, 0xD8, 0xD8, -0xDC, 0x00, 0xC7, 0xC6, 0xCB, 0x00, 0x20, 0x21, 0x1D, 0x00, -0x6D, 0x6E, 0x64, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x04, 0x04, -0x03, 0x01, 0x43, 0x43, 0x3E, 0x00, 0x9F, 0x9E, 0xA9, 0x0C, -0x0C, 0x0C, 0x11, 0x30, 0x01, 0x04, 0x04, 0x06, 0x05, 0x30, -0x2F, 0x37, 0x5B, 0xCD, 0xCE, 0xC4, 0xA0, 0xFF, 0xFF, 0xFF, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, -0x57, 0x59, 0x40, 0x62, 0x61, 0x66, 0x9B, 0x13, 0x13, 0x14, -0x23, 0xB9, 0xB9, 0xBE, 0x00, 0xEB, 0xEB, 0xED, 0x00, 0x1C, -0x1C, 0x19, 0x00, 0xBD, 0xBD, 0xC3, 0x00, 0x1A, 0x1A, 0x18, -0x00, 0x49, 0x49, 0x42, 0x00, 0x1F, 0x20, 0x1C, 0x00, 0x87, -0x86, 0x92, 0x00, 0x15, 0x15, 0x14, 0x00, 0x1D, 0x1D, 0x1A, -0x00, 0xB1, 0xB1, 0xB9, 0x00, 0x06, 0x05, 0x06, 0x00, 0x04, -0x05, 0x03, 0xFB, 0x03, 0xFF, 0xFF, 0xFF, 0xFE, 0x17, 0x16, -0x1E, 0x4F, 0x33, 0x33, 0x3A, 0x59, 0xEC, 0xED, 0xE8, 0xC8, -0x07, 0x07, 0x06, 0xFB, 0x82, 0x81, 0x86, 0x87, 0x56, 0x56, -0x5B, 0x98, 0xF2, 0xF1, 0xF4, 0x13, 0xB4, 0xB4, 0xBA, 0x00, -0x53, 0x54, 0x4B, 0x00, 0xD3, 0xD3, 0xD7, 0x00, 0xBA, 0xBA, -0xC0, 0x00, 0xF8, 0xF7, 0xF9, 0x00, 0xFA, 0xFB, 0xFB, 0x00, -0xD4, 0xD4, 0xD8, 0x00, 0x08, 0x07, 0x07, 0x00, 0x0E, 0x0E, -0x0D, 0x00, 0xF1, 0xF1, 0xF4, 0x00, 0xC3, 0xC2, 0xC8, 0x00, -0x09, 0x09, 0x09, 0x00, 0x07, 0x07, 0x07, 0x00, 0xF7, 0xF6, -0xF3, 0xA7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x22, 0x22, 0x29, 0x33, 0x50, 0x4F, 0x57, 0x8C, 0x3E, -0x3F, 0x36, 0x01, 0x17, 0x16, 0x18, 0x3E, 0xC5, 0xC5, 0xCA, -0x00, 0xD0, 0xD0, 0xD3, 0x00, 0x46, 0x47, 0x40, 0x00, 0xAC, -0xAA, 0xB3, 0x00, 0xED, 0xEE, 0xEF, 0x00, 0x02, 0x02, 0x02, -0x00, 0x00, 0xFF, 0xFF, 0x00, 0xF8, 0xF8, 0xFA, 0x00, 0x0C, -0x0D, 0x0B, 0x00, 0x3B, 0x3B, 0x35, 0x00, 0xEB, 0xEA, 0xEE, -0x00, 0xD3, 0xD3, 0xD8, 0x00, 0x0A, 0x0A, 0x08, 0x00, 0x05, -0x06, 0x05, 0x00, 0xFB, 0xFA, 0xFA, 0xCA, 0xC3, 0xC4, 0xB3, -0x45, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x17, 0x17, 0x12, 0xF0, 0x48, 0x49, 0x41, 0x1A, 0xFE, 0xFE, -0x00, 0x25, 0xBD, 0xBD, 0xC3, 0x00, 0x2F, 0x2F, 0x2A, 0x00, -0x05, 0x05, 0x04, 0x00, 0x9C, 0x9A, 0xA5, 0x00, 0x01, 0x01, -0x01, 0x00, 0xFD, 0xFD, 0xFD, 0x00, 0x03, 0x02, 0x03, 0x00, -0x05, 0x07, 0x05, 0x00, 0x02, 0x02, 0x03, 0x00, 0x3B, 0x3B, -0x35, 0x00, 0xEE, 0xED, 0xF0, 0x00, 0xD7, 0xD7, 0xDC, 0x00, -0x0E, 0x0F, 0x0D, 0x00, 0x07, 0x06, 0x06, 0x00, 0xFB, 0xFB, -0xF9, 0xD1, 0xCA, 0xCC, 0xBD, 0x4C, 0xF9, 0xFA, 0xF8, 0xF3, -0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x3A, 0x24, 0x88, -0x87, 0x8D, 0xBD, 0xDB, 0xDB, 0xDF, 0x1D, 0xB9, 0xB9, 0xBE, -0x00, 0x4F, 0x4F, 0x48, 0x00, 0xC9, 0xC9, 0xCD, 0x00, 0xD0, -0xD0, 0xD5, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x02, 0x01, -0x00, 0xFE, 0xFE, 0xFF, 0x00, 0xF8, 0xF8, 0xF9, 0x00, 0xFA, -0xFA, 0xFA, 0x00, 0x54, 0x55, 0x4D, 0x00, 0xE7, 0xE6, 0xEA, -0x00, 0xD9, 0xD9, 0xDD, 0x00, 0x0B, 0x0B, 0x0A, 0x00, 0x07, -0x08, 0x07, 0x00, 0xFB, 0xFB, 0xF9, 0xD7, 0xBF, 0xC0, 0xB2, -0x43, 0xF1, 0xF1, 0xEE, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x01, -0x1F, 0x1F, 0x20, 0x13, 0x93, 0x92, 0x99, 0xC7, 0x18, 0x18, -0x18, 0x24, 0xD0, 0xD1, 0xD4, 0x00, 0x0E, 0x0D, 0x0C, 0x00, -0xA7, 0xA7, 0xAF, 0x00, 0xF0, 0xF0, 0xF1, 0x00, 0xFC, 0xFB, -0xFC, 0x00, 0x03, 0x04, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0x00, -0x15, 0x15, 0x13, 0x00, 0xF8, 0xF7, 0xF9, 0x00, 0x43, 0x44, -0x3D, 0x00, 0xCF, 0xCF, 0xD5, 0x00, 0xEC, 0xEB, 0xED, 0x00, -0x0C, 0x0C, 0x0C, 0x00, 0x08, 0x08, 0x07, 0x00, 0x00, 0x00, -0x00, 0xE6, 0xBA, 0xBC, 0xAD, 0x3B, 0xEA, 0xEA, 0xE6, 0xE1, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7E, -0x7D, 0x83, 0x9C, 0xD2, 0xD2, 0xD7, 0x24, 0xFF, 0xFF, 0x00, -0x00, 0xFA, 0xF9, 0xF9, 0x00, 0x98, 0xA4, 0xAC, 0x00, 0xFA, -0xFB, 0xFB, 0x00, 0x04, 0x03, 0x04, 0x00, 0xFE, 0xFF, 0xFF, -0x01, 0x06, 0x02, 0x02, 0xFF, 0x20, 0x21, 0x1E, 0x00, 0xF8, -0xF8, 0xF9, 0x00, 0x3B, 0x3B, 0x37, 0x00, 0xC1, 0xC0, 0xC6, -0x00, 0xFE, 0xFE, 0xFF, 0x00, 0x12, 0x13, 0x12, 0x00, 0x09, -0x09, 0x08, 0x00, 0x01, 0x01, 0x01, 0xF3, 0xBB, 0xBB, 0xAF, -0x4F, 0xEA, 0xEA, 0xE6, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x34, 0x34, -0x34, 0x3D, 0x12, 0x12, 0x0F, 0x00, 0x9E, 0x9E, 0xA7, 0x00, -0xC3, 0xC3, 0xC8, 0x00, 0xF2, 0xF2, 0xF4, 0x00, 0x07, 0x08, -0x06, 0x00, 0x01, 0x02, 0x01, 0x00, 0xFE, 0xFE, 0xFE, 0xFF, -0x01, 0x02, 0x02, 0x00, 0xFD, 0xFC, 0xFD, 0x00, 0x2F, 0x2E, -0x2A, 0x00, 0xB9, 0xB8, 0xBF, 0x00, 0x09, 0x0A, 0x0A, 0x00, -0x13, 0x12, 0x0E, 0x00, 0x0C, 0x0C, 0x0C, 0x00, 0xFE, 0xFE, -0xFE, 0xFB, 0xC1, 0xC1, 0xB8, 0x57, 0xE1, 0xE2, 0xDC, 0xCD, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x2B, 0x2A, 0x2D, -0x20, 0x36, 0x37, 0x34, 0x34, 0x20, 0x21, 0x1C, 0x00, 0xC1, -0xC0, 0xC7, 0x00, 0x08, 0x08, 0x07, 0x00, 0xFC, 0xFB, 0xFC, -0x00, 0xFB, 0xFB, 0xFC, 0x00, 0x0D, 0x0C, 0x0B, 0x00, 0x2E, -0x2F, 0x2A, 0x00, 0x0C, 0x0C, 0x0C, 0x00, 0xC7, 0xC6, 0xCD, -0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x11, 0x12, 0x11, 0x00, 0x11, -0x11, 0x10, 0x00, 0xFF, 0xFE, 0xFE, 0xFE, 0xCE, 0xCF, 0xC8, -0x6A, 0xD6, 0xD7, 0xCD, 0xB0, 0x8D, 0x8D, 0x8D, 0x99, 0x63, -0x63, 0x63, 0x6B, 0x3A, 0x3A, 0x3A, 0x3A, 0x03, 0x03, 0x03, -0xFC, 0xDB, 0xDB, 0xDB, 0xDD, 0x01, 0x23, 0x23, 0x24, 0x18, -0xB0, 0xAF, 0xB5, 0xD1, 0x22, 0x23, 0x1D, 0x15, 0xCE, 0xCE, -0xD3, 0x00, 0x7C, 0x7B, 0x88, 0x00, 0x05, 0x04, 0x04, 0x00, -0x0B, 0x0C, 0x0A, 0x00, 0x3E, 0x3E, 0x39, 0x00, 0xC9, 0xC8, -0xCF, 0x00, 0xEE, 0xEE, 0xF0, 0x00, 0x0E, 0x0F, 0x0D, 0x00, -0x0E, 0x0E, 0x0E, 0x00, 0x0D, 0x0D, 0x0C, 0x00, 0xFB, 0xFB, -0xFB, 0xFD, 0xCF, 0xCF, 0xC9, 0x72, 0xCA, 0xCA, 0xBF, 0x93, -0x57, 0x58, 0x57, 0x5C, 0x91, 0x91, 0x91, 0xA2, 0xD5, 0xD5, -0xD5, 0x00, 0xED, 0xED, 0xED, 0x00, 0x2B, 0x2B, 0x2B, 0xF8, -0x43, 0x43, 0x43, 0x24, 0x03, 0xEF, 0xEF, 0xEE, 0xF4, 0xEE, -0xEE, 0xEF, 0xD5, 0x33, 0x33, 0x37, 0x56, 0x1D, 0x1D, 0x19, -0x03, 0x2F, 0x30, 0x2B, 0x00, 0x05, 0x05, 0x05, 0x00, 0x14, -0x14, 0x13, 0x00, 0xB7, 0xB6, 0xBE, 0x01, 0xFA, 0xFA, 0xFB, -0x00, 0x0B, 0x0C, 0x0A, 0x00, 0x09, 0x09, 0x09, 0x00, 0x06, -0x06, 0x06, 0x00, 0xF6, 0xF5, 0xF5, 0xF1, 0xC8, 0xC9, 0xC0, -0x5E, 0xD0, 0xD0, 0xC7, 0xA0, 0x00, 0x00, 0xFF, 0x00, 0x54, -0x54, 0x54, 0x60, 0x33, 0x33, 0x33, 0x39, 0xF6, 0xEE, 0xEE, -0x00, 0x01, 0xFB, 0xFB, 0x00, 0x16, 0x1B, 0x1B, 0x04, 0xC0, -0xC0, 0xC0, 0xB7, 0x03, 0x00, 0x00, 0x00, 0x00, 0xD5, 0xD5, -0xD3, 0xDC, 0xFD, 0xFD, 0xFE, 0xE0, 0x2D, 0x2C, 0x30, 0x4B, -0xE5, 0xE4, 0xE7, 0x03, 0xB0, 0xAF, 0xB7, 0x00, 0xD2, 0xD1, -0xD6, 0x00, 0x06, 0x07, 0x06, 0x00, 0x08, 0x07, 0x07, 0x00, -0x06, 0x06, 0x06, 0x00, 0x02, 0x02, 0x01, 0x00, 0xEB, 0xEB, -0xE7, 0xB7, 0xC1, 0xC3, 0xB7, 0x4F, 0xE2, 0xE2, 0xDB, 0xC6, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, -0x20, 0x2B, 0x1F, 0x1F, 0x1F, 0x47, 0xEF, 0xEF, 0xEF, 0x00, -0x17, 0x19, 0x19, 0x00, 0x05, 0x08, 0x08, 0x01, 0xCB, 0xCB, -0xCB, 0xB6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x97, 0x97, 0x93, 0xA4, 0xD9, 0xD8, 0xD8, 0xDD, 0xEB, -0xEA, 0xF9, 0x85, 0x0A, 0x0A, 0x0C, 0x3C, 0x06, 0x06, 0x06, -0x04, 0x02, 0x02, 0x02, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, -0xEF, 0xEC, 0xC3, 0xE0, 0xE2, 0xDA, 0x86, 0xE1, 0xE1, 0xDA, -0xBD, 0xFE, 0xFE, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0xE7, 0xE7, -0xDD, 0x08, 0x08, 0x08, 0xFF, 0xEF, 0x01, 0x01, 0x01, 0x02, -0x07, 0x07, 0x00, 0x01, 0x01, 0x01, 0x00, 0x19, 0x19, 0x19, -0x1D, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xBE, 0xBF, 0xBB, 0xC7, 0x00, 0x00, -0x01, 0x42, 0x0A, 0x0A, 0x0D, 0x16, 0x0D, 0x0C, 0x10, 0x25, -0xFF, 0xFF, 0xFE, 0xFC, 0xF6, 0xF7, 0xF3, 0xDC, 0xF4, 0xF4, -0xF2, 0xED, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x06, -0x0B, 0x0B, 0x0B, 0x00, 0x1A, 0x1A, 0x1A, 0x00, 0x0C, 0x0C, -0x0C, 0x00, 0x07, 0x07, 0x07, 0x00, 0x1D, 0x1D, 0x1D, 0x2F, -0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0x00, 0xF6, 0xF6, 0xF2, 0xEA, 0xF6, 0xF6, 0xF2, 0xEA, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0xC9, 0xC9, 0xC9, 0xF0, -0xF0, 0xF0, 0xF3, 0x0F, 0x0F, 0x0F, 0x0E, 0x0B, 0x0B, 0x0B, -0x00, 0xF9, 0xF9, 0xF9, 0xFE, 0xC8, 0xC8, 0xC8, 0xC9, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x31, -0x31, 0x4D, 0xA0, 0xA0, 0xA0, 0xCF, 0xAC, 0xAC, 0xAC, 0xD0, -0x51, 0x51, 0x51, 0x6F, 0x01, 0x01, 0x01, 0x05, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x46, 0x33, -0xDB, 0xDA, 0xDB, 0xE3, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -#endif - diff --git a/Source/Core/DolphinWX/resources/X-Plastik.h b/Source/Core/DolphinWX/resources/X-Plastik.h deleted file mode 100644 index 904ee376de..0000000000 --- a/Source/Core/DolphinWX/resources/X-Plastik.h +++ /dev/null @@ -1,3040 +0,0 @@ -/* - Automatic generated header by: - - wxInclude by Kim De Deyn, use --help for more information. - Version 1.0, compiled at Sep 12 2007 17:26:17 - - Header: myheader - Macros: no - Const: yes -*/ - -#ifndef _WXINCLUDE_MYHEADER_2_H_ -#define _WXINCLUDE_MYHEADER_2_H_ - -static const unsigned char Toolbar_Browse2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x04, 0x4B, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xB5, 0x95, 0x7F, 0x4C, 0x94, 0x75, 0x1C, -0xC7, 0xDF, 0xCF, 0x3D, 0x77, 0xCF, 0x73, 0xC7, 0xDD, 0x89, -0xDE, 0x1D, 0x1C, 0xC7, 0x1D, 0xBF, 0x39, 0x48, 0x4F, 0x1B, -0x01, 0x51, 0x21, 0xBA, 0x35, 0x32, 0x37, 0x18, 0x21, 0x67, -0x6A, 0x9A, 0x9B, 0x99, 0x26, 0xC1, 0x04, 0x6D, 0x18, 0x5B, -0x6C, 0x2E, 0xCB, 0x74, 0x1A, 0x96, 0x03, 0x5B, 0x83, 0xDC, -0x50, 0xFF, 0xA8, 0xB4, 0x31, 0x53, 0x1A, 0xE5, 0x1A, 0x5B, -0x7F, 0xE4, 0xA4, 0x16, 0x16, 0xFD, 0x93, 0xB5, 0x74, 0xB4, -0x45, 0x81, 0xFC, 0x88, 0xDF, 0xCA, 0xDD, 0x71, 0xF7, 0xF4, -0x3E, 0x4E, 0x1D, 0x22, 0x2A, 0x2C, 0xFA, 0xEE, 0x3E, 0xCF, -0xF7, 0xFB, 0x7C, 0x9F, 0xCF, 0xF7, 0xFD, 0xFA, 0x7C, 0x3F, -0xDF, 0x1F, 0x07, 0xCC, 0xA1, 0x94, 0x6F, 0x45, 0xD5, 0x5C, -0xFC, 0x83, 0x45, 0x35, 0x5B, 0xC7, 0xD7, 0x9E, 0xD3, 0xE5, -0xD5, 0x34, 0x28, 0x07, 0xF6, 0x14, 0x44, 0x16, 0xFD, 0x2F, -0x80, 0x57, 0xF7, 0x1E, 0x6B, 0x0E, 0xD6, 0x3B, 0x0F, 0x7E, -0x70, 0x76, 0xDE, 0x01, 0xEF, 0x95, 0x3A, 0xDE, 0x4D, 0xC9, -0xDC, 0xC6, 0x56, 0x3F, 0xE2, 0x96, 0xAE, 0x43, 0x5D, 0x65, -0x6C, 0xED, 0x7C, 0x02, 0x54, 0x3B, 0xAB, 0x2F, 0xBE, 0x3E, -0xD9, 0xF2, 0x76, 0xF1, 0xA1, 0x60, 0xFB, 0x3B, 0x97, 0xCB, -0xD6, 0xC4, 0x43, 0x3F, 0x2F, 0x80, 0xD3, 0x47, 0x5F, 0x3A, -0x27, 0x85, 0xC5, 0x51, 0xF7, 0x0A, 0xCD, 0x4F, 0x48, 0x2B, -0x44, 0x8D, 0x05, 0x9B, 0x2B, 0x2B, 0xCE, 0xFD, 0x27, 0x40, -0x59, 0x2E, 0xF4, 0x8D, 0x87, 0xB5, 0xFB, 0x37, 0xEC, 0xAE, -0x2F, 0x00, 0x3A, 0x01, 0x4F, 0x0F, 0x7B, 0x87, 0x08, 0x18, -0x64, 0xDD, 0x82, 0xB5, 0x25, 0xBB, 0x9F, 0x39, 0x5F, 0xE7, -0x38, 0x50, 0xE9, 0xC6, 0x82, 0x07, 0x01, 0xC4, 0x8A, 0xE2, -0x94, 0x9C, 0x32, 0xB7, 0xC5, 0x55, 0x55, 0x95, 0x57, 0xB4, -0x2E, 0x3F, 0xBF, 0x6A, 0x57, 0x71, 0x7E, 0xFD, 0xA1, 0xEA, -0x43, 0x07, 0xDD, 0xA5, 0xEF, 0x57, 0x2D, 0x59, 0xFE, 0xD6, -0x4A, 0xE0, 0x37, 0x60, 0xEC, 0x57, 0xBA, 0x06, 0xF8, 0xEB, -0x07, 0x84, 0x61, 0xBE, 0xFF, 0x05, 0xA8, 0x7F, 0x41, 0x6A, -0xD6, 0xCB, 0x2B, 0x56, 0x15, 0x3D, 0xFB, 0x46, 0xC9, 0xF6, -0x9C, 0x7D, 0x1B, 0xD7, 0x24, 0x56, 0xB8, 0x57, 0x25, 0xE6, -0xBC, 0xB2, 0x25, 0x35, 0xA6, 0xF0, 0x69, 0xBF, 0xC1, 0x1E, -0x31, 0xF2, 0x48, 0x6B, 0xBB, 0xFF, 0x77, 0xF5, 0x60, 0xE7, -0xD0, 0xFA, 0x8D, 0x75, 0xDD, 0x65, 0x77, 0x73, 0xAF, 0xD1, -0xAE, 0x02, 0xBE, 0xEB, 0x8C, 0x9C, 0x82, 0x8A, 0x97, 0x36, -0x14, 0x4A, 0x91, 0x42, 0x90, 0x4A, 0x01, 0x46, 0x27, 0x08, -0xF9, 0x19, 0x90, 0x87, 0x61, 0xB5, 0xFE, 0x0D, 0xAB, 0x7D, -0xC0, 0x08, 0xBF, 0x2F, 0x0F, 0xE8, 0xCB, 0x43, 0x97, 0x84, -0x96, 0x6F, 0x85, 0x9F, 0x28, 0xD2, 0x2C, 0x04, 0xE5, 0x8E, -0x6C, 0xCD, 0x3C, 0x53, 0xD1, 0xF0, 0xC3, 0x7A, 0xA0, 0x1D, -0x18, 0x64, 0xC4, 0x6A, 0x2D, 0x7B, 0xC7, 0x19, 0xF1, 0x4D, -0xDA, 0x00, 0xDB, 0x3E, 0x8A, 0x1A, 0x19, 0x3D, 0x85, 0x7D, -0x7D, 0x84, 0x72, 0x3D, 0x3C, 0x9C, 0x95, 0xA7, 0x7D, 0xD2, -0x0D, 0xEA, 0xD0, 0x04, 0xE1, 0xA0, 0xD1, 0xFD, 0xEC, 0x97, -0x68, 0x5A, 0x5B, 0x86, 0xC2, 0x3B, 0x6B, 0xB0, 0xE7, 0x44, -0xDB, 0x86, 0xA3, 0xC5, 0xF6, 0x6A, 0x20, 0x0D, 0x58, 0x28, -0x71, 0x10, 0x53, 0xE0, 0x67, 0xF4, 0x01, 0xE6, 0x5E, 0x63, -0x60, 0x22, 0x69, 0x63, 0x97, 0x80, 0xEE, 0xC3, 0x40, 0xEF, -0x9B, 0xDC, 0xAD, 0xA7, 0x81, 0x1B, 0xED, 0xA1, 0xD1, 0x86, -0x5B, 0x00, 0xEE, 0x03, 0x70, 0x79, 0x8E, 0x35, 0xE0, 0xC8, -0x6D, 0xF1, 0x60, 0x11, 0xA6, 0x26, 0xA6, 0x7E, 0x6F, 0x72, -0xCD, 0x8E, 0xB7, 0x9B, 0xCA, 0xA1, 0x34, 0xD1, 0x99, 0x9F, -0xD4, 0x5C, 0xBF, 0xC1, 0xAF, 0x99, 0x8E, 0xF3, 0x04, 0x06, -0x42, 0x42, 0x41, 0x51, 0xF1, 0xD6, 0x00, 0x45, 0x15, 0x0A, -0xDD, 0x1C, 0x5A, 0xFF, 0xE3, 0xA7, 0xD0, 0xB0, 0x63, 0x1F, -0xB6, 0xDD, 0x77, 0x17, 0x15, 0xEF, 0xBF, 0xBA, 0xEB, 0xB3, -0x9A, 0xD5, 0xB5, 0x10, 0x92, 0x89, 0xE6, 0x1A, 0x74, 0x94, -0x00, 0x23, 0x9F, 0xD3, 0x8B, 0x22, 0x06, 0x02, 0x65, 0x2A, -0x8B, 0x9A, 0x50, 0x5C, 0xC1, 0x94, 0x04, 0xF8, 0x08, 0x13, -0x30, 0xC1, 0xAC, 0x9D, 0xF8, 0x04, 0xB5, 0xD3, 0xC5, 0x31, -0x25, 0x96, 0x3B, 0xA5, 0xF1, 0xC2, 0xF0, 0x85, 0xDC, 0xC4, -0xE6, 0x82, 0x38, 0xFB, 0x77, 0xD1, 0x93, 0x5F, 0x25, 0x9E, -0x27, 0xD1, 0xC4, 0xC6, 0x22, 0x82, 0x82, 0x3B, 0x32, 0x8C, -0xFA, 0x86, 0x10, 0x48, 0x24, 0x40, 0x9A, 0xC0, 0xC5, 0x4B, -0x68, 0x2B, 0x2A, 0x85, 0x7B, 0xA6, 0x6D, 0x3A, 0xE3, 0x39, -0x18, 0xBA, 0x31, 0xE6, 0x85, 0x4E, 0xE6, 0x60, 0x26, 0x56, -0x8C, 0x65, 0x6A, 0x62, 0x18, 0x3D, 0xDB, 0x6A, 0x27, 0xEB, -0x25, 0xB4, 0x24, 0xF6, 0x27, 0xF2, 0x3D, 0x81, 0x6D, 0x33, -0xBC, 0x5E, 0x39, 0x30, 0x93, 0xCE, 0x7D, 0x01, 0x76, 0x7B, -0xB8, 0x0D, 0x5A, 0x0A, 0x0A, 0x36, 0x8A, 0x50, 0x2C, 0x2C, -0x03, 0xD0, 0xAE, 0x00, 0xF4, 0x39, 0xAC, 0x97, 0x53, 0xF4, -0x29, 0xD6, 0x8F, 0xF2, 0x5B, 0x0A, 0x83, 0x70, 0x22, 0x3A, -0xCA, 0x6A, 0x9F, 0x0B, 0x40, 0x5E, 0x64, 0x8A, 0xB2, 0x41, -0xC5, 0xA8, 0xC5, 0xA5, 0x14, 0x78, 0x92, 0x3D, 0x14, 0xD5, -0x67, 0x13, 0x94, 0x0B, 0xE8, 0x08, 0xD1, 0xF3, 0xFC, 0xE9, -0x68, 0xDA, 0x27, 0xE8, 0xB3, 0x0C, 0xA6, 0x08, 0xA7, 0xFD, -0xCC, 0x87, 0xE9, 0x0B, 0x67, 0x05, 0xF8, 0xE2, 0x54, 0x46, -0xB6, 0xD1, 0xE8, 0x90, 0xA1, 0xE2, 0x42, 0x1B, 0x5C, 0x80, -0x31, 0x9D, 0x90, 0x34, 0x78, 0x95, 0xC7, 0x30, 0x32, 0x9E, -0xF8, 0x91, 0x5F, 0xE4, 0xBB, 0x8A, 0xD1, 0x6B, 0xB9, 0xA5, -0xA5, 0x4C, 0x02, 0x32, 0xA1, 0x37, 0xBB, 0x90, 0xE0, 0x5C, -0x96, 0x31, 0x2B, 0x80, 0xA4, 0x8B, 0x57, 0x9B, 0x63, 0x79, -0x62, 0xE4, 0x64, 0xDE, 0x9B, 0x8B, 0x31, 0x3E, 0xEE, 0xC4, -0x88, 0xC7, 0x71, 0x5C, 0xD6, 0x39, 0x84, 0x05, 0xE1, 0x8E, -0x62, 0xB5, 0x6C, 0x12, 0x3C, 0x8A, 0xB5, 0xCE, 0x37, 0xC1, -0x14, 0x6A, 0x16, 0x33, 0x4D, 0x2E, 0x18, 0x4D, 0x2E, 0x98, -0xAD, 0x39, 0xD2, 0x4C, 0x00, 0xF5, 0xF4, 0x8E, 0x08, 0xA3, -0x77, 0xA5, 0xC7, 0x93, 0x8A, 0xC1, 0x6B, 0x29, 0xFF, 0x0C, -0x79, 0x4C, 0xE5, 0xA9, 0x2E, 0xE7, 0xC7, 0xD3, 0x7D, 0xB4, -0x5A, 0x99, 0xFB, 0x17, 0x25, 0x3D, 0xDD, 0x7F, 0x3E, 0x6F, -0x34, 0x26, 0xD5, 0xCA, 0x62, 0x98, 0x4D, 0x51, 0xBE, 0x5F, -0xCD, 0xBE, 0xAF, 0x1E, 0x3A, 0x83, 0x1F, 0xBB, 0xB3, 0xCC, -0xDD, 0xD7, 0x23, 0x37, 0x45, 0x25, 0x17, 0x9A, 0x53, 0x5D, -0x59, 0xF7, 0x88, 0x4F, 0x2D, 0x91, 0x51, 0x31, 0x8D, 0x3A, -0xBD, 0x2D, 0xDA, 0x8B, 0xF8, 0x17, 0xA1, 0x49, 0xB0, 0xCC, -0xE4, 0x23, 0x4C, 0xEF, 0x38, 0xD9, 0xB0, 0xF9, 0xF1, 0x2D, -0x2F, 0xD8, 0x3E, 0x85, 0x98, 0xD6, 0x3E, 0x3A, 0x9A, 0xDE, -0xAB, 0x92, 0x6C, 0x57, 0x24, 0x6D, 0x78, 0x8F, 0x37, 0x80, -0x3F, 0x78, 0xD5, 0x75, 0x88, 0x0A, 0x62, 0xB4, 0x32, 0x62, -0x79, 0xEF, 0x45, 0x4E, 0xF8, 0x91, 0x24, 0x4B, 0x5D, 0x26, -0xFE, 0x47, 0x24, 0xF7, 0xF7, 0x65, 0x56, 0x58, 0xEC, 0x71, -0x6D, 0x0F, 0x05, 0x04, 0x4B, 0xCB, 0x49, 0x6C, 0xCA, 0x75, -0x47, 0x59, 0xE0, 0x49, 0xE0, 0x95, 0x19, 0xA7, 0x83, 0x18, -0xA3, 0x81, 0xCA, 0xE2, 0x51, 0x54, 0xD2, 0x4D, 0x01, 0x82, -0x1A, 0xFE, 0x31, 0x05, 0x81, 0x5E, 0x1F, 0x94, 0xCE, 0x61, -0x48, 0x1D, 0xDE, 0xD6, 0x96, 0xCB, 0x03, 0xD9, 0x6E, 0x7C, -0xF3, 0xA0, 0xD9, 0xDE, 0x86, 0xDD, 0x73, 0xB2, 0xE7, 0x58, -0x82, 0x1A, 0x77, 0xA5, 0xFD, 0x5F, 0xE9, 0xBE, 0x48, 0xE3, -0x83, 0x00, 0x9D, 0x5B, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, -0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_DSP2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x05, 0xD5, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0x95, 0x56, 0x69, 0x50, 0x53, 0x57, 0x14, -0xFE, 0x80, 0x84, 0x24, 0x8F, 0x97, 0x7D, 0x23, 0xDB, 0x4B, -0x62, 0x12, 0xB6, 0x40, 0x12, 0x90, 0x35, 0x89, 0x22, 0x8B, -0x02, 0x5A, 0x5A, 0x15, 0xC5, 0x5A, 0x15, 0x97, 0x71, 0xCA, -0xE8, 0x0F, 0xDB, 0x4E, 0x99, 0xDA, 0xAA, 0xD3, 0xDA, 0xE9, -0x54, 0xDB, 0x99, 0x5A, 0xAD, 0x9D, 0xB1, 0xFE, 0xE9, 0xA8, -0x6D, 0xA7, 0x56, 0xEB, 0xC2, 0xD4, 0xD6, 0xA2, 0x08, 0xDA, -0x8A, 0x88, 0x80, 0x46, 0xAD, 0x20, 0x08, 0x56, 0x65, 0x51, -0x20, 0xB2, 0xEF, 0x88, 0xA4, 0x0F, 0x97, 0x0E, 0xA0, 0x54, -0x7B, 0x66, 0xEE, 0xDC, 0x39, 0xE7, 0x9D, 0xF3, 0x7D, 0xE7, -0x9E, 0x73, 0xCF, 0x9B, 0x0B, 0x3C, 0x5F, 0x7C, 0x6D, 0x96, -0x88, 0x75, 0x06, 0x3D, 0xF5, 0xB5, 0xD3, 0x11, 0x7B, 0xD3, -0x66, 0xB3, 0xED, 0x52, 0x69, 0xF4, 0x19, 0xB1, 0x91, 0xD1, -0xA2, 0x49, 0xFC, 0x27, 0x15, 0x9F, 0x89, 0x86, 0x94, 0xA4, -0xE4, 0x28, 0x2E, 0x9F, 0x5D, 0x37, 0x32, 0xDC, 0x97, 0x26, -0x14, 0x2B, 0xA3, 0x79, 0x5C, 0x99, 0x50, 0x4A, 0x70, 0xA3, -0x94, 0x0A, 0xFF, 0xCC, 0xD6, 0xEE, 0xFB, 0xEB, 0x45, 0x5C, -0x62, 0x95, 0xBB, 0xB5, 0x63, 0xC7, 0xCB, 0x12, 0x78, 0x8F, -0x55, 0x9C, 0x0E, 0xBB, 0x9A, 0xDE, 0x4A, 0x9B, 0x9A, 0x5A, -0xE1, 0x70, 0x64, 0xC0, 0x1C, 0xE2, 0x40, 0x75, 0xF5, 0x0D, -0x94, 0x5C, 0xAB, 0x40, 0x65, 0xCD, 0x1D, 0x88, 0x45, 0x46, -0x38, 0xE3, 0x17, 0x52, 0x76, 0xBB, 0xCD, 0xA3, 0x90, 0x8B, -0xDB, 0xFF, 0xF7, 0x09, 0x84, 0x3C, 0x72, 0xA7, 0x97, 0xF7, -0xA0, 0x4D, 0x2C, 0x09, 0x06, 0x57, 0xC0, 0xC2, 0x89, 0xBC, -0xC3, 0x08, 0x31, 0x87, 0x41, 0x24, 0x91, 0x43, 0x28, 0x12, -0xA1, 0xA1, 0xBE, 0x16, 0x25, 0xA5, 0x7F, 0xC2, 0x19, 0xBB, -0x10, 0x5A, 0x9D, 0x81, 0x5D, 0x5F, 0x73, 0x71, 0xB3, 0x75, -0x6A, 0xAC, 0xAB, 0xB1, 0xB1, 0xA1, 0x7A, 0x32, 0x02, 0xAF, -0xB1, 0xCA, 0x9B, 0xAB, 0x56, 0xE4, 0xFD, 0x7C, 0xE4, 0x68, -0x4A, 0x5C, 0xDC, 0x6C, 0x30, 0x18, 0x0F, 0x21, 0xE0, 0x8A, -0x50, 0x54, 0x5A, 0x88, 0xCE, 0x8E, 0x26, 0xB0, 0x18, 0x1C, -0x50, 0x53, 0xC2, 0xA0, 0x55, 0xEB, 0x71, 0xB1, 0xFC, 0x0C, -0xE2, 0xA7, 0x27, 0x83, 0x14, 0x68, 0xF0, 0xE3, 0x9E, 0x4F, -0x30, 0xC2, 0x22, 0x8E, 0xB4, 0xB6, 0xB4, 0x66, 0xBC, 0x90, -0x60, 0xCD, 0xCA, 0x65, 0x15, 0x65, 0x2E, 0x57, 0x08, 0xC1, -0x37, 0xE2, 0xE1, 0x48, 0x07, 0xF8, 0x3C, 0x01, 0x04, 0x02, -0x19, 0x8A, 0xCF, 0xE7, 0xC3, 0xF3, 0x60, 0x04, 0x62, 0xA9, -0x0C, 0x2A, 0x8D, 0x01, 0x72, 0xA5, 0x0E, 0x8D, 0x75, 0x55, -0x90, 0x08, 0x04, 0x30, 0x1A, 0xED, 0x38, 0xF6, 0xCB, 0x1E, -0xDC, 0x6A, 0xAC, 0x3D, 0xDD, 0xDA, 0xE2, 0x4E, 0x9C, 0x48, -0x30, 0xAE, 0x07, 0x57, 0x5C, 0xAE, 0xBD, 0x94, 0x52, 0x8E, -0xDE, 0xDE, 0x1E, 0x74, 0xB5, 0x77, 0xA2, 0xA2, 0xAA, 0x02, -0x67, 0x0A, 0x4F, 0x42, 0x26, 0xD2, 0xC1, 0x60, 0x0C, 0x41, -0x7B, 0x5B, 0x37, 0x86, 0xFA, 0xFB, 0x20, 0x93, 0x8B, 0x61, -0x32, 0x98, 0xE1, 0xF1, 0x26, 0x70, 0xB5, 0xA2, 0x10, 0x49, -0xC9, 0x0B, 0x60, 0xA0, 0x14, 0x09, 0xFA, 0x29, 0x92, 0xD8, -0xFF, 0x24, 0x28, 0xAB, 0x6A, 0x38, 0x1D, 0xAA, 0x53, 0xA1, -0xBD, 0xA7, 0xF9, 0x51, 0xA6, 0xF0, 0xD0, 0x65, 0xCB, 0x5E, -0x83, 0xD4, 0xD4, 0x19, 0x48, 0x4E, 0x4C, 0xC0, 0xA6, 0x0D, -0xEF, 0x41, 0x28, 0xE0, 0xE0, 0xE4, 0xAF, 0xB9, 0xF0, 0x21, -0x78, 0x10, 0x4A, 0xC4, 0x20, 0x49, 0x09, 0x8A, 0x4B, 0x7E, -0x83, 0xD9, 0x92, 0x0E, 0xBE, 0x9F, 0xF4, 0xBC, 0xC9, 0x18, -0x34, 0x73, 0xD2, 0x12, 0x8D, 0x4A, 0x72, 0xA0, 0xA6, 0x50, -0x19, 0x6C, 0x4A, 0xA8, 0x68, 0x15, 0x81, 0x39, 0xDC, 0x8C, -0xDA, 0x9B, 0x55, 0xF0, 0x57, 0x1A, 0xD1, 0xDB, 0xD1, 0x09, -0x95, 0x5A, 0x89, 0x69, 0xD3, 0xE2, 0x21, 0x24, 0xBD, 0x90, -0x7B, 0x3C, 0x0F, 0x61, 0xE1, 0xF1, 0xE8, 0xEF, 0xEE, 0x40, -0x9B, 0xBB, 0x05, 0xD7, 0xAB, 0xAE, 0xC1, 0xE9, 0x4C, 0xC5, -0xBE, 0xEF, 0xB6, 0x8F, 0xC3, 0xF5, 0x9E, 0x48, 0x70, 0xAA, -0xBA, 0x3E, 0x51, 0xCA, 0x60, 0x82, 0x18, 0xBA, 0x01, 0x83, -0xCE, 0x0A, 0xB9, 0x44, 0x09, 0x83, 0x5E, 0x8F, 0x28, 0xA7, -0x03, 0x0C, 0x26, 0x1B, 0x47, 0x8E, 0xE6, 0xE2, 0x4A, 0x55, -0x3D, 0xB2, 0x96, 0x66, 0xA1, 0xE0, 0x78, 0x2E, 0x2A, 0x2B, -0x2F, 0xA3, 0xA5, 0xAD, 0x05, 0xFE, 0xFE, 0x0A, 0x5C, 0xBD, -0x76, 0x09, 0x71, 0x31, 0x89, 0xB0, 0x85, 0x06, 0x5C, 0x79, -0x8A, 0xF7, 0xCC, 0xA0, 0x2D, 0xCF, 0xCE, 0xCE, 0xAB, 0xBE, -0x79, 0xD7, 0x28, 0x97, 0xF2, 0x50, 0x7C, 0xBD, 0x0A, 0xF1, -0x31, 0x33, 0xA1, 0x37, 0x51, 0x60, 0xFA, 0x72, 0x40, 0xF2, -0x48, 0x88, 0x25, 0x42, 0x94, 0x95, 0x94, 0x82, 0xCB, 0x25, -0xA1, 0x33, 0x19, 0x70, 0xF1, 0x42, 0x39, 0xFE, 0xBE, 0x53, -0x43, 0x13, 0x68, 0xD0, 0xD3, 0xE9, 0x86, 0xBF, 0x4A, 0x8F, -0x16, 0xF7, 0x6D, 0x79, 0x42, 0x5C, 0x62, 0x41, 0x65, 0x4D, -0x55, 0xDD, 0xB8, 0x13, 0x84, 0x06, 0x47, 0x1C, 0x74, 0x9D, -0x2B, 0x4B, 0xE9, 0xF2, 0x66, 0x43, 0x29, 0xD5, 0x61, 0xA5, -0xD9, 0x17, 0xFB, 0xF2, 0x7E, 0x42, 0xFB, 0xFD, 0x21, 0x58, -0x2D, 0x16, 0xB0, 0x98, 0x1C, 0xFA, 0x56, 0x89, 0x10, 0x19, -0x13, 0x8E, 0x6B, 0x7F, 0xB9, 0xC0, 0xE7, 0x10, 0xE0, 0x09, -0x84, 0xF4, 0x25, 0x90, 0xA0, 0xEE, 0x4E, 0x2D, 0x7C, 0xD8, -0x1C, 0x74, 0x75, 0x75, 0x82, 0xD2, 0x9B, 0xF0, 0xC7, 0xB9, -0x82, 0x69, 0xCF, 0x94, 0x88, 0xD2, 0xFA, 0x2F, 0x54, 0xA9, -0x55, 0x28, 0x2F, 0xCA, 0xC7, 0xD9, 0x5B, 0x8D, 0xE8, 0xE6, -0x59, 0xF1, 0xF9, 0x0C, 0x1D, 0xBE, 0xF9, 0x76, 0x2B, 0x8A, -0x8A, 0x2E, 0xC0, 0x66, 0x0D, 0xC5, 0xC3, 0xA1, 0x61, 0x9A, -0x88, 0x05, 0x1E, 0x5F, 0x88, 0x86, 0x7B, 0xCD, 0xE8, 0x6A, -0xEB, 0x44, 0xB4, 0xC3, 0x09, 0x4A, 0xA3, 0xA5, 0xCB, 0xE1, -0x83, 0xE1, 0xFE, 0x6E, 0xF8, 0x7A, 0xB8, 0x90, 0xC8, 0x24, -0x82, 0x67, 0x9A, 0xAC, 0xD7, 0x1B, 0x1A, 0x94, 0x4A, 0xB5, -0x6A, 0x64, 0x78, 0x18, 0x65, 0xA5, 0xE7, 0x20, 0x31, 0x04, -0x61, 0xC9, 0xCC, 0x64, 0x98, 0x89, 0x0E, 0xAC, 0xDA, 0xF6, -0x03, 0xA2, 0x9D, 0x73, 0x61, 0x52, 0x49, 0xE8, 0x69, 0xFE, -0x1D, 0x84, 0x1F, 0x07, 0x0F, 0x1E, 0x12, 0x08, 0x0C, 0x08, -0x04, 0x93, 0xEE, 0x59, 0xEF, 0x40, 0x1F, 0xAE, 0x5C, 0xBA, -0x04, 0x47, 0x4C, 0x12, 0x5C, 0xD7, 0xCB, 0xA1, 0x53, 0xCB, -0x70, 0xAA, 0xA0, 0xC0, 0x6B, 0x1C, 0x81, 0x4A, 0xA3, 0xFE, -0x80, 0x24, 0xC8, 0x2D, 0x1C, 0x1E, 0x0F, 0xEC, 0x61, 0x06, -0x6E, 0xD5, 0xDF, 0x82, 0xBB, 0x7F, 0x10, 0x49, 0xF6, 0x28, -0x6C, 0x4C, 0xB5, 0xE1, 0xD3, 0x43, 0x87, 0x51, 0x7D, 0x9F, -0x87, 0x80, 0xE0, 0x70, 0x0C, 0xBA, 0x6F, 0xD3, 0x73, 0xD1, -0x8A, 0x06, 0x77, 0x03, 0x64, 0x32, 0x09, 0x34, 0x0A, 0x13, -0x08, 0x82, 0x0D, 0x8A, 0x32, 0xE3, 0xE0, 0x81, 0x1D, 0xD0, -0x53, 0xFA, 0xCB, 0xA5, 0x97, 0x5D, 0xE1, 0xE3, 0x4A, 0xD4, -0x58, 0xDF, 0xB0, 0x95, 0x01, 0xDF, 0x91, 0xFE, 0x9E, 0x3E, -0x0C, 0x78, 0x0F, 0x20, 0xCE, 0x1E, 0x8D, 0x20, 0xA5, 0x3F, -0xF2, 0xF3, 0x4F, 0x60, 0xFE, 0xEE, 0x42, 0x4C, 0x35, 0x39, -0xF1, 0x51, 0x9A, 0x16, 0x7E, 0x1D, 0x65, 0xF0, 0xE6, 0x0A, -0xD0, 0x49, 0x0F, 0x9A, 0xC5, 0x32, 0x0D, 0x21, 0xC6, 0x58, -0x90, 0x7E, 0x3C, 0xF4, 0xF6, 0x78, 0x63, 0xDF, 0xFE, 0xED, -0xB0, 0xC6, 0x38, 0x40, 0x83, 0xBF, 0xF1, 0xDC, 0x39, 0xA0, -0xB4, 0x94, 0xE6, 0xC1, 0xA0, 0x57, 0x9D, 0xDC, 0x5F, 0x84, -0x81, 0xFE, 0x21, 0xF8, 0x92, 0x7E, 0x38, 0xB6, 0xE7, 0x0B, -0x84, 0x59, 0xA6, 0x83, 0x4D, 0x67, 0x2A, 0x93, 0xEB, 0x10, -0xA8, 0x11, 0xDF, 0x63, 0x0E, 0xBA, 0x15, 0x96, 0x90, 0x50, -0x1C, 0xBD, 0x50, 0x8D, 0x26, 0xBA, 0x0F, 0xCD, 0x74, 0x3F, -0x7C, 0x98, 0x0F, 0x30, 0x27, 0xC2, 0x0A, 0x30, 0x38, 0x8E, -0x43, 0x27, 0x4F, 0x15, 0x4F, 0xC4, 0xFE, 0x57, 0x48, 0x16, -0x5F, 0xE8, 0x70, 0x38, 0x3C, 0x72, 0xB5, 0xD6, 0x33, 0x27, -0x75, 0x96, 0x67, 0xF3, 0xFB, 0x6B, 0x3C, 0x07, 0xF6, 0x7F, -0xEF, 0xD9, 0xB2, 0x6D, 0xBB, 0x27, 0x28, 0x28, 0xE4, 0xD0, -0x53, 0xBF, 0xA5, 0x69, 0x09, 0x9B, 0xDF, 0xCD, 0x4C, 0xEF, -0xCB, 0x4E, 0x8D, 0xE9, 0xD9, 0xBE, 0xE1, 0x1D, 0xCF, 0xC7, -0x6F, 0xAD, 0x3D, 0x4B, 0x9B, 0x99, 0x93, 0x02, 0x4F, 0x14, -0xAB, 0x39, 0x34, 0x54, 0xA3, 0x52, 0xE7, 0x31, 0x19, 0x64, -0xBD, 0x5A, 0xAB, 0x6D, 0x8A, 0x32, 0x50, 0xAB, 0x5F, 0x3A, -0xF8, 0x45, 0xC2, 0xE5, 0x4A, 0x43, 0xA4, 0x12, 0xC5, 0xDA, -0xD8, 0x08, 0xEB, 0x26, 0x2E, 0x97, 0xF7, 0xE1, 0x9C, 0xD7, -0x57, 0x7C, 0xB9, 0x2C, 0x73, 0xD1, 0xD6, 0x9C, 0x15, 0x99, -0xD2, 0xB1, 0x7E, 0xEB, 0xB3, 0xE6, 0x53, 0x9F, 0xAD, 0xCE, -0xD4, 0xED, 0xDA, 0x98, 0x13, 0x70, 0x7C, 0xEF, 0x6E, 0xBF, -0x97, 0x02, 0x17, 0x8B, 0x94, 0x59, 0xB6, 0x88, 0x88, 0x2D, -0x94, 0xCE, 0xB4, 0x24, 0x29, 0x65, 0xCE, 0xF4, 0xBB, 0x37, -0x4A, 0x1C, 0xEB, 0x32, 0x53, 0x22, 0xE7, 0x2D, 0x98, 0xBB, -0x98, 0xFE, 0x9C, 0x63, 0xB5, 0xCF, 0x0C, 0x4D, 0x8C, 0x34, -0x67, 0x7C, 0xF5, 0xF6, 0xF2, 0x35, 0xCB, 0x5F, 0x49, 0xCA, -0x99, 0x1E, 0x6D, 0xC9, 0xB1, 0xC7, 0x85, 0xAF, 0x4F, 0x8A, -0x8B, 0xDC, 0x94, 0xBD, 0x60, 0xF6, 0x52, 0xDA, 0x87, 0x31, -0x29, 0xB8, 0xD1, 0x60, 0x8A, 0xB6, 0xD8, 0xC2, 0xD5, 0x4F, -0x54, 0xA6, 0x54, 0x2A, 0x25, 0xC0, 0xF6, 0x23, 0x19, 0x84, -0x90, 0x78, 0x12, 0xC8, 0x5C, 0x9D, 0x6E, 0x0F, 0x48, 0x49, -0x4B, 0x1F, 0x7D, 0x00, 0xB0, 0xF0, 0xF8, 0xA2, 0x3C, 0xB2, -0xD3, 0xCB, 0x57, 0xA1, 0x56, 0xC9, 0xF9, 0x22, 0xF1, 0x54, -0x3C, 0xAF, 0x17, 0xE6, 0x30, 0xB3, 0x5C, 0xA1, 0xA0, 0xF8, -0xA3, 0x41, 0x81, 0x46, 0x33, 0x49, 0xEF, 0x1C, 0xF0, 0x95, -0xA3, 0xC0, 0xAC, 0x9D, 0xEB, 0x16, 0x13, 0x49, 0x11, 0x81, -0xC4, 0x23, 0xDB, 0xE3, 0x3F, 0x00, 0x5B, 0xA7, 0x0F, 0xF6, -0xB3, 0xD9, 0x22, 0xB8, 0xF6, 0x68, 0x3B, 0x99, 0x31, 0x2F, -0x8B, 0x9C, 0xF7, 0xDA, 0x22, 0xDE, 0x28, 0xC9, 0xA8, 0xFF, -0xAB, 0x69, 0xB3, 0x9E, 0xFB, 0x02, 0x61, 0x3D, 0x09, 0xF6, -0x79, 0x92, 0x15, 0x63, 0x8C, 0xEE, 0x35, 0x26, 0xDB, 0xB1, -0xCB, 0x67, 0x8C, 0xDF, 0xD8, 0xFD, 0xD1, 0x09, 0xFE, 0x01, -0x77, 0x7C, 0xD0, 0x0A, 0x90, 0xC2, 0xD1, 0xF9, 0x00, 0x00, -0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 - -}; - -static const unsigned char Toolbar_Fullscreen2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x04, 0x43, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xED, 0x54, 0x6B, 0x4C, 0x9B, 0x65, 0x18, -0x3D, 0xBD, 0xAD, 0x95, 0xD2, 0x0B, 0x97, 0x16, 0x3A, 0x0A, -0xB4, 0xFD, 0xBE, 0x52, 0x06, 0x28, 0x88, 0x98, 0x28, 0xDD, -0xAA, 0x0C, 0x5C, 0xB6, 0x61, 0x18, 0xDB, 0x0F, 0x0D, 0xB7, -0x0D, 0x30, 0x12, 0x13, 0xA7, 0xC6, 0xC5, 0xC5, 0x6C, 0x8E, -0x28, 0x82, 0x66, 0x19, 0x46, 0x1D, 0x9B, 0x8A, 0xE2, 0x8C, -0x19, 0x6E, 0x51, 0x13, 0x67, 0x1A, 0x49, 0xB6, 0x78, 0x09, -0x31, 0x23, 0x73, 0x4B, 0x5C, 0x50, 0x33, 0x21, 0x9B, 0xB8, -0x79, 0xCB, 0xC6, 0x60, 0x8C, 0x8B, 0x04, 0x3A, 0x2E, 0xAD, -0xE7, 0x6D, 0x3F, 0x12, 0x7E, 0xF8, 0x43, 0xE2, 0xDF, 0x7D, -0xC9, 0xF9, 0x9E, 0xF7, 0xF6, 0x9C, 0xE7, 0x79, 0xCE, 0x7B, -0x01, 0x6E, 0x7F, 0xB7, 0xBF, 0xFF, 0xFB, 0x69, 0x96, 0x1A, -0xF5, 0xF5, 0x0D, 0xEE, 0xFE, 0xFE, 0xFE, 0xF1, 0xA7, 0x77, -0x3E, 0xB9, 0xA7, 0xAE, 0xBA, 0xBA, 0xD5, 0x68, 0x30, 0xFA, -0xC3, 0x91, 0x79, 0x7B, 0x41, 0x5E, 0xDE, 0x36, 0xD9, 0xEB, -0x29, 0xF5, 0x49, 0x52, 0x59, 0x96, 0x2C, 0x95, 0xF9, 0x14, -0x64, 0x0B, 0xF8, 0xE4, 0x0D, 0xAB, 0xED, 0xB6, 0xDC, 0xCD, -0x1B, 0x37, 0xB4, 0x1C, 0x79, 0xFB, 0xAD, 0xEE, 0xC3, 0x87, -0x0E, 0x36, 0xEF, 0x7A, 0x7E, 0x6F, 0x4B, 0x69, 0x59, 0xE9, -0x7B, 0xDD, 0x47, 0x8F, 0x4E, 0x0B, 0x5E, 0x95, 0xC2, 0xAF, -0xAA, 0xA8, 0x2C, 0x6F, 0x08, 0x9E, 0x08, 0x1E, 0x69, 0x6D, -0x7E, 0x11, 0x15, 0x75, 0x55, 0xC8, 0xF7, 0xE5, 0xAE, 0x28, -0xD3, 0x6F, 0x7E, 0xBC, 0x80, 0xD3, 0x1F, 0x75, 0xE1, 0xA5, -0x7D, 0x7B, 0x50, 0x59, 0xDB, 0x58, 0x17, 0xEC, 0x39, 0x79, -0x8C, 0xC3, 0x11, 0xB5, 0x12, 0x44, 0x13, 0x28, 0x2C, 0x78, -0xFC, 0xDD, 0xCE, 0x0F, 0xF0, 0x58, 0xF3, 0x5E, 0xB8, 0x48, -0x7E, 0x7E, 0x18, 0x38, 0x77, 0x1D, 0x38, 0x43, 0x7B, 0xFA, -0x2A, 0xD0, 0xFB, 0x3B, 0xF0, 0xE5, 0x9F, 0xC0, 0xC9, 0x3F, -0x80, 0x2F, 0x7E, 0x05, 0x4E, 0x5C, 0x04, 0x3E, 0xB9, 0x04, -0x1C, 0x1F, 0x00, 0x3E, 0xBE, 0x00, 0xC4, 0xE7, 0xE4, 0xE1, -0xAE, 0xDD, 0x07, 0xF0, 0xE1, 0x99, 0x41, 0x4C, 0x8C, 0xDE, -0x2C, 0x51, 0xD4, 0x51, 0x69, 0xF9, 0x13, 0x41, 0xB4, 0xA7, -0xBE, 0x1F, 0x5F, 0xF8, 0x2A, 0xD8, 0x86, 0xDE, 0x09, 0x60, -0x9A, 0x44, 0x1A, 0xCE, 0x2C, 0x44, 0x88, 0x30, 0x10, 0x5A, -0x88, 0x61, 0x6E, 0x11, 0x08, 0x8B, 0xC5, 0xF4, 0xD0, 0xAD, -0x8A, 0x39, 0xEA, 0xEE, 0x10, 0x79, 0x02, 0x83, 0x43, 0x80, -0xD1, 0xA4, 0x47, 0x60, 0x53, 0x09, 0xBA, 0xBB, 0x12, 0xC6, -0xC4, 0x32, 0x31, 0xA3, 0x55, 0x22, 0xE9, 0xAB, 0x5F, 0xD9, -0xBF, 0xB6, 0x8F, 0xDE, 0x67, 0x99, 0x91, 0xD9, 0x04, 0xDC, -0x62, 0x3B, 0x22, 0x08, 0x59, 0x9F, 0x5E, 0xC7, 0x45, 0xB4, -0x1A, 0xAE, 0x9C, 0x67, 0xA0, 0x6B, 0x53, 0xC0, 0xF5, 0x99, -0x58, 0xC0, 0x29, 0xDA, 0x49, 0x22, 0x34, 0x0F, 0xCC, 0xFE, -0x0D, 0xA4, 0x50, 0xD9, 0xE1, 0x7B, 0x9A, 0x77, 0xE3, 0xF3, -0x53, 0x6D, 0xE4, 0x0D, 0x2B, 0x01, 0xB4, 0x77, 0x9A, 0xB3, -0x4C, 0xF8, 0xF6, 0x67, 0xD6, 0x64, 0x00, 0xC6, 0x43, 0xC0, -0xCC, 0x1C, 0x30, 0x41, 0x8C, 0x4C, 0x02, 0x97, 0x47, 0x81, -0xBF, 0xB8, 0x65, 0xA3, 0x24, 0x00, 0xE7, 0xB0, 0xA8, 0x08, -0xAF, 0x56, 0xD2, 0x5B, 0x82, 0x10, 0xFB, 0x07, 0x91, 0x7B, -0xB1, 0x98, 0x15, 0xB5, 0xCD, 0x47, 0x97, 0x48, 0xF7, 0x3E, -0xB0, 0x69, 0x8C, 0x19, 0xFF, 0x44, 0x69, 0x7A, 0x58, 0x41, -0xC7, 0x39, 0x60, 0x7F, 0x2F, 0xF0, 0xCE, 0xD7, 0xC0, 0x67, -0xE7, 0x81, 0x7E, 0x06, 0x18, 0xA5, 0x0C, 0x9A, 0x64, 0xC0, -0xE0, 0xA2, 0x14, 0x59, 0x80, 0xC9, 0x47, 0xCB, 0xB6, 0xC6, -0x09, 0xAC, 0x72, 0x10, 0x36, 0x56, 0xCA, 0x79, 0x9D, 0x85, -0x36, 0x9D, 0xB1, 0xDC, 0x81, 0x2A, 0x91, 0x42, 0x34, 0xC0, -0x94, 0xE7, 0x7E, 0x7F, 0x4B, 0x10, 0xF8, 0x94, 0xD1, 0xBF, -0xFB, 0x8D, 0x64, 0xB3, 0x1C, 0xA4, 0x83, 0x43, 0x02, 0x7C, -0x39, 0xC0, 0xDD, 0x32, 0x50, 0x48, 0xA2, 0x82, 0x04, 0x20, -0x87, 0x04, 0xDE, 0x38, 0x20, 0x53, 0x0F, 0x64, 0xB0, 0xDA, -0x4C, 0xEE, 0x85, 0x8D, 0xD6, 0xCA, 0x0A, 0x8C, 0x64, 0x33, -0x33, 0x11, 0xB3, 0x99, 0xF2, 0x3A, 0xB2, 0x8A, 0x04, 0x77, -0x34, 0x40, 0xA8, 0xE2, 0xE5, 0xFB, 0xAE, 0x8E, 0x00, 0xAB, -0x99, 0x89, 0x87, 0x59, 0xE5, 0x91, 0xAC, 0x88, 0xD9, 0x64, -0x73, 0xA1, 0xCB, 0x48, 0x22, 0x12, 0x4A, 0xB4, 0x6B, 0x38, -0x96, 0xC3, 0x20, 0xD9, 0x89, 0x6C, 0x5B, 0x01, 0xD9, 0xCE, -0xF1, 0x44, 0x65, 0x0D, 0xF7, 0xCD, 0x41, 0x6B, 0x65, 0xC0, -0x78, 0xB2, 0x5A, 0xD6, 0x37, 0x96, 0x0B, 0x6E, 0xCD, 0x1B, -0x35, 0xFE, 0x16, 0x9D, 0xE5, 0xC1, 0xC0, 0x90, 0x27, 0x11, -0xB9, 0xD4, 0x36, 0x9E, 0x99, 0x39, 0x49, 0x98, 0x4A, 0x05, -0x53, 0x69, 0xDD, 0x0C, 0x92, 0x21, 0xC0, 0xCC, 0xD3, 0xD8, -0x77, 0x10, 0x76, 0xC2, 0xC6, 0xF9, 0x24, 0x6E, 0xBE, 0x85, -0xD9, 0x9B, 0x04, 0x29, 0x6D, 0x1C, 0x77, 0x34, 0x81, 0x63, -0xBF, 0x50, 0xEE, 0x1D, 0xCE, 0x64, 0x43, 0xFA, 0xE5, 0x63, -0xC3, 0x6A, 0x5B, 0x79, 0xD3, 0x43, 0xFB, 0xC2, 0xAD, 0xB0, -0x5D, 0x1C, 0x80, 0xBD, 0x80, 0xD9, 0x89, 0xF2, 0xE3, 0x01, -0xEE, 0x79, 0x34, 0x4B, 0x89, 0x36, 0xCB, 0x1C, 0xAB, 0x40, -0xA6, 0xF5, 0x28, 0x7D, 0x99, 0xD6, 0x43, 0xEB, 0xE5, 0x5A, -0x2F, 0xDB, 0x2E, 0x06, 0xF4, 0x99, 0x62, 0xFB, 0x52, 0x74, -0x6D, 0x00, 0x07, 0x3D, 0x3D, 0xB0, 0xE4, 0x97, 0x6D, 0xD6, -0x34, 0x3E, 0xB1, 0xAB, 0x73, 0xE8, 0xC6, 0x2C, 0xD6, 0x0D, -0x75, 0xE1, 0xAC, 0x69, 0x3D, 0x36, 0x96, 0x9A, 0xE0, 0xA6, -0x93, 0x9C, 0xC1, 0x60, 0x84, 0x97, 0xB2, 0xC9, 0x94, 0x46, -0x22, 0x32, 0x29, 0x47, 0x66, 0x12, 0x90, 0x4E, 0x38, 0xC5, -0x1E, 0xA5, 0xF0, 0x58, 0x52, 0x26, 0x2B, 0xFB, 0xC9, 0x94, -0x4E, 0x9F, 0xC6, 0x53, 0x77, 0x69, 0x06, 0x4D, 0x57, 0x5E, -0x45, 0xDF, 0x88, 0x16, 0xA9, 0xAE, 0x1C, 0xB7, 0x56, 0xBB, -0x30, 0x8D, 0x39, 0x4B, 0x3A, 0xA4, 0xE2, 0x2D, 0x78, 0x64, -0xB0, 0x13, 0x49, 0x45, 0xCF, 0xA0, 0xC4, 0x69, 0xC5, 0xE2, -0xDC, 0x1C, 0xF4, 0x94, 0xCC, 0x10, 0x89, 0x40, 0x1D, 0xA6, -0xA8, 0xEA, 0x08, 0xEF, 0x93, 0x2A, 0x7A, 0x32, 0x45, 0x57, -0xDC, 0xC0, 0x64, 0xB5, 0x0A, 0x21, 0xCA, 0xE1, 0xE4, 0xB8, -0x8A, 0xD9, 0xF7, 0x5D, 0x59, 0xC4, 0xA3, 0x37, 0x8E, 0x63, -0xCC, 0x92, 0x09, 0x7D, 0x8A, 0x8C, 0x42, 0x77, 0x9A, 0x1A, -0x1D, 0x1D, 0x87, 0xDB, 0x6B, 0x6A, 0x6A, 0xDA, 0xAA, 0xB6, -0xD7, 0xBF, 0xF9, 0xC2, 0xB3, 0x4F, 0x75, 0x19, 0x0D, 0xBA, -0x9D, 0x74, 0xAF, 0xE5, 0x91, 0x6E, 0x10, 0x40, 0x0C, 0xF5, -0xFF, 0x82, 0xE8, 0xF8, 0xB2, 0x75, 0xB5, 0x69, 0xF6, 0x84, -0xE7, 0x9A, 0x76, 0x6C, 0x7F, 0xFF, 0xE1, 0x2D, 0x95, 0xAF, -0x6F, 0xDB, 0xBA, 0xB5, 0xF5, 0x40, 0x7B, 0xFB, 0x6B, 0xE2, -0x6A, 0x50, 0x79, 0xB0, 0x78, 0x98, 0xC4, 0x8D, 0x5E, 0xF6, -0x00, 0x46, 0x56, 0xF0, 0xD6, 0xA9, 0x96, 0xB5, 0xC5, 0x6B, -0x72, 0x8B, 0x10, 0xD7, 0xF2, 0xA6, 0x98, 0xC8, 0x27, 0x78, -0x46, 0x10, 0xA7, 0xBC, 0x1F, 0x4B, 0xDF, 0x4A, 0x02, 0x2C, -0x05, 0x51, 0x29, 0x7E, 0x7C, 0x38, 0xC0, 0x07, 0x04, 0x93, -0x62, 0x62, 0x0D, 0x21, 0x2E, 0x85, 0x9F, 0x08, 0x10, 0x6B, -0x95, 0x76, 0xF1, 0x0A, 0x21, 0x7C, 0xD6, 0x29, 0x1C, 0x7E, -0x85, 0x33, 0x5B, 0x04, 0xE0, 0xC5, 0x86, 0xAC, 0x74, 0x04, -0xF8, 0x10, 0xC0, 0xAB, 0x8C, 0x49, 0xFF, 0x11, 0xB2, 0xE2, -0xE3, 0x5B, 0xC6, 0x23, 0xC6, 0x9D, 0xFF, 0x00, 0xED, 0x92, -0x2E, 0x92, 0xE2, 0xA4, 0xC8, 0x12, 0x00, 0x00, 0x00, 0x00, -0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Gfx2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x06, 0x74, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xAD, 0x55, 0x0B, 0x50, 0x94, 0xD7, 0x15, -0xFE, 0xFE, 0xC7, 0xFE, 0xFB, 0xDE, 0x65, 0xDF, 0x4B, 0x78, -0xBA, 0xB0, 0x20, 0xEC, 0x2E, 0x0B, 0x12, 0xC4, 0x85, 0x29, -0x68, 0x8C, 0x44, 0xB1, 0x55, 0x62, 0x30, 0xA9, 0x8D, 0x31, -0x46, 0xA5, 0x31, 0x68, 0x71, 0xA2, 0x4D, 0x8D, 0x35, 0x6D, -0x41, 0x4D, 0xAA, 0xCD, 0xA3, 0x35, 0xA3, 0x13, 0xFA, 0x70, -0x9A, 0x4A, 0x02, 0x36, 0x35, 0x48, 0x0A, 0x22, 0x04, 0xAD, -0x94, 0x50, 0xC5, 0xBA, 0xD8, 0x8E, 0x3C, 0x56, 0x1B, 0x11, -0x05, 0x74, 0x01, 0x95, 0x7D, 0xF0, 0xDA, 0xA7, 0xDB, 0x7F, -0xB1, 0x3A, 0xCE, 0x38, 0x93, 0x4E, 0x93, 0x9E, 0x99, 0x7B, -0xFE, 0xF9, 0xE7, 0xDE, 0xF3, 0x7D, 0x73, 0xCF, 0x77, 0xCE, -0xB9, 0x84, 0xD1, 0x68, 0x3A, 0x60, 0x48, 0x8B, 0x7A, 0xAE, -0xE0, 0x09, 0xF3, 0x4B, 0xEB, 0x37, 0xEC, 0x6B, 0xC0, 0xFF, -0xD9, 0x08, 0x8B, 0x45, 0x77, 0x8C, 0x27, 0x2E, 0x28, 0x8A, -0x8D, 0xFE, 0x16, 0xAE, 0xF7, 0x1F, 0x40, 0xA4, 0x56, 0xD3, -0x9E, 0x30, 0x4B, 0xFB, 0xCB, 0x3D, 0x6F, 0x55, 0xD6, 0x7E, -0x55, 0xE0, 0x46, 0xA0, 0xE2, 0x03, 0x48, 0xC7, 0x08, 0xB8, -0xF6, 0x7F, 0x25, 0x41, 0xF6, 0xBC, 0xE8, 0x9F, 0xDC, 0xBA, -0x65, 0xD8, 0xD5, 0x77, 0xA5, 0x09, 0x53, 0x93, 0x7E, 0xD4, -0x1C, 0x69, 0x43, 0x43, 0x53, 0x3D, 0xBA, 0x2E, 0xB6, 0x63, -0x77, 0xC5, 0xF2, 0xA6, 0x55, 0xDF, 0xDD, 0xF8, 0x2A, 0x41, -0xA8, 0x2F, 0x3D, 0x1C, 0xB4, 0x3D, 0x0D, 0xF3, 0x4E, 0x5F, -0x44, 0xCB, 0x5A, 0x2C, 0x3B, 0xFD, 0x8A, 0xAC, 0xAC, 0x1D, -0x79, 0x0B, 0x3B, 0x42, 0xAB, 0x61, 0x25, 0x57, 0x12, 0x53, -0x8F, 0x10, 0xE4, 0xE7, 0x99, 0x9E, 0x1A, 0x1E, 0xE6, 0x37, -0xB5, 0xB5, 0x9D, 0x83, 0x52, 0x03, 0x90, 0xFF, 0xD9, 0x08, -0xB1, 0xEB, 0x67, 0x15, 0x2D, 0xA8, 0xAE, 0xFE, 0x05, 0x5E, -0xDE, 0x90, 0x8B, 0xCC, 0x5C, 0xDD, 0xB6, 0x85, 0xB9, 0x2F, -0xBE, 0x17, 0xDE, 0x7B, 0x66, 0x07, 0x1A, 0x8C, 0x2D, 0xFA, -0xF1, 0x8F, 0xAC, 0x7B, 0x1C, 0xBF, 0xC3, 0xB3, 0x19, 0xF3, -0x19, 0x0C, 0x78, 0x0A, 0x71, 0x86, 0x57, 0x8E, 0xB1, 0x50, -0xEC, 0xD1, 0xBF, 0x91, 0xF2, 0x95, 0x57, 0x1F, 0x10, 0x7C, -0xE7, 0xE9, 0x27, 0x8A, 0xBA, 0x6D, 0x8E, 0x63, 0x87, 0x2A, -0x2F, 0x20, 0x61, 0x16, 0x30, 0x31, 0x1D, 0x04, 0x9F, 0x4B, -0x41, 0x1E, 0x01, 0x48, 0x23, 0xEE, 0x1D, 0xAA, 0x6B, 0xEC, -0x41, 0xF3, 0x9F, 0xDB, 0x20, 0x77, 0xE8, 0xA0, 0xDF, 0x59, -0xE3, 0x1C, 0x11, 0xFE, 0xE1, 0x8D, 0x91, 0xD7, 0xB6, 0x25, -0x91, 0x1D, 0x9B, 0xE9, 0x16, 0x7B, 0xBC, 0xCE, 0x0A, 0x78, -0x39, 0x62, 0x98, 0x83, 0x09, 0x17, 0x0F, 0x53, 0xFB, 0x1A, -0x82, 0xC1, 0x8C, 0xDA, 0x06, 0x5A, 0xDD, 0x79, 0x61, 0x86, -0xE0, 0xFB, 0xA5, 0xC5, 0xCF, 0xB4, 0x9D, 0xEA, 0x3E, 0xBA, -0xE3, 0xA7, 0x36, 0xA8, 0x55, 0x00, 0xC3, 0x99, 0x80, 0x54, -0x0A, 0xF0, 0x79, 0x04, 0x28, 0x3A, 0x84, 0x48, 0xB1, 0x08, -0x12, 0xED, 0x3D, 0x22, 0x3B, 0x9A, 0x51, 0x5D, 0x75, 0x14, -0xB6, 0x60, 0xDF, 0xA9, 0x38, 0x72, 0x49, 0xA5, 0xAB, 0xF5, -0xB5, 0x6F, 0xDB, 0x8E, 0x01, 0x5B, 0x9C, 0x50, 0x16, 0x00, -0x72, 0x48, 0x8F, 0x70, 0x82, 0x4B, 0x6B, 0x4E, 0x52, 0xD9, -0xCD, 0x34, 0x5E, 0xF1, 0x3A, 0x09, 0x06, 0x6F, 0x12, 0xAF, -0xEF, 0xDC, 0xBC, 0xB8, 0xA1, 0xF6, 0x93, 0x13, 0xEB, 0x36, -0x0E, 0x61, 0x76, 0x1A, 0x07, 0x23, 0x37, 0x03, 0xF0, 0x85, -0x5C, 0xA0, 0x38, 0x23, 0x88, 0x90, 0x4D, 0x43, 0x12, 0xC5, -0xE0, 0xAE, 0x64, 0x1A, 0x53, 0x8C, 0x03, 0x59, 0x6A, 0x0A, -0x34, 0x04, 0xD8, 0x74, 0xB0, 0xF2, 0x37, 0x86, 0x75, 0x6F, -0x75, 0xDE, 0xDC, 0x1F, 0xCD, 0xCF, 0xF9, 0x14, 0x8F, 0x67, -0xDD, 0x46, 0xE4, 0x3F, 0xAE, 0x8D, 0xD4, 0xAF, 0xC1, 0x87, -0xB9, 0xD0, 0x1E, 0x6D, 0xC5, 0x6C, 0xEB, 0xF6, 0xE0, 0x3C, -0x6C, 0xA1, 0xF7, 0xA2, 0x8E, 0xCA, 0xC8, 0xCC, 0xD2, 0x71, -0x99, 0x0B, 0x2F, 0x74, 0x5A, 0x5F, 0x45, 0xEB, 0x49, 0x0E, -0xE2, 0x13, 0xC6, 0xA1, 0x51, 0xCB, 0x20, 0x92, 0xAA, 0x40, -0x73, 0x14, 0xAC, 0x16, 0x34, 0xA6, 0x3C, 0x34, 0x48, 0xAF, -0x0C, 0xC3, 0x18, 0x87, 0x8A, 0x11, 0xA3, 0x7E, 0x52, 0xDE, -0x25, 0xF6, 0xE4, 0x58, 0x87, 0xAE, 0x23, 0xB7, 0xCC, 0x84, -0x4B, 0xC3, 0x8D, 0xC8, 0x22, 0x88, 0x2B, 0xCE, 0xBE, 0xE0, -0x17, 0x42, 0xFD, 0xC4, 0xC9, 0x7E, 0xDC, 0x08, 0x70, 0xA9, -0xB6, 0xD0, 0xDB, 0xEC, 0xA5, 0x03, 0xE4, 0xB4, 0xCB, 0xE7, -0xE6, 0x89, 0xD8, 0x5C, 0xD1, 0xD3, 0x38, 0x7B, 0x26, 0x84, -0x1F, 0x96, 0xDD, 0xC6, 0x73, 0xCB, 0x6F, 0xE2, 0xC7, 0x2F, -0x3B, 0x71, 0xFC, 0x30, 0x01, 0xF7, 0xB0, 0x0A, 0x31, 0x29, -0x71, 0xF0, 0xA9, 0x64, 0x38, 0x3B, 0x60, 0x86, 0xD3, 0x91, -0x8A, 0xFC, 0x11, 0xE5, 0xB2, 0x2F, 0xC4, 0x10, 0x96, 0x94, -0xE0, 0x16, 0x29, 0x42, 0x34, 0x56, 0xFB, 0x2A, 0x63, 0xE2, -0xC7, 0x4D, 0x43, 0xE2, 0x31, 0xF7, 0x67, 0x20, 0x0A, 0x11, -0xA4, 0x12, 0x59, 0x70, 0xCF, 0x8C, 0x06, 0x07, 0x0E, 0xFE, -0x56, 0x5C, 0x57, 0x57, 0xE2, 0x8E, 0xD4, 0xF4, 0xA2, 0xEA, -0xA3, 0x14, 0x10, 0x11, 0x23, 0x08, 0xF9, 0xFD, 0xC0, 0x64, -0x90, 0xDD, 0x16, 0xCD, 0xE4, 0x5E, 0xFA, 0x58, 0x08, 0x65, -0xEF, 0x2B, 0xA0, 0x5F, 0x41, 0x20, 0x65, 0x0C, 0x78, 0xB7, -0xAE, 0xD6, 0x21, 0x5C, 0x12, 0x5D, 0xBC, 0x7F, 0x7C, 0xAE, -0xA8, 0xD3, 0x85, 0xEC, 0x60, 0xE3, 0x95, 0x74, 0xA2, 0xBB, -0x71, 0x50, 0x74, 0xE1, 0x54, 0x7A, 0xD7, 0x9D, 0x8E, 0x41, -0xB3, 0x7B, 0xB4, 0x37, 0x93, 0x2D, 0xC2, 0x70, 0x2C, 0xD9, -0xDB, 0xD3, 0xCB, 0x93, 0x08, 0x29, 0x36, 0x15, 0x2C, 0x28, -0x03, 0x08, 0x69, 0x3F, 0x22, 0x04, 0x02, 0xC8, 0x23, 0x19, -0x48, 0xE3, 0xDC, 0xE0, 0xCE, 0x0A, 0xC1, 0xA5, 0x93, 0x62, -0x77, 0xA9, 0x0B, 0x6B, 0x12, 0x46, 0x51, 0xC1, 0x96, 0xCC, -0xF6, 0x64, 0x7D, 0x68, 0xAF, 0x44, 0x73, 0xBD, 0x23, 0x19, -0x77, 0x47, 0xFD, 0x83, 0x63, 0x4C, 0xD4, 0xE8, 0xF1, 0x40, -0x9E, 0xA6, 0xCB, 0x21, 0xB2, 0x75, 0xA4, 0x2B, 0x02, 0x85, -0x03, 0x32, 0x74, 0xDF, 0x2F, 0x53, 0xF2, 0xD6, 0xC8, 0xF0, -0x34, 0x48, 0x39, 0xA6, 0xBD, 0x4E, 0x48, 0x24, 0x80, 0x4C, -0x4A, 0x42, 0xAE, 0x26, 0xA0, 0x54, 0x0A, 0xA0, 0x10, 0x33, -0x50, 0x8B, 0xED, 0x88, 0xF5, 0xDE, 0x40, 0xCC, 0x7C, 0x02, -0xD2, 0x27, 0x65, 0x68, 0xF8, 0x14, 0xC8, 0x2D, 0xF1, 0xCB, -0x39, 0xBE, 0xE0, 0x5C, 0x02, 0x88, 0x8D, 0xD6, 0x90, 0x19, -0x5E, 0x8B, 0xAD, 0x4C, 0x90, 0x79, 0xC2, 0x45, 0x2F, 0xE2, -0xDE, 0xB0, 0x13, 0x1E, 0x97, 0xDA, 0x81, 0x45, 0xF7, 0x09, -0xA8, 0x5E, 0x5B, 0xB7, 0x2F, 0x25, 0x55, 0xBC, 0x93, 0xC0, -0x7C, 0x6A, 0xCA, 0x97, 0x0A, 0x95, 0xC6, 0x0B, 0xB9, 0x9C, -0x82, 0x8C, 0xED, 0x01, 0xB5, 0x8C, 0x86, 0x52, 0x4C, 0x83, -0xD1, 0x8E, 0x81, 0x2F, 0x70, 0x40, 0x1D, 0x08, 0xC1, 0x13, -0xC3, 0xEA, 0xB2, 0x68, 0xD4, 0xB7, 0xE5, 0x7C, 0x0F, 0x9F, -0x6B, 0xA1, 0x8E, 0xDB, 0xE5, 0xAF, 0x6B, 0x85, 0x97, 0x48, -0xAB, 0x5B, 0x37, 0x3A, 0xCC, 0x3D, 0xDF, 0x9D, 0x22, 0x48, -0x73, 0x15, 0x04, 0xE6, 0xE0, 0xC9, 0x0F, 0xCF, 0xDD, 0xD3, -0x60, 0xA6, 0x71, 0xB9, 0xB4, 0x38, 0x20, 0x12, 0x5D, 0xC5, -0x2C, 0x56, 0x9A, 0x84, 0x78, 0x1A, 0x26, 0x3D, 0x81, 0x54, -0x23, 0x07, 0xA9, 0x06, 0x01, 0x92, 0x13, 0x23, 0x60, 0xD6, -0x88, 0x10, 0xA7, 0x76, 0x43, 0x90, 0xD7, 0x83, 0x2C, 0xF1, -0x97, 0x80, 0x4D, 0xC9, 0x3C, 0x3F, 0xB7, 0xB5, 0x3B, 0x09, -0x1F, 0xEF, 0x98, 0x00, 0x33, 0x45, 0xE7, 0xB9, 0x6C, 0xE2, -0xCE, 0x33, 0xA5, 0xCE, 0x55, 0x42, 0x8D, 0xC7, 0x8A, 0x13, -0xF9, 0xFB, 0xE1, 0x7C, 0x90, 0xA2, 0xB0, 0x73, 0xB8, 0x02, -0x7C, 0x12, 0x03, 0x48, 0x37, 0x02, 0x89, 0x3A, 0x1A, 0x51, -0xF1, 0x14, 0x62, 0xA3, 0x42, 0x2C, 0x59, 0x10, 0x86, 0x34, -0x3E, 0x32, 0x62, 0x12, 0x91, 0xCA, 0x95, 0x40, 0x3B, 0x74, -0x1B, 0xAE, 0x95, 0x9F, 0x20, 0x67, 0xF1, 0x39, 0xFC, 0x05, -0xF5, 0xC6, 0x37, 0xF0, 0xF1, 0xDA, 0x02, 0xFC, 0xFD, 0xAF, -0x4E, 0xFC, 0xF1, 0x05, 0x7A, 0xB1, 0x6B, 0x93, 0xBF, 0xF3, -0xDA, 0x0A, 0x65, 0xFD, 0xBE, 0xBA, 0x87, 0x67, 0x11, 0x15, -0x76, 0x0A, 0x25, 0xB7, 0x84, 0x23, 0x7A, 0x4C, 0x52, 0x5C, -0xBC, 0x02, 0x2A, 0x05, 0x83, 0xD9, 0x49, 0x0C, 0x8C, 0x29, -0x0C, 0xF4, 0x7A, 0x86, 0x25, 0x24, 0x91, 0x34, 0x17, 0xC8, -0x48, 0x89, 0x84, 0xAE, 0x4F, 0x07, 0x62, 0x80, 0x0F, 0xBE, -0x86, 0x8F, 0x41, 0x85, 0x30, 0xB9, 0x49, 0x7D, 0xFC, 0xF2, -0xCF, 0xE1, 0x29, 0xB6, 0xC3, 0xD5, 0x4C, 0x52, 0xBE, 0x26, -0x3B, 0x07, 0x9B, 0xD2, 0xC7, 0x7F, 0x10, 0xBD, 0xF7, 0xFD, -0x9A, 0xCC, 0x5D, 0x15, 0x15, 0x67, 0x67, 0xCA, 0x34, 0xEC, -0xB2, 0xB2, 0x53, 0xAD, 0x5A, 0xAD, 0x3E, 0xB3, 0xA2, 0xFC, -0xD7, 0xB8, 0x73, 0xBB, 0x17, 0x0C, 0x8F, 0x06, 0x07, 0x41, -0x04, 0x43, 0x01, 0x04, 0xEE, 0xFA, 0xC3, 0xED, 0xC2, 0xF6, -0x49, 0xB8, 0xCA, 0xB8, 0x08, 0x5C, 0xA6, 0xD0, 0x77, 0xC6, -0x0A, 0x43, 0x94, 0x65, 0x60, 0xD5, 0x82, 0x83, 0x7F, 0x7A, -0xC9, 0x5C, 0x7B, 0x71, 0xBD, 0xC0, 0xFF, 0xA3, 0x41, 0xF7, -0xA2, 0xEF, 0x25, 0x8E, 0x7F, 0x9E, 0x34, 0xE9, 0xB1, 0x27, -0xC7, 0x24, 0xA8, 0x27, 0x19, 0x86, 0xFE, 0x55, 0x18, 0x9B, -0x0E, 0x3B, 0x3E, 0x47, 0x4A, 0x7F, 0xD9, 0x7F, 0x15, 0x55, -0xB5, 0xDB, 0x30, 0xE1, 0x0C, 0xC0, 0x3F, 0x1E, 0x06, 0x0E, -0x81, 0xC7, 0x13, 0xB0, 0x23, 0x83, 0x1D, 0x0F, 0x34, 0x07, -0x1C, 0x0E, 0x8F, 0x9D, 0x55, 0x62, 0xC8, 0xE4, 0x4A, 0xB4, -0x33, 0x5D, 0x78, 0xF7, 0xC8, 0x07, 0xAA, 0xF6, 0x60, 0x33, -0xAF, 0xB5, 0x66, 0x67, 0xCE, 0xE7, 0x29, 0xBA, 0x4B, 0xE7, -0x4F, 0x9F, 0xAC, 0xDB, 0xF6, 0x4E, 0x9F, 0x44, 0xA2, 0x90, -0xEC, 0xBB, 0x0F, 0xFE, 0x40, 0x03, 0x85, 0x46, 0xE5, 0xF6, -0x4E, 0x4D, 0xA3, 0xAE, 0xEA, 0x3C, 0xAA, 0x0E, 0x35, 0xA2, -0xE7, 0x5F, 0x37, 0xA1, 0x4B, 0x36, 0x62, 0xD5, 0x9A, 0xF5, -0x28, 0x59, 0x57, 0x86, 0xA2, 0xA2, 0xE7, 0x91, 0x93, 0xBD, -0xC0, 0xCB, 0xE1, 0x2A, 0x6D, 0xD7, 0xFB, 0xEF, 0x34, 0x8B, -0x7C, 0xFC, 0xC3, 0x86, 0xEC, 0xAC, 0x9A, 0xB8, 0xDD, 0xC9, -0x9B, 0x5F, 0xAC, 0x4C, 0xDB, 0x58, 0xB2, 0x45, 0x54, 0x9C, -0xF3, 0x6C, 0x7F, 0x71, 0x72, 0x62, 0xA2, 0x32, 0x52, 0xAD, -0x7E, 0xFB, 0x91, 0x57, 0xA7, 0x60, 0x49, 0xDE, 0xD6, 0x78, -0x5D, 0x42, 0x68, 0x43, 0x69, 0xE9, 0xE8, 0xA6, 0xAD, 0xDB, -0x9F, 0x2E, 0x5A, 0xBE, 0xB4, 0xB5, 0xB0, 0xF0, 0xA9, 0x90, -0x50, 0x2C, 0x0A, 0x51, 0x14, 0x11, 0x7E, 0x1A, 0x0E, 0x3D, -0x12, 0xF4, 0x4D, 0x2C, 0x3F, 0xD7, 0x12, 0x06, 0xBD, 0xB7, -0xC8, 0x99, 0xEF, 0xD7, 0x36, 0xEA, 0xE1, 0x9F, 0xB4, 0xAC, -0x39, 0x79, 0x12, 0xA1, 0xF0, 0xDA, 0x90, 0x7D, 0x84, 0x4D, -0x1E, 0x01, 0x95, 0x5A, 0x0B, 0x92, 0x2B, 0x40, 0x4E, 0xBE, -0xA5, 0x7C, 0x61, 0xC1, 0x82, 0x72, 0xE3, 0x1C, 0x73, 0xF9, -0x9B, 0xBB, 0xF6, 0xFC, 0xB3, 0xA6, 0xBA, 0xFA, 0xF2, 0xD7, -0x25, 0xD4, 0x98, 0xD3, 0xCC, 0x5B, 0x97, 0x2E, 0x5B, 0xB2, -0xCB, 0xF0, 0xB8, 0xA9, 0x41, 0x2C, 0x12, 0xB6, 0x98, 0x4C, -0xA6, 0x13, 0xA9, 0x06, 0x53, 0x9B, 0x25, 0xC7, 0xF2, 0xD9, -0xDA, 0xF5, 0xAB, 0x7F, 0xAF, 0xD0, 0x68, 0x8A, 0xBF, 0xC9, -0x8D, 0xC8, 0xFF, 0x7E, 0xE4, 0x7F, 0xB3, 0x7F, 0x03, 0x76, -0x32, 0x53, 0x09, 0x06, 0x83, 0x1F, 0x67, 0x00, 0x00, 0x00, -0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Help2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x06, 0x72, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0x8D, 0x55, 0x07, 0x50, 0x93, 0x67, 0x18, -0x7E, 0xFE, 0x90, 0x9D, 0x90, 0xC1, 0x94, 0x00, 0x86, 0x0D, -0x91, 0x21, 0x88, 0x13, 0xB4, 0x87, 0x08, 0xB2, 0x04, 0x57, -0xD1, 0xB6, 0x6A, 0xAB, 0xC5, 0x7A, 0x36, 0xEE, 0xC3, 0xBA, -0x50, 0x1B, 0xAD, 0x4A, 0x4F, 0x3D, 0xAD, 0xD7, 0xF6, 0xB4, -0xA8, 0xD8, 0x82, 0x56, 0xAB, 0x52, 0x3D, 0xED, 0xE9, 0xA9, -0x75, 0x4F, 0xAA, 0xA2, 0xE2, 0x42, 0x2A, 0xE2, 0x88, 0x83, -0x3D, 0x84, 0x90, 0x49, 0xFA, 0x26, 0x51, 0x8F, 0xD3, 0xAB, -0xED, 0x77, 0xF7, 0xDE, 0x37, 0xFE, 0xEF, 0x7D, 0xDE, 0xF7, -0x7B, 0xDE, 0xF1, 0x33, 0x78, 0xCF, 0xB0, 0x5A, 0xAD, 0x62, -0x9A, 0x32, 0x49, 0xA2, 0x48, 0xDC, 0x48, 0x06, 0xD9, 0x8E, -0x49, 0x4E, 0x93, 0x34, 0x90, 0xDC, 0x62, 0x18, 0xE6, 0x77, -0x9A, 0x0D, 0xFF, 0x86, 0xC1, 0xBC, 0x07, 0xFC, 0x12, 0x4D, -0xFD, 0xDE, 0xE7, 0x40, 0x97, 0x71, 0x84, 0x0C, 0xA5, 0xFE, -0x2F, 0x03, 0x04, 0x3C, 0x9A, 0xA6, 0xBD, 0xAF, 0xF7, 0xCF, -0x5F, 0xD4, 0x63, 0x71, 0x9E, 0x06, 0x4A, 0x6F, 0x31, 0xAE, -0xDE, 0x06, 0xD8, 0x3C, 0x0E, 0x62, 0x55, 0x1C, 0x3C, 0x7D, -0x66, 0x82, 0x66, 0x45, 0x2E, 0xDC, 0x5D, 0x65, 0x5D, 0xD5, -0xD3, 0xC9, 0xD0, 0xE1, 0xAE, 0x07, 0x4E, 0x6F, 0x81, 0xE7, -0xD1, 0xB4, 0xC9, 0xB6, 0xAE, 0xA9, 0xA9, 0xC1, 0xA4, 0xCF, -0xBF, 0x44, 0xC1, 0xE6, 0x02, 0x2C, 0x98, 0xAB, 0x46, 0x5C, -0x62, 0x1A, 0xB2, 0x86, 0x0D, 0x46, 0xDA, 0x90, 0xFE, 0x08, -0x8B, 0x8C, 0x40, 0x40, 0xA0, 0x0F, 0x66, 0x4E, 0x5F, 0x88, -0x93, 0x27, 0xCE, 0x20, 0x31, 0x69, 0x20, 0x78, 0x5C, 0x9E, -0x4D, 0x6D, 0x9C, 0x46, 0xA3, 0x79, 0xB6, 0x6C, 0xD9, 0xB2, -0xB2, 0x77, 0x0C, 0x10, 0xF8, 0x0C, 0x9A, 0xD6, 0xD8, 0xD6, -0x5B, 0xB7, 0x15, 0x63, 0xE4, 0xA8, 0x6C, 0x14, 0x6C, 0xDC, -0x80, 0x25, 0x4B, 0xF2, 0xD0, 0x5D, 0xE9, 0x0F, 0x89, 0x54, -0x02, 0x89, 0xB3, 0x00, 0x02, 0xA9, 0x00, 0x42, 0x99, 0x04, -0x81, 0xBE, 0x0A, 0x4C, 0x98, 0x90, 0x0D, 0xD7, 0x6E, 0x1E, -0xC8, 0x1E, 0x9D, 0x03, 0x31, 0xDB, 0x05, 0x51, 0xBD, 0x42, -0x6D, 0xEA, 0x99, 0xB9, 0xB9, 0xB9, 0x15, 0xF9, 0xF9, 0xF9, -0xB7, 0xBB, 0x52, 0xC4, 0x33, 0x18, 0x0C, 0x7A, 0x2E, 0x97, -0x4B, 0xE0, 0x45, 0x98, 0x9C, 0x33, 0x07, 0xD6, 0xCE, 0x06, -0xFB, 0x87, 0x07, 0x8D, 0x80, 0xC5, 0x62, 0x73, 0xC0, 0x21, -0xFA, 0x4E, 0x87, 0x82, 0x81, 0xC2, 0xAA, 0x37, 0x03, 0xD1, -0x41, 0x80, 0x89, 0xF6, 0x51, 0xDC, 0x18, 0xFC, 0x72, 0x60, -0x1D, 0x92, 0x52, 0x07, 0x3B, 0xB8, 0xA7, 0xF1, 0xC6, 0x80, -0x5E, 0xAF, 0xBF, 0xC1, 0xE3, 0xF1, 0x6C, 0x99, 0x02, 0x3E, -0xCB, 0x89, 0x40, 0x2C, 0x68, 0xA6, 0x75, 0xFD, 0x33, 0x0B, -0xF4, 0x56, 0x3D, 0xCC, 0x66, 0x27, 0xE8, 0x4C, 0x9D, 0xB0, -0x80, 0xC4, 0x60, 0x05, 0xE1, 0xC2, 0x48, 0x7B, 0x27, 0x27, -0x16, 0x6A, 0x9B, 0x2D, 0x30, 0x4B, 0x65, 0x88, 0x0C, 0x00, -0xBE, 0xE8, 0x95, 0x8E, 0x6B, 0x95, 0x87, 0xEC, 0x06, 0x2A, -0x2A, 0x2A, 0xCE, 0xAA, 0x54, 0xAA, 0x0F, 0x58, 0xB4, 0xE6, -0x98, 0x4C, 0x06, 0x3B, 0xF8, 0x88, 0xCC, 0x4C, 0x94, 0x1C, -0xBB, 0x68, 0xBF, 0x70, 0xBC, 0xCC, 0x04, 0x4F, 0x61, 0x2B, -0x22, 0xBC, 0x45, 0x88, 0x56, 0xF2, 0x11, 0x17, 0x24, 0xC4, -0xA0, 0x20, 0x31, 0x12, 0xC2, 0x9D, 0x91, 0x44, 0x92, 0x1E, -0x2D, 0x45, 0x4A, 0xA4, 0x33, 0x26, 0x0C, 0x92, 0x20, 0xC9, -0xA5, 0x06, 0xE7, 0xAA, 0x81, 0xB0, 0x79, 0x6B, 0xB0, 0x62, -0xFA, 0x2A, 0xBB, 0xBE, 0x42, 0xA1, 0xB0, 0xA5, 0x34, 0xD8, -0x1D, 0x3A, 0xDD, 0x30, 0x8E, 0x40, 0x60, 0x3F, 0xBC, 0x70, -0xE5, 0x06, 0xF6, 0x0F, 0xE9, 0x8B, 0xE2, 0x53, 0x80, 0xAF, -0x0F, 0x07, 0xBB, 0x6E, 0x72, 0x10, 0xA7, 0xA8, 0x87, 0x8B, -0x33, 0x87, 0x68, 0x60, 0x11, 0x2D, 0x0C, 0x58, 0x5C, 0x06, -0x65, 0x4F, 0xAC, 0xF0, 0x65, 0xB5, 0xA0, 0x7F, 0x2F, 0x6F, -0xD2, 0x62, 0xD1, 0x5D, 0x4F, 0x4C, 0xE2, 0xD5, 0xE1, 0x4E, -0x78, 0x38, 0xD6, 0xAD, 0x2D, 0xC4, 0x62, 0x3A, 0x95, 0x48, -0x24, 0x28, 0x2E, 0xDE, 0x3E, 0x84, 0x69, 0x69, 0x69, 0xD9, -0x48, 0x9B, 0xA9, 0xDF, 0x6B, 0x34, 0xB8, 0x29, 0x8C, 0xC3, -0xD8, 0x89, 0x43, 0xF1, 0xE8, 0xBE, 0x83, 0x3C, 0x2E, 0x87, -0xB8, 0x26, 0xD1, 0xBE, 0x04, 0xEE, 0x69, 0x0D, 0xA8, 0xA6, -0x45, 0x5D, 0x0B, 0x7D, 0x6B, 0x6B, 0xC2, 0x96, 0x51, 0x0C, -0x12, 0x06, 0x05, 0xBD, 0xC9, 0x40, 0xC3, 0xE3, 0x0A, 0xC4, -0xED, 0x0F, 0x86, 0xB6, 0xEC, 0x3A, 0x4E, 0x8D, 0x6D, 0x86, -0x2A, 0x6D, 0x08, 0x0A, 0x0B, 0x0B, 0x35, 0x4C, 0x63, 0x63, -0xE3, 0x25, 0xB9, 0x5C, 0xDE, 0x6F, 0xD9, 0x82, 0x45, 0xE8, -0xE8, 0x97, 0x03, 0x77, 0x97, 0x40, 0xF0, 0xF8, 0x80, 0x52, -0x4E, 0x5A, 0x42, 0x60, 0xF7, 0x59, 0xE0, 0xE6, 0xB1, 0x4A, -0x78, 0x08, 0xF5, 0x18, 0x31, 0x54, 0x88, 0x9C, 0x44, 0x39, -0x78, 0x62, 0xD7, 0x57, 0xB0, 0x9D, 0x76, 0x4F, 0x5E, 0x96, -0x5D, 0x83, 0x4F, 0x76, 0x03, 0x5A, 0x33, 0x92, 0x81, 0xBF, -0xEE, 0x60, 0xFB, 0xE4, 0x87, 0x18, 0x37, 0x39, 0x1D, 0x25, -0x25, 0x25, 0x47, 0x59, 0x26, 0x93, 0xB9, 0x8F, 0xED, 0xAA, -0x88, 0xC3, 0x41, 0x83, 0xD1, 0x09, 0xFE, 0xDD, 0x01, 0x4F, -0xF2, 0xBE, 0xF8, 0x0C, 0x90, 0x35, 0xDC, 0x8C, 0x93, 0x2B, -0x0E, 0xE2, 0xFC, 0x62, 0x36, 0x8E, 0xFE, 0xE0, 0x0F, 0x75, -0x56, 0xD0, 0x2B, 0xF0, 0x1A, 0xE8, 0x9E, 0x57, 0xE3, 0xEF, -0x73, 0xF7, 0xF0, 0xE9, 0xC4, 0x4B, 0x90, 0x7C, 0xC4, 0x47, -0x6B, 0x66, 0x32, 0x38, 0x1E, 0xF4, 0xA9, 0xA9, 0x93, 0x82, -0xEA, 0x48, 0xB5, 0xD0, 0xD0, 0x30, 0x23, 0xCB, 0x68, 0x34, -0xDA, 0xA3, 0xAA, 0xB3, 0x72, 0x21, 0x15, 0x59, 0xB1, 0x8F, -0x3A, 0xCB, 0x98, 0x7C, 0x60, 0xCF, 0x0E, 0x20, 0x5E, 0x78, -0x02, 0xDA, 0xDB, 0x09, 0x10, 0x05, 0xF8, 0xD9, 0xC2, 0x05, -0xB4, 0x54, 0x41, 0x3D, 0xE3, 0x38, 0x42, 0x53, 0xEA, 0x20, -0xCA, 0xB6, 0x20, 0x64, 0x89, 0x1B, 0x8A, 0x5B, 0xFB, 0x82, -0x3D, 0xBE, 0x07, 0x5C, 0xA9, 0x6B, 0x29, 0x88, 0x4E, 0x5B, -0xC7, 0xE2, 0xB8, 0xF2, 0xED, 0x06, 0x4E, 0x9E, 0x3C, 0xC5, -0x65, 0xAA, 0xAA, 0xAA, 0xD6, 0x05, 0x04, 0x04, 0xCC, 0xD1, -0x5E, 0xDC, 0x0D, 0xDF, 0x38, 0x4A, 0xCE, 0x29, 0x53, 0x00, -0x29, 0x7D, 0xFD, 0xB3, 0x06, 0xD6, 0x73, 0xE5, 0x44, 0x53, -0x4F, 0x98, 0x9B, 0x9F, 0x83, 0xA9, 0xEF, 0x00, 0x3B, 0x92, -0x02, 0xF0, 0x41, 0x0A, 0x10, 0x68, 0xCB, 0x67, 0x40, 0x20, -0xA2, 0xD7, 0x92, 0xB0, 0x8D, 0x44, 0x16, 0xD5, 0x88, 0x3B, -0xC5, 0xBC, 0x74, 0xFD, 0x61, 0xB4, 0x1E, 0xF3, 0x81, 0xB3, -0x22, 0x12, 0xE3, 0xC7, 0x4F, 0xF8, 0x8A, 0x45, 0x55, 0x74, -0xAA, 0xF2, 0xE1, 0x53, 0xF8, 0x0C, 0x18, 0x43, 0x5A, 0x45, -0x40, 0x30, 0x95, 0x37, 0x15, 0x96, 0x20, 0xD9, 0x13, 0xF2, -0x9C, 0x1E, 0x60, 0x02, 0xDA, 0xC0, 0x99, 0xE8, 0x01, 0xF6, -0x4C, 0x4F, 0x60, 0x56, 0x0A, 0x3C, 0xA8, 0x8E, 0x7C, 0x5D, -0xE8, 0xF9, 0x24, 0xC1, 0xE4, 0xB5, 0x17, 0xF5, 0x02, 0x2F, -0x72, 0x28, 0x82, 0xC0, 0x79, 0x54, 0x20, 0xBE, 0x41, 0x0D, -0x04, 0xAE, 0xB2, 0xBF, 0x40, 0xA7, 0x6B, 0xBF, 0xCC, 0x0A, -0x0C, 0x09, 0x39, 0x60, 0x6E, 0x6B, 0xB1, 0x1F, 0x1C, 0xF9, -0x71, 0x04, 0xB0, 0xF2, 0x0F, 0xF8, 0x45, 0x02, 0x1D, 0xED, -0xA4, 0xE8, 0xDE, 0x81, 0x8D, 0x0B, 0x5F, 0xA2, 0x77, 0x00, -0xA1, 0xF4, 0xF6, 0x47, 0x2C, 0xD1, 0x6F, 0x4B, 0x4C, 0x7F, -0x77, 0xC0, 0x8F, 0xD6, 0xC1, 0x34, 0x07, 0x76, 0x23, 0x63, -0x64, 0xBB, 0x27, 0xB1, 0x58, 0x7D, 0xAB, 0x0A, 0x7B, 0xBF, -0x09, 0xB1, 0xD3, 0x59, 0x53, 0x5B, 0x87, 0x7D, 0xFB, 0xF6, -0x9D, 0xB6, 0x57, 0xF2, 0xF5, 0xEB, 0x65, 0x47, 0x24, 0x32, -0xCF, 0xA1, 0xFE, 0x4A, 0x05, 0xA2, 0x83, 0x3F, 0xC6, 0x8D, -0xAC, 0x9D, 0x40, 0x2B, 0xB5, 0x86, 0x7C, 0x7A, 0x91, 0x5B, -0x2C, 0xB6, 0x1D, 0x7A, 0x82, 0xF9, 0x97, 0x52, 0x91, 0xEC, -0x67, 0xEB, 0xA6, 0x94, 0xE3, 0x44, 0x8F, 0x88, 0x6C, 0xCA, -0x84, 0x8E, 0x54, 0xA6, 0x16, 0x85, 0xFB, 0xB5, 0x40, 0x77, -0xCB, 0x45, 0x4C, 0xCB, 0xF2, 0x22, 0x0A, 0xFC, 0x90, 0x97, -0xB7, 0xA8, 0x70, 0xD5, 0xAA, 0xFC, 0x9C, 0x37, 0xED, 0x5A, -0xAB, 0xD5, 0x5A, 0x25, 0x72, 0x09, 0x9C, 0x75, 0x8F, 0xC1, -0x1B, 0xBC, 0x87, 0x82, 0xA8, 0xC1, 0x8E, 0xD4, 0x47, 0x08, -0x17, 0x6B, 0xB1, 0xFC, 0x72, 0x18, 0x44, 0x52, 0x57, 0x74, -0x23, 0xBE, 0xC5, 0x5C, 0x0A, 0x0B, 0x81, 0x8A, 0x08, 0x9C, -0x47, 0x7D, 0x80, 0xCF, 0x75, 0xC4, 0xBF, 0xF5, 0x61, 0x25, -0x46, 0x44, 0xB5, 0xC3, 0x22, 0x0E, 0x83, 0xC9, 0x64, 0x84, -0x4C, 0x26, 0xB3, 0x63, 0xB3, 0x5E, 0x1B, 0x58, 0xB3, 0x7A, -0x75, 0x0A, 0x9B, 0x4D, 0xAE, 0xB9, 0xA9, 0x50, 0x7B, 0x70, -0x38, 0xD2, 0x8D, 0x3F, 0x63, 0xF9, 0x79, 0x25, 0x56, 0x55, -0xC5, 0xA3, 0xB7, 0xCA, 0x15, 0x89, 0x14, 0x9B, 0x70, 0x85, -0x43, 0x54, 0x24, 0x21, 0x44, 0x8F, 0xCA, 0xC7, 0x41, 0x91, -0xBC, 0xFD, 0x21, 0xE2, 0xBB, 0xBD, 0x40, 0x93, 0xD9, 0x1D, -0x42, 0xA1, 0x00, 0x11, 0x11, 0x11, 0x21, 0xEF, 0xB4, 0xEB, -0xD2, 0xD2, 0xD2, 0xAA, 0xAB, 0x57, 0x2E, 0x37, 0x25, 0x0F, -0x4D, 0x4F, 0x73, 0xF5, 0xF6, 0xC3, 0xA8, 0x18, 0x0E, 0x62, -0x70, 0x11, 0x72, 0xF2, 0x2E, 0x52, 0x49, 0xDE, 0xCB, 0x19, -0x28, 0x28, 0xB0, 0x5E, 0x12, 0xCA, 0x16, 0xFA, 0xC7, 0xC8, -0x89, 0x16, 0x73, 0x5B, 0x1D, 0x9A, 0x2A, 0xAF, 0x40, 0xCE, -0xD7, 0xC1, 0x3B, 0xB4, 0x2F, 0xA4, 0x32, 0x39, 0xA8, 0x68, -0x63, 0x6B, 0x6B, 0x6B, 0x6F, 0xBF, 0xC6, 0x7D, 0xE7, 0x8F, -0x16, 0x15, 0x15, 0xA5, 0xFA, 0x75, 0xD7, 0x6F, 0x77, 0x7C, -0x7D, 0x94, 0xD4, 0xFF, 0x39, 0xA8, 0x7B, 0x50, 0x8E, 0xEA, -0x17, 0xCD, 0xE0, 0xF2, 0xC5, 0xE0, 0xF0, 0x85, 0xF4, 0x64, -0x86, 0x3A, 0xA9, 0x11, 0xE6, 0x0E, 0x3D, 0xF8, 0x14, 0x8F, -0x10, 0x55, 0x0C, 0xCC, 0x2C, 0x06, 0xD7, 0xAE, 0x94, 0xE1, -0xF8, 0xF1, 0xA3, 0xB2, 0xA5, 0x4B, 0x35, 0x2D, 0x5D, 0xF1, -0x58, 0x6F, 0x1B, 0x28, 0x2F, 0x2F, 0xBF, 0x1B, 0xD1, 0x43, -0xC5, 0xA8, 0xA7, 0x4D, 0xFF, 0x6E, 0xD3, 0x96, 0x22, 0x54, -0x37, 0x71, 0xA1, 0x50, 0x86, 0xC2, 0xC5, 0xDD, 0x0D, 0x22, -0x2E, 0x1F, 0x22, 0x11, 0x89, 0x40, 0x08, 0x99, 0x87, 0x27, -0xDA, 0xC1, 0xC3, 0xCE, 0xDD, 0x25, 0xA6, 0xB8, 0x01, 0x03, -0xD7, 0xC6, 0xC7, 0xC7, 0x31, 0x6F, 0x83, 0xFF, 0xE7, 0x18, -0x95, 0x91, 0x20, 0xDD, 0xBB, 0x6D, 0x43, 0xD2, 0x3C, 0xF5, -0xC4, 0xF5, 0x79, 0xB3, 0xD5, 0x0D, 0x8B, 0xE7, 0xCF, 0xED, -0x9C, 0xA5, 0x56, 0x5B, 0xE6, 0xE5, 0xCE, 0xAE, 0x9B, 0x31, -0x55, 0xBD, 0xB2, 0x70, 0xCB, 0xC6, 0x78, 0xBA, 0x26, 0x78, -0x1F, 0xC6, 0x9B, 0x18, 0x14, 0x6C, 0x2D, 0x74, 0xFE, 0x69, -0xF3, 0x4A, 0xDF, 0x94, 0x81, 0x41, 0x7D, 0x8B, 0x76, 0x7E, -0x9B, 0x3A, 0x7D, 0x4A, 0x76, 0x82, 0x57, 0xC4, 0x67, 0xFD, -0xA4, 0xDD, 0x63, 0xF9, 0xBD, 0x53, 0x53, 0xEE, 0x0E, 0xEC, -0x13, 0x5D, 0x34, 0xF2, 0xC3, 0xB0, 0x3D, 0xF1, 0x03, 0x7A, -0xEC, 0xC8, 0x18, 0x9E, 0xB1, 0x27, 0x6D, 0x58, 0xFF, 0xFA, -0x98, 0x5E, 0xE1, 0xFE, 0x0B, 0x26, 0x8F, 0x4D, 0x5C, 0xF1, -0xF5, 0x9C, 0x3E, 0x9A, 0x99, 0x9F, 0xF4, 0x6C, 0x6C, 0x6C, -0x73, 0x29, 0xBD, 0x76, 0xD4, 0xDA, 0xAE, 0x13, 0x98, 0x2E, -0x5C, 0x38, 0x6B, 0xFB, 0xD1, 0xE1, 0x1F, 0xB3, 0xE8, 0x2A, -0xAD, 0x3A, 0xE2, 0xBD, 0xDD, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Log2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x06, 0x27, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0x8D, 0x56, 0x6B, 0x4C, 0x93, 0x67, 0x14, -0x7E, 0xBF, 0x7B, 0x5B, 0xDA, 0x3A, 0xA0, 0x08, 0x58, 0x0A, -0x72, 0x91, 0xD2, 0x5A, 0xB9, 0x0D, 0x36, 0x8D, 0xD1, 0x2C, -0x31, 0x51, 0xB6, 0x29, 0x2C, 0x46, 0x48, 0xE6, 0x74, 0x6E, -0x33, 0x0E, 0x75, 0x19, 0x6C, 0xC6, 0x0B, 0xCA, 0xD8, 0x0C, -0x33, 0xA2, 0x9B, 0xE8, 0x74, 0x93, 0xC9, 0x0F, 0x25, 0xA2, -0x6E, 0xEA, 0x44, 0x32, 0x17, 0x59, 0x14, 0xE7, 0x96, 0x99, -0xF8, 0x63, 0xEE, 0x07, 0x64, 0x13, 0x91, 0x4C, 0x28, 0x8C, -0x22, 0x17, 0xDB, 0x52, 0x5A, 0x7A, 0xFD, 0xDA, 0xEE, 0x9C, -0x52, 0x18, 0x9D, 0x5B, 0xB2, 0x93, 0x9C, 0x9C, 0xB7, 0xEF, -0xD7, 0xEF, 0x79, 0xCE, 0x7B, 0xCE, 0x79, 0xCF, 0xF9, 0x28, -0x32, 0x4B, 0xEA, 0xEB, 0xEB, 0xD5, 0x0F, 0x1E, 0x3C, 0x28, -0x77, 0x38, 0x1C, 0x8F, 0x39, 0x8E, 0x9B, 0xFD, 0x88, 0x04, -0x83, 0x41, 0x42, 0xD3, 0x34, 0xF9, 0xA7, 0xE0, 0x1E, 0x68, -0x30, 0x3A, 0x3A, 0x3A, 0xA6, 0xA5, 0xA5, 0xE5, 0xBE, 0xD1, -0x68, 0xFC, 0x76, 0xF6, 0x73, 0x76, 0xF6, 0x8F, 0x5B, 0xB7, -0x6E, 0xAD, 0x6B, 0x6B, 0x6B, 0xAB, 0x79, 0x0A, 0xE5, 0x7F, -0x8A, 0x5A, 0xAD, 0x26, 0x3B, 0x76, 0xEC, 0xA0, 0xFE, 0x93, -0x60, 0xDE, 0xBC, 0x79, 0x3A, 0xB4, 0x76, 0xBB, 0x3D, 0x40, -0x51, 0x54, 0x00, 0xBC, 0xA6, 0x02, 0x53, 0x42, 0xF9, 0x7C, -0x3E, 0xB4, 0x41, 0x5C, 0xFB, 0x41, 0xC0, 0x32, 0xA0, 0x22, -0xFE, 0x9E, 0x9C, 0x9C, 0x14, 0xB3, 0xB3, 0xB3, 0x15, 0x06, -0xC3, 0xC2, 0xA7, 0x48, 0x23, 0x08, 0x0A, 0x0B, 0x0B, 0x57, -0xA3, 0x05, 0x30, 0x3F, 0x9E, 0x1E, 0x49, 0x60, 0x1D, 0x44, -0x3C, 0x24, 0x13, 0x45, 0x31, 0xB4, 0x86, 0x67, 0x21, 0x62, -0x58, 0x13, 0xF8, 0x4F, 0x10, 0xF7, 0xED, 0xF6, 0x09, 0x7F, -0x92, 0x66, 0x3E, 0x33, 0x8D, 0x95, 0xAB, 0x8D, 0xDF, 0xDE, -0xF1, 0x70, 0xA4, 0x21, 0x82, 0xA0, 0xB8, 0xB8, 0x58, 0x8D, -0xD6, 0xED, 0x76, 0x8B, 0xF0, 0x22, 0xED, 0xF5, 0x7A, 0xC1, -0x50, 0x7E, 0x20, 0x41, 0x70, 0x3F, 0x82, 0x21, 0x21, 0x02, -0x86, 0x5F, 0xC1, 0xD3, 0x78, 0x6D, 0x36, 0x1B, 0xEF, 0xF2, -0x78, 0x5D, 0x84, 0xE6, 0xE5, 0x79, 0x99, 0x71, 0x45, 0x9B, -0xCA, 0xDF, 0x2D, 0x5F, 0xB6, 0xE2, 0xC5, 0x57, 0x34, 0x89, -0x71, 0x45, 0x11, 0x04, 0x71, 0x71, 0x71, 0x08, 0x4E, 0x20, -0xC9, 0x7E, 0x96, 0x65, 0x09, 0xBC, 0x2C, 0x22, 0x09, 0x86, -0x06, 0x41, 0xC3, 0xDE, 0x52, 0x53, 0x11, 0x0A, 0x10, 0xA7, -0x73, 0x32, 0x28, 0x93, 0x44, 0xD1, 0xE0, 0xB9, 0xE3, 0xFE, -0xEF, 0x5D, 0xE2, 0xD9, 0xC6, 0x63, 0xBE, 0xA6, 0x4B, 0xDF, -0x7D, 0x9F, 0x93, 0xFB, 0x3C, 0xA0, 0x4D, 0x92, 0xD2, 0xB5, -0x65, 0x97, 0x67, 0x08, 0x96, 0x2F, 0x5F, 0x9E, 0x8F, 0xA0, -0x83, 0x83, 0x83, 0x2E, 0xF4, 0x12, 0x88, 0x7C, 0x10, 0x16, -0xF4, 0x9E, 0x01, 0x40, 0x0C, 0x0D, 0x0A, 0xE6, 0x20, 0x20, -0xFA, 0x44, 0xE2, 0x0B, 0x78, 0x59, 0x8D, 0x26, 0xCD, 0x4B, -0x53, 0x8C, 0xE7, 0x7C, 0x73, 0x23, 0xE3, 0xB4, 0x5B, 0x12, -0x4E, 0x9F, 0xBB, 0xC8, 0xF6, 0x3C, 0xEC, 0x20, 0x27, 0x8E, -0xD5, 0x91, 0x8C, 0xCC, 0xCC, 0x7B, 0x57, 0x5A, 0xDB, 0xCE, -0xCF, 0x64, 0xFC, 0xE0, 0xC1, 0x83, 0x15, 0x5B, 0xB7, 0x6E, -0x3D, 0xDE, 0xDB, 0xDB, 0x6B, 0x81, 0xB2, 0x43, 0x2F, 0xD1, -0xDB, 0xC0, 0x54, 0x52, 0x45, 0xBF, 0xC7, 0x23, 0x12, 0x41, -0xE0, 0x28, 0x9E, 0x63, 0x18, 0x5E, 0x22, 0x63, 0x78, 0x4E, -0x66, 0xBD, 0x7B, 0xF7, 0x0E, 0xDD, 0x7A, 0xE5, 0x9C, 0xAA, -0xEE, 0xD0, 0x61, 0x59, 0x4E, 0x5E, 0x36, 0x69, 0x3C, 0xF9, -0x29, 0x19, 0x36, 0x07, 0xC8, 0xE3, 0x91, 0xD1, 0x4F, 0x1A, -0x1B, 0xBE, 0xDC, 0x83, 0xB8, 0x33, 0x85, 0x0D, 0x80, 0x2A, -0x08, 0x01, 0xC1, 0x58, 0x7B, 0x3C, 0x1E, 0x3F, 0xE6, 0x01, -0xC3, 0x81, 0x61, 0x91, 0x48, 0x64, 0x74, 0x74, 0xF4, 0x1C, -0x9E, 0x61, 0x68, 0x66, 0xCC, 0x62, 0xB7, 0xFE, 0x70, 0xFB, -0xA7, 0xEE, 0xA6, 0x33, 0x27, 0x18, 0x63, 0x77, 0x47, 0x72, -0xDB, 0x8D, 0x9B, 0x32, 0x99, 0x84, 0x26, 0x77, 0x7E, 0x6C, -0x23, 0x0F, 0xFF, 0xF8, 0x93, 0xDC, 0xBC, 0x71, 0xDB, 0x37, -0x0D, 0x1E, 0x4A, 0xD2, 0xF4, 0xA2, 0xA6, 0xA6, 0xE6, 0x72, -0x65, 0x65, 0x65, 0x69, 0x57, 0x57, 0xD7, 0x10, 0x03, 0x48, -0x82, 0x20, 0xB0, 0x70, 0x12, 0x1A, 0x4A, 0xD0, 0x3B, 0x3C, -0x3C, 0xE4, 0x75, 0x38, 0x9C, 0x1E, 0xB3, 0xD9, 0x36, 0xDA, -0xD5, 0xD5, 0x29, 0xA4, 0xA5, 0x6A, 0xB4, 0xD5, 0x1F, 0xEC, -0x57, 0x90, 0x80, 0x95, 0x7C, 0xF3, 0xF5, 0x05, 0x7F, 0xD9, -0x86, 0x0A, 0x7B, 0xD1, 0xAA, 0x15, 0x62, 0x72, 0x8A, 0xDE, -0x99, 0x97, 0xA7, 0x53, 0x6F, 0xDB, 0xB6, 0x7D, 0x26, 0xF4, -0x33, 0x65, 0x55, 0x5D, 0x5D, 0x5D, 0x0F, 0xC0, 0x73, 0x00, -0xD3, 0x21, 0x95, 0x4A, 0x05, 0x8B, 0xC5, 0xE2, 0x7A, 0xF4, -0xE8, 0xD1, 0x44, 0x5F, 0x5F, 0x9F, 0x8B, 0xE1, 0xA4, 0x16, -0xF3, 0x13, 0x8B, 0xE3, 0xC9, 0x58, 0x7F, 0xEA, 0xE6, 0x2D, -0x9B, 0xB4, 0xA5, 0xA5, 0x1B, 0x84, 0x6B, 0x97, 0x4E, 0x91, -0x92, 0x92, 0xB2, 0xC9, 0xEE, 0xFE, 0x09, 0xD3, 0xCE, 0x3D, -0x55, 0xD6, 0xB4, 0xF4, 0x4C, 0x6F, 0xF1, 0xEA, 0x95, 0x2E, -0x85, 0x32, 0x3A, 0xBE, 0xB9, 0xF9, 0xEC, 0x45, 0x80, 0x34, -0x47, 0x84, 0x48, 0xA5, 0x52, 0x69, 0x94, 0x4A, 0x25, 0x5E, -0x32, 0x4F, 0x67, 0x67, 0xE7, 0x48, 0x4F, 0x4F, 0x8F, 0x5D, -0xE0, 0x04, 0x9F, 0x4E, 0x9F, 0x3D, 0x3E, 0xD0, 0xDB, 0x2D, -0x7F, 0x26, 0x46, 0xB2, 0xA4, 0xEE, 0xD0, 0xD1, 0xC4, 0x05, -0xEA, 0x58, 0x52, 0xB6, 0x66, 0xA9, 0x6B, 0xDF, 0x81, 0x53, -0xC6, 0xD7, 0xCB, 0xF7, 0xF5, 0xEF, 0xFF, 0xB0, 0xDA, 0x95, -0xAD, 0xD7, 0xB2, 0x99, 0x19, 0xC9, 0x81, 0xE1, 0x91, 0xD1, -0x20, 0xC3, 0x50, 0x44, 0xA3, 0xD1, 0x3C, 0x3B, 0x8D, 0x3B, -0x4D, 0x20, 0x40, 0xDC, 0xA1, 0x82, 0x4C, 0xA3, 0x03, 0xFD, -0x7D, 0x56, 0x89, 0x4C, 0xCA, 0xE5, 0xE5, 0x15, 0xF8, 0x25, -0x32, 0xD9, 0xE4, 0x2F, 0x77, 0xDB, 0x33, 0xCA, 0x5E, 0x5D, -0xA7, 0x7B, 0xEB, 0x8D, 0x72, 0xF2, 0xF9, 0xE1, 0x9D, 0xA4, -0x60, 0xE9, 0xAA, 0x51, 0xA5, 0x7A, 0xF1, 0x40, 0xD3, 0x99, -0xD3, 0xCE, 0x35, 0x2F, 0xBD, 0x40, 0x79, 0xDC, 0x6E, 0xCE, -0x6A, 0xB5, 0x12, 0xAC, 0x62, 0x9E, 0xE7, 0xC9, 0xDC, 0xB9, -0x73, 0x49, 0x4C, 0x4C, 0x4C, 0x5A, 0xC4, 0x4D, 0x86, 0x26, -0x55, 0x68, 0x32, 0x99, 0x48, 0x6C, 0x6C, 0xAC, 0x45, 0xA3, -0x49, 0x99, 0x13, 0x97, 0x90, 0x34, 0xFE, 0x5B, 0xC7, 0x3D, -0x36, 0x2A, 0x4A, 0x92, 0xBF, 0x73, 0xD7, 0x7B, 0x4C, 0xE7, -0xAF, 0x3F, 0x93, 0x95, 0x9B, 0x37, 0x39, 0xF8, 0x18, 0xED, -0xC8, 0x67, 0x0D, 0x67, 0x3C, 0x39, 0xFA, 0x4C, 0xA6, 0x7F, -0xC0, 0xC8, 0x8D, 0x8D, 0x4D, 0x10, 0xCC, 0x97, 0x42, 0xA1, -0x10, 0xB1, 0xE9, 0xC1, 0x9D, 0x61, 0xE3, 0xE3, 0xE3, 0x49, -0x62, 0x62, 0xA2, 0x06, 0xA2, 0xF0, 0xF7, 0x09, 0xA0, 0xD6, -0xF5, 0x50, 0x25, 0x44, 0x15, 0xA3, 0x0A, 0xEA, 0x17, 0xE6, -0x5B, 0x6C, 0xE3, 0xA6, 0xD8, 0x82, 0x02, 0x43, 0x76, 0x4A, -0x42, 0x14, 0x53, 0xB1, 0x7D, 0x9B, 0xE7, 0xFD, 0xAA, 0xE3, -0xA6, 0xD7, 0xB6, 0xEC, 0x35, 0x9D, 0x6D, 0x3A, 0xE9, 0xCB, -0xCA, 0x48, 0x16, 0xFA, 0x8C, 0xFD, 0x6C, 0x30, 0x18, 0x02, -0x26, 0xA0, 0x94, 0x4C, 0x26, 0x63, 0x24, 0x12, 0x09, 0x38, -0x14, 0x05, 0x21, 0x62, 0x02, 0x06, 0x83, 0xA1, 0x30, 0x22, -0x44, 0x90, 0x54, 0x55, 0x56, 0x96, 0x81, 0x2C, 0xCA, 0x59, -0x64, 0xBE, 0x7E, 0xAD, 0x29, 0xF3, 0xF8, 0x91, 0xBA, 0x94, -0xDB, 0xD7, 0x5B, 0x49, 0xC5, 0xAE, 0xDA, 0xD1, 0xF9, 0xBA, -0x65, 0x83, 0x57, 0xAF, 0xB6, 0x38, 0xD7, 0xAD, 0x5D, 0xC5, -0x58, 0xC6, 0xCC, 0x52, 0x9B, 0xCD, 0x41, 0x41, 0xAE, 0x58, -0xA5, 0x52, 0x41, 0x03, 0x30, 0x2A, 0x41, 0x02, 0xC0, 0x80, -0x7B, 0x22, 0x50, 0x40, 0xE4, 0xD1, 0x83, 0x44, 0x10, 0x38, -0x9D, 0x6E, 0x83, 0x5A, 0x9D, 0xE8, 0xAD, 0xDE, 0xFD, 0x66, -0xDE, 0x85, 0xF3, 0x17, 0x94, 0xD1, 0xAA, 0x34, 0xEB, 0x80, -0x99, 0x18, 0x9B, 0xBF, 0x6A, 0x75, 0xEC, 0xDD, 0x5D, 0x49, -0x73, 0x0C, 0x25, 0x8C, 0x8C, 0x9A, 0x25, 0x2C, 0xC7, 0x12, -0x04, 0x07, 0x4F, 0x31, 0xDE, 0x14, 0x80, 0xF2, 0xA0, 0x34, -0xFC, 0x26, 0xB8, 0x87, 0x24, 0xD0, 0x0D, 0x3C, 0x3A, 0x9D, -0x4E, 0x88, 0x20, 0xC8, 0xCD, 0xCD, 0x5F, 0x7C, 0xAE, 0xE9, -0x04, 0xDF, 0xD5, 0x33, 0xE6, 0x7F, 0xFB, 0x9D, 0xBD, 0xC6, -0x3D, 0x55, 0x55, 0x96, 0x03, 0x1F, 0x7F, 0x14, 0x8C, 0x57, -0xC9, 0xF9, 0xA1, 0xA1, 0x21, 0xDE, 0xED, 0xF5, 0x72, 0xB2, -0x29, 0x20, 0x1E, 0xBC, 0xC4, 0x3B, 0xC2, 0xC9, 0xE5, 0x72, -0x06, 0x4F, 0x00, 0x1E, 0x23, 0x19, 0x0D, 0xCA, 0xE2, 0x3E, -0xE4, 0xC2, 0x89, 0x73, 0x01, 0x92, 0x9D, 0x36, 0x43, 0x20, -0x57, 0xF0, 0xA9, 0xCF, 0x2D, 0x79, 0xD9, 0x75, 0xE4, 0x68, -0xC3, 0x48, 0x59, 0xE9, 0x5A, 0x2A, 0x35, 0x35, 0x45, 0x32, -0x3E, 0x3E, 0x2E, 0x75, 0x38, 0x5C, 0x2C, 0x80, 0xB0, 0x18, -0x67, 0x00, 0xE2, 0x10, 0x0C, 0x54, 0x00, 0x22, 0x04, 0xE6, -0x41, 0x09, 0x5A, 0x0C, 0x11, 0x28, 0x9E, 0x80, 0xC3, 0xEE, -0x0A, 0xD3, 0x8D, 0x68, 0xB5, 0xDA, 0x45, 0x33, 0x04, 0x32, -0xA9, 0x9C, 0x68, 0xB3, 0xD2, 0xDD, 0xE9, 0x69, 0xC9, 0x02, -0x74, 0x52, 0xC9, 0xC4, 0xC4, 0x04, 0x0B, 0xC9, 0x0A, 0x81, -0x83, 0x67, 0xD0, 0x22, 0x18, 0x01, 0x80, 0xD0, 0x4B, 0x0E, -0x3D, 0x0D, 0x0B, 0x05, 0x8A, 0xFB, 0x04, 0xC6, 0x2B, 0x03, -0x8A, 0xC9, 0x66, 0xB1, 0xD5, 0xC0, 0xE9, 0x08, 0xDC, 0x23, -0x4D, 0x88, 0xA0, 0xB9, 0xB9, 0x39, 0x1D, 0xEB, 0x17, 0x9A, -0x9A, 0x1B, 0x80, 0xA5, 0x08, 0x80, 0xDE, 0x86, 0x8F, 0x1D, -0xB2, 0x00, 0x44, 0x87, 0x41, 0xF9, 0xF0, 0x9A, 0x43, 0x70, -0x7C, 0x06, 0xC0, 0x02, 0x37, 0x25, 0xE8, 0x0B, 0x8D, 0xFD, -0x0B, 0x81, 0x4B, 0x4A, 0x4A, 0x42, 0xB3, 0x85, 0x2E, 0x2A, -0x2A, 0xD2, 0xE3, 0x80, 0x87, 0xA6, 0xE6, 0x00, 0x0F, 0x44, -0x78, 0x11, 0xC7, 0xA5, 0x1F, 0xF7, 0xB0, 0xE7, 0xE3, 0x24, -0x83, 0x13, 0x84, 0x14, 0x05, 0x2D, 0xC4, 0x39, 0x80, 0xCF, -0xD1, 0x82, 0xE2, 0x3B, 0x21, 0x85, 0x3D, 0x11, 0x48, 0x70, -0xE2, 0x91, 0x84, 0x84, 0x84, 0xFC, 0xD0, 0x45, 0x83, 0x21, -0x53, 0x10, 0x4E, 0xF8, 0x02, 0x9C, 0x07, 0x21, 0xD6, 0xF0, -0xD7, 0xC3, 0x3F, 0xBF, 0x22, 0x00, 0x3C, 0xE2, 0xF7, 0xBF, -0x7D, 0x65, 0x4C, 0xCB, 0xFA, 0xF5, 0xEB, 0x57, 0xD6, 0xD6, -0xD6, 0x12, 0x76, 0xE3, 0xC6, 0x8D, 0x5F, 0x24, 0x25, 0x25, -0xE5, 0xC2, 0x9E, 0x0D, 0xAA, 0xC0, 0x8B, 0x71, 0x00, 0x8B, -0x17, 0x26, 0x54, 0x8A, 0xD8, 0x51, 0xB1, 0x8D, 0x23, 0x18, -0x9E, 0x08, 0xD7, 0x38, 0xD1, 0xC2, 0xF3, 0x39, 0x88, 0x2D, -0x06, 0x3F, 0x08, 0xE0, 0x16, 0xE3, 0x90, 0x0A, 0xBA, 0x5C, -0xAE, 0x00, 0x74, 0x84, 0xB8, 0xF6, 0xF6, 0xF6, 0x0E, 0x24, -0xFA, 0x0B, 0x4D, 0x2F, 0xE3, 0x89, 0x13, 0x31, 0x9B, 0x23, -0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, -0x60, 0x82 -}; - -static const unsigned char Toolbar_Open2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x89, 0x00, 0x00, 0x0B, 0x89, 0x01, -0x37, 0xC9, 0xCB, 0xAD, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, -0x4D, 0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, -0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, -0x7A, 0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, -0x00, 0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, -0xEA, 0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, -0x92, 0x5F, 0xC5, 0x46, 0x00, 0x00, 0x05, 0xD8, 0x49, 0x44, -0x41, 0x54, 0x78, 0xDA, 0xA4, 0x95, 0x6D, 0x6C, 0x95, 0x67, -0x1D, 0xC6, 0x7F, 0xCF, 0x73, 0x9E, 0x97, 0xF3, 0x7E, 0x38, -0x85, 0xC3, 0x69, 0x39, 0xD0, 0x02, 0x2D, 0x6B, 0x09, 0xD0, -0xC2, 0x4A, 0xB7, 0x8E, 0x95, 0x41, 0xC4, 0xD9, 0x68, 0x40, -0x09, 0x6C, 0x1A, 0x74, 0xCA, 0x22, 0xCA, 0x07, 0x43, 0x16, -0xCC, 0xB2, 0x8C, 0x44, 0xBF, 0x2C, 0xD1, 0xCD, 0x4D, 0x71, -0x68, 0x18, 0x3A, 0xD8, 0x8C, 0x26, 0xFB, 0xB0, 0x45, 0x40, -0x3A, 0xAC, 0x6E, 0xE0, 0x42, 0xC5, 0x8E, 0x0A, 0xA3, 0x6E, -0x65, 0x20, 0x6D, 0xE1, 0x70, 0xDA, 0x02, 0x7D, 0x39, 0x2F, -0x3D, 0x4F, 0xCF, 0x69, 0x9F, 0xF3, 0xF2, 0x9C, 0xE7, 0xDC, -0x7E, 0x9A, 0x09, 0x93, 0x81, 0xE8, 0xF5, 0xE9, 0x9F, 0x3B, -0xFF, 0x5C, 0xD7, 0x7D, 0xFD, 0x73, 0xFF, 0xEF, 0x0B, 0xEE, -0x0E, 0xFD, 0x93, 0xC2, 0x30, 0xDE, 0xDF, 0x64, 0x9A, 0x5D, -0x7F, 0x7E, 0xE1, 0x85, 0xB6, 0x47, 0xF9, 0x7F, 0xD1, 0xDF, -0xFF, 0xBB, 0x86, 0x97, 0x5F, 0xFE, 0xDE, 0x5B, 0x42, 0x08, -0x61, 0x18, 0xEF, 0x5E, 0x7F, 0xFD, 0xF5, 0x3A, 0x71, 0xF2, -0xE4, 0x0F, 0xC5, 0x99, 0x33, 0xFB, 0x44, 0x3A, 0x7D, 0x5A, -0x1C, 0x3B, 0xD6, 0xF7, 0xCD, 0xFF, 0x89, 0x78, 0xCF, 0x9E, -0xC7, 0x3F, 0x3F, 0x36, 0x36, 0x3A, 0x24, 0x3E, 0x85, 0xC3, -0x87, 0xF7, 0x8B, 0xE7, 0x9E, 0x0B, 0x88, 0xEE, 0xEE, 0x67, -0xC5, 0xA5, 0x4B, 0xAF, 0x09, 0x21, 0x3E, 0x16, 0x9D, 0x9D, -0x9D, 0x3F, 0xBA, 0x1B, 0x9F, 0xF4, 0x49, 0xB1, 0x77, 0xEF, -0x13, 0x9B, 0x36, 0x6C, 0xD8, 0xF1, 0xFB, 0xA6, 0xA6, 0xF5, -0x3A, 0x58, 0x64, 0x32, 0x49, 0x6C, 0x3B, 0x43, 0xA1, 0x90, -0xC5, 0xB2, 0x4C, 0x16, 0x2C, 0x78, 0x84, 0xF3, 0xE7, 0xDF, -0xE6, 0xEA, 0xD5, 0x5F, 0x21, 0x44, 0x90, 0xFA, 0xFA, 0x06, -0xAA, 0xAB, 0xBF, 0x44, 0x28, 0xD4, 0xA2, 0x02, 0xA5, 0x3B, -0x0A, 0x9C, 0x3B, 0x77, 0xE4, 0x4C, 0x4B, 0xCB, 0x96, 0x87, -0x84, 0xB8, 0x49, 0x2C, 0xD6, 0x47, 0xB1, 0x58, 0x00, 0x6C, -0xCA, 0xE5, 0x19, 0x2C, 0xAB, 0x4C, 0xA9, 0x54, 0x24, 0x9F, -0x4F, 0x32, 0x77, 0x6E, 0x0D, 0x92, 0xE4, 0xC1, 0x30, 0x62, -0x9C, 0x3D, 0xFB, 0x17, 0xFA, 0xFB, 0x0D, 0xFF, 0xFE, 0xFD, -0x3D, 0xD9, 0x3B, 0x39, 0x50, 0x76, 0xED, 0xDA, 0x7C, 0xA8, -0xA5, 0x65, 0xCB, 0x43, 0x5D, 0x5D, 0x2F, 0xA2, 0xEB, 0x12, -0xBA, 0xEE, 0x26, 0x9F, 0x9F, 0xC1, 0xB6, 0x4B, 0x08, 0x21, -0x50, 0x14, 0x0B, 0x87, 0xC3, 0x8D, 0x2C, 0xDB, 0x24, 0x12, -0x83, 0x08, 0x21, 0x21, 0x49, 0x25, 0xDA, 0xDA, 0x5A, 0xB1, -0xED, 0x53, 0x83, 0x40, 0xD5, 0xDD, 0x46, 0xB4, 0x7D, 0x6C, -0xEC, 0xF9, 0xDF, 0x0E, 0x0F, 0x4F, 0x62, 0x18, 0x05, 0x6C, -0xDB, 0xC6, 0xED, 0x76, 0xE3, 0xF1, 0x38, 0x51, 0x55, 0x17, -0xF9, 0x7C, 0x11, 0xDB, 0xB6, 0x91, 0x65, 0x17, 0xA6, 0x99, -0x41, 0x92, 0x14, 0x6C, 0xBB, 0x40, 0xA1, 0x30, 0x8D, 0xA6, -0xD9, 0x2C, 0x5F, 0x5E, 0x27, 0x22, 0x91, 0x67, 0xE5, 0x3B, -0x8E, 0xE8, 0xE9, 0xA7, 0x57, 0x88, 0xDD, 0xBB, 0xD7, 0xD0, -0xD5, 0x35, 0xC1, 0xB2, 0x65, 0x21, 0x8A, 0x45, 0x95, 0x1B, -0x37, 0x4C, 0xE2, 0xF1, 0x49, 0x6C, 0xBB, 0x80, 0x6D, 0x9B, -0x78, 0xBD, 0x12, 0x42, 0x48, 0x98, 0x66, 0x01, 0xAF, 0x57, -0xC3, 0x30, 0x8A, 0xE4, 0x72, 0x12, 0x4E, 0xA7, 0x8A, 0xA6, -0xA9, 0x27, 0x9E, 0x7A, 0xEA, 0xBD, 0xF6, 0xDB, 0x09, 0x38, -0x00, 0x7A, 0x7A, 0xE2, 0xE9, 0x6D, 0xDB, 0x56, 0x7C, 0x31, -0x12, 0xD1, 0x79, 0xE6, 0x99, 0xEB, 0x3C, 0xFF, 0x93, 0x3F, -0x71, 0x25, 0x2A, 0xA1, 0xA9, 0x0D, 0x64, 0xB3, 0x95, 0xF4, -0x7D, 0x6C, 0x71, 0xAA, 0x6B, 0x92, 0x92, 0xB5, 0x94, 0xD6, -0x56, 0x1F, 0xBA, 0xAE, 0xB0, 0x78, 0x71, 0x0D, 0xBA, 0x2E, -0x70, 0xBB, 0x05, 0x95, 0x95, 0xBE, 0x5A, 0xBF, 0x5F, 0x09, -0xF6, 0xF6, 0xC6, 0xDF, 0xF9, 0xCC, 0x57, 0xD4, 0xDC, 0x5C, -0x25, 0x1C, 0xDA, 0x02, 0x9A, 0x57, 0x35, 0xB1, 0xF7, 0xE7, -0xFB, 0x70, 0xE9, 0xEE, 0x5B, 0x1A, 0xB3, 0xE6, 0x14, 0x2F, -0xBD, 0xF4, 0x22, 0xFF, 0xF8, 0xA0, 0x8F, 0x5D, 0xBB, 0x16, -0xA2, 0x28, 0x0A, 0x3E, 0xDF, 0x6C, 0xD2, 0xE9, 0x61, 0x64, -0xD9, 0xC9, 0x03, 0x0F, 0xF8, 0x38, 0x7E, 0xFC, 0xFD, 0x43, -0xDB, 0xB7, 0x77, 0xEF, 0xFC, 0x0F, 0x07, 0x00, 0x63, 0xE3, -0xD3, 0xF7, 0x5F, 0xB8, 0x70, 0xB1, 0xFE, 0xB1, 0xAD, 0x8F, -0xA3, 0x2A, 0x2A, 0xA5, 0x72, 0x89, 0x82, 0x65, 0x83, 0x54, -0x06, 0x51, 0xC6, 0xA9, 0xB9, 0xF9, 0xDC, 0xFA, 0x0D, 0xAC, -0x58, 0xD9, 0xC8, 0xDE, 0x9F, 0x1D, 0x61, 0xCD, 0x9A, 0xC5, -0xA8, 0xAA, 0x1B, 0x9F, 0x6F, 0x01, 0xB9, 0x5C, 0x86, 0x64, -0x32, 0xC0, 0xBA, 0x75, 0x8D, 0xCD, 0x86, 0x71, 0x2E, 0xDC, -0xDB, 0x9B, 0xEF, 0xFC, 0xB4, 0x83, 0xB5, 0x42, 0x88, 0xD3, -0x00, 0xA3, 0x93, 0x49, 0x34, 0x40, 0x12, 0xA0, 0x6A, 0x1A, -0x0E, 0x49, 0xC2, 0x2C, 0x15, 0x70, 0x08, 0x05, 0x1C, 0x82, -0x0A, 0x7F, 0x90, 0xAB, 0xD7, 0x06, 0x79, 0xF5, 0xC0, 0xAF, -0xF9, 0xD6, 0x37, 0x9E, 0x44, 0xF7, 0xC4, 0x10, 0x22, 0x4F, -0x2A, 0x75, 0x83, 0x8A, 0x8A, 0x5A, 0x1A, 0x1A, 0x54, 0x56, -0xAF, 0xDE, 0xF8, 0x5A, 0x6F, 0x2F, 0xDF, 0xFD, 0xB7, 0xC0, -0x40, 0x6C, 0x50, 0xDC, 0xB7, 0x70, 0x09, 0x97, 0x07, 0x2F, -0x12, 0x98, 0x15, 0xC0, 0x04, 0xE6, 0xF8, 0x2A, 0x50, 0x8B, -0x65, 0x32, 0xC2, 0x44, 0x77, 0x7A, 0x31, 0xD3, 0x49, 0x24, -0x21, 0x28, 0x0A, 0x89, 0x45, 0x91, 0x1A, 0x8E, 0x76, 0x1E, -0x46, 0x2B, 0x3B, 0xB9, 0x7F, 0xD5, 0x2A, 0x64, 0x65, 0x1C, -0xCB, 0x32, 0x49, 0xA5, 0x46, 0x08, 0x85, 0xFC, 0x44, 0x22, -0x09, 0x54, 0x75, 0xC7, 0xF7, 0x4B, 0x25, 0xF6, 0x49, 0xCD, -0x9B, 0x1E, 0xFC, 0xF2, 0xF9, 0xB7, 0xFF, 0xDE, 0x31, 0x9A, -0xEA, 0x97, 0x72, 0xD3, 0x92, 0x98, 0x9C, 0x36, 0x59, 0x58, -0x5B, 0x43, 0x5F, 0xDF, 0x05, 0xDE, 0xEB, 0xE8, 0x40, 0x72, -0xBA, 0x68, 0x6E, 0x6A, 0xE4, 0xC1, 0x47, 0xD6, 0x62, 0xCE, -0x08, 0xF4, 0x7C, 0x11, 0xCF, 0x94, 0x85, 0xC7, 0x1B, 0xE4, -0xE4, 0xF9, 0x6E, 0x36, 0x7E, 0x7D, 0x33, 0xE3, 0xA3, 0x63, -0xA8, 0x9A, 0x81, 0x65, 0x19, 0x18, 0x46, 0x86, 0x40, 0xC0, -0x60, 0x72, 0xB2, 0x9B, 0xC6, 0xC6, 0x03, 0x92, 0xB2, 0xAD, -0xFD, 0xAB, 0x8F, 0x02, 0xCC, 0xF3, 0x22, 0x90, 0x9D, 0xD4, -0x86, 0x2A, 0x39, 0xD5, 0x7D, 0x9A, 0x5F, 0x1E, 0x38, 0xC4, -0xAA, 0x86, 0x26, 0x42, 0xEE, 0x20, 0xD7, 0x2E, 0x46, 0x49, -0xA5, 0xE2, 0xD4, 0x04, 0xBD, 0x4C, 0xAB, 0x82, 0x99, 0x25, -0x73, 0xC9, 0xD5, 0xBB, 0x71, 0xDB, 0x02, 0x39, 0x2B, 0x33, -0x7B, 0xCE, 0x2C, 0x64, 0xD9, 0x8F, 0xAA, 0x2E, 0xA5, 0x5C, -0xEE, 0x26, 0x16, 0xEB, 0xA3, 0xAD, 0xED, 0x15, 0x84, 0x78, -0x65, 0x9F, 0x12, 0x9E, 0x3B, 0x7B, 0x19, 0xE4, 0x18, 0x4B, -0x96, 0x91, 0x67, 0xF2, 0x84, 0x85, 0x6D, 0xFF, 0xF3, 0x7C, -0xCC, 0x11, 0x8E, 0x44, 0x68, 0x5D, 0xFB, 0x30, 0xFE, 0x80, -0x97, 0xA9, 0x91, 0x38, 0x46, 0x2E, 0xCD, 0x9B, 0x2D, 0xF3, -0x19, 0x77, 0xC8, 0x84, 0xF2, 0xD3, 0x44, 0xCE, 0x44, 0xA9, -0x1E, 0xCF, 0x41, 0x03, 0xE8, 0xB2, 0x07, 0x80, 0x81, 0x81, -0x0E, 0x42, 0xA1, 0x20, 0x6D, 0x6D, 0x7B, 0x48, 0xA7, 0x13, -0x57, 0x96, 0x2F, 0x5F, 0xF8, 0x53, 0xA5, 0x58, 0xB4, 0x64, -0x32, 0x2E, 0x3C, 0x1F, 0xD6, 0x11, 0x93, 0x6E, 0x32, 0x12, -0x4E, 0x3A, 0x46, 0xCC, 0x58, 0xFA, 0xE1, 0x95, 0xAB, 0x83, -0xD7, 0x86, 0xA2, 0x04, 0xFC, 0x41, 0xBC, 0x1E, 0x8D, 0x1A, -0x6F, 0x2D, 0x3B, 0x63, 0xAB, 0x19, 0xD2, 0xE2, 0x4C, 0x59, -0x37, 0x88, 0x67, 0x24, 0x92, 0x6A, 0x12, 0x64, 0x48, 0x4C, -0x24, 0x48, 0x4F, 0x4D, 0x52, 0x5F, 0xFF, 0x15, 0x32, 0x99, -0x2C, 0x5B, 0xB7, 0xAE, 0xDD, 0x74, 0xF4, 0x68, 0xF7, 0x1F, -0x01, 0x94, 0xDA, 0xAC, 0x3F, 0xCA, 0x65, 0xB1, 0xEE, 0x43, -0xF3, 0x14, 0x09, 0xE7, 0x0C, 0x05, 0x4B, 0xA1, 0x6A, 0x51, -0xE5, 0xF4, 0x68, 0x6C, 0x30, 0xB8, 0xB4, 0xB1, 0x15, 0x49, -0x92, 0x91, 0x72, 0x39, 0x3E, 0xC8, 0x7F, 0x44, 0xB5, 0xE4, -0xC6, 0xE3, 0x5F, 0x42, 0x61, 0x4E, 0x18, 0xB3, 0x6E, 0x1C, -0xCF, 0xF8, 0x25, 0xAC, 0x91, 0x09, 0xF4, 0x59, 0x83, 0xDC, -0x17, 0x5E, 0x4B, 0x7B, 0xFB, 0xFA, 0x8E, 0x13, 0x27, 0xFE, -0xBA, 0xF9, 0x96, 0x3D, 0x28, 0x85, 0x45, 0xD0, 0x5E, 0xEF, -0xDB, 0x3C, 0x98, 0xB8, 0x86, 0xC3, 0xAB, 0x51, 0x1A, 0x9B, -0x20, 0x30, 0xB7, 0x3A, 0x60, 0xAB, 0xA5, 0xF2, 0xF5, 0xE8, -0x88, 0x94, 0x9D, 0x4A, 0x60, 0x3B, 0x66, 0x98, 0x55, 0x3D, -0x8F, 0x81, 0xE9, 0x18, 0xCE, 0xC9, 0x21, 0xB4, 0xE9, 0x9B, -0xE4, 0xCC, 0x69, 0xBE, 0x30, 0x7B, 0x31, 0xD5, 0x8B, 0x16, -0x92, 0x48, 0x70, 0xE5, 0xC0, 0x81, 0x1F, 0x34, 0x1C, 0x3C, -0x78, 0xF8, 0x37, 0xB7, 0xDD, 0xE4, 0xA1, 0xE8, 0x80, 0xB8, -0x74, 0x73, 0x98, 0x7C, 0xEA, 0x3A, 0x66, 0xD9, 0x8B, 0xE4, -0x2A, 0x21, 0x5B, 0x1A, 0xA3, 0x89, 0x14, 0x25, 0x61, 0x11, -0xF6, 0x39, 0xA8, 0x9B, 0x57, 0x49, 0x4A, 0x73, 0x63, 0x67, -0x4A, 0x78, 0x8A, 0x05, 0xEA, 0xEA, 0x22, 0x0C, 0x5C, 0x1C, -0xE5, 0xE0, 0x1B, 0xAF, 0xEE, 0xEE, 0x38, 0xF6, 0xEE, 0x2F, -0x3E, 0xEB, 0xB3, 0x73, 0x00, 0xD4, 0x2E, 0x5B, 0x3C, 0xD1, -0xB8, 0x74, 0xC1, 0xC6, 0xB4, 0x01, 0x15, 0x73, 0xFC, 0x38, -0x1D, 0x4E, 0x3C, 0x65, 0x85, 0x80, 0xDB, 0xC5, 0x9C, 0x9A, -0xF9, 0x54, 0x05, 0xE6, 0x13, 0xF0, 0xB8, 0xA9, 0x0E, 0x55, -0xE1, 0x73, 0x57, 0xB0, 0x72, 0xD9, 0x52, 0x0E, 0x77, 0x74, -0x46, 0x9F, 0x78, 0xF2, 0xDB, 0xB3, 0x07, 0xFA, 0xA3, 0x67, -0xFF, 0xAB, 0x44, 0xBB, 0x3C, 0x70, 0xF1, 0x4D, 0x29, 0xE0, -0xFA, 0x5A, 0x32, 0x9E, 0x46, 0x96, 0x64, 0x3C, 0xB2, 0x82, -0x43, 0x72, 0xE0, 0xF2, 0xBA, 0x90, 0x9D, 0x3A, 0x2E, 0xA1, -0xE3, 0xD6, 0x15, 0x54, 0x45, 0x45, 0xD1, 0xB5, 0x3F, 0xA8, -0xAA, 0xBA, 0xE5, 0x9E, 0xF3, 0xF8, 0x9D, 0x93, 0x27, 0x1E, -0x8B, 0xC6, 0xC7, 0xC4, 0x70, 0x26, 0x29, 0x6E, 0x4C, 0xC4, -0x45, 0x36, 0x6B, 0xDC, 0x92, 0xCB, 0xB9, 0x5C, 0x4E, 0x7C, -0x74, 0xE1, 0xC2, 0x8E, 0x7B, 0xE1, 0x94, 0x6E, 0x77, 0x18, -0x8D, 0x46, 0xDB, 0x23, 0xF3, 0xE7, 0xAD, 0x73, 0x48, 0xF2, -0xCC, 0xDF, 0xBA, 0x7B, 0x7C, 0x3D, 0x3D, 0x47, 0xD6, 0x87, -0x43, 0x2B, 0x7E, 0xFC, 0x9D, 0x9D, 0x3B, 0x8F, 0xDF, 0xEB, -0xA5, 0xFF, 0x35, 0x00, 0xB6, 0xF9, 0xAF, 0x08, 0x54, 0xAA, -0xDA, 0xA9, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, -0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Options2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x06, 0x37, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xB5, 0x96, 0x6B, 0x50, 0x54, 0xE7, 0x19, -0xC7, 0x7F, 0x7B, 0x85, 0x5D, 0x60, 0x77, 0xC9, 0x02, 0x2B, -0xC2, 0x2E, 0xB8, 0xE8, 0x82, 0x5C, 0x14, 0x54, 0x94, 0xE2, -0xA5, 0xD1, 0x41, 0x11, 0x4D, 0x26, 0xE4, 0xF2, 0x21, 0x63, -0x6A, 0xA4, 0x19, 0xAB, 0x69, 0x27, 0x5E, 0xA2, 0x69, 0x4C, -0x13, 0x1D, 0x41, 0x63, 0x9B, 0x38, 0x63, 0xB5, 0x49, 0x3E, -0x34, 0x3A, 0x0D, 0x5E, 0x12, 0x23, 0x51, 0x4C, 0x68, 0x52, -0x27, 0x11, 0xE3, 0x05, 0x50, 0x58, 0x56, 0x41, 0x44, 0x05, -0x04, 0x56, 0x90, 0x3B, 0x59, 0xEE, 0x84, 0xAB, 0xB8, 0x7D, -0x77, 0xB1, 0xAD, 0x92, 0x2F, 0x6D, 0xA7, 0x7D, 0xCE, 0xFE, -0xE7, 0x79, 0xDF, 0xF3, 0x9E, 0x7D, 0xAE, 0xFF, 0xF3, 0xCC, -0x81, 0xFF, 0xB3, 0x48, 0x72, 0xBF, 0xCB, 0x8E, 0x68, 0x6A, -0x0B, 0xAE, 0xE8, 0x1D, 0xF6, 0x43, 0x29, 0x1B, 0xE1, 0x81, -0xB8, 0xFE, 0x21, 0xD2, 0x87, 0xFA, 0x81, 0x53, 0xAC, 0xC5, -0x46, 0xE2, 0xBA, 0x9C, 0xE2, 0x09, 0x09, 0xC8, 0x65, 0xAE, -0x03, 0x90, 0x29, 0x60, 0x78, 0x40, 0x46, 0x6C, 0x8C, 0x3F, -0x27, 0xB3, 0x5E, 0x5F, 0xB8, 0x6F, 0xFF, 0xB1, 0x82, 0x47, -0x1D, 0xC8, 0xF6, 0xFD, 0xF1, 0xC4, 0xAB, 0xA7, 0x4F, 0x57, -0x2D, 0x59, 0xB3, 0x26, 0x0E, 0x83, 0xBF, 0x9A, 0x50, 0xA3, -0x2F, 0x21, 0x46, 0x1D, 0x53, 0x04, 0x8C, 0xA1, 0x3A, 0x42, -0x82, 0x75, 0x84, 0x86, 0x3E, 0x5C, 0x9B, 0x74, 0x04, 0x05, -0x6B, 0x31, 0x85, 0xE8, 0x08, 0x34, 0x08, 0x04, 0xE9, 0x30, -0x04, 0xFA, 0xA2, 0x9F, 0xAC, 0xA5, 0xDB, 0xA1, 0xA6, 0xAA, -0xA2, 0x20, 0xC0, 0x5A, 0x6C, 0xFD, 0xFC, 0x31, 0x07, 0xBF, -0x58, 0xBD, 0xC1, 0xEC, 0xEB, 0xAF, 0x4F, 0x8D, 0x8F, 0xF5, -0x21, 0xC0, 0x4F, 0x29, 0xA0, 0x70, 0xC3, 0xDF, 0xA5, 0xF5, -0xE3, 0xDA, 0x5F, 0xE8, 0x80, 0x27, 0x14, 0xF8, 0x09, 0xE8, -0xC4, 0x33, 0x3E, 0x5A, 0x25, 0x6A, 0xBD, 0x12, 0x4F, 0x6F, -0x25, 0x0A, 0x0F, 0x25, 0x1E, 0x62, 0x3D, 0xD9, 0x28, 0xE3, -0xEC, 0xA9, 0x53, 0x17, 0x4A, 0xCB, 0x4B, 0xBF, 0x79, 0xD4, -0x81, 0x54, 0x21, 0x93, 0xD0, 0xD6, 0xDA, 0xEB, 0xDE, 0xB4, -0xF5, 0x83, 0xA3, 0x07, 0x9A, 0x3A, 0xA1, 0xB1, 0x03, 0xEA, -0xDA, 0xE1, 0x4E, 0x33, 0xDC, 0x6C, 0x84, 0xD2, 0x1A, 0xB8, -0x72, 0x0B, 0x2E, 0x97, 0x43, 0xB1, 0x5D, 0xE0, 0x0E, 0x14, -0xB8, 0xEE, 0x35, 0xC0, 0xB9, 0x0A, 0xB0, 0x09, 0xAD, 0xF2, -0x74, 0x3A, 0x27, 0xF6, 0x40, 0x8E, 0xB8, 0xE5, 0x21, 0x9C, -0xB8, 0x4E, 0x06, 0x87, 0x45, 0x59, 0xEF, 0x8B, 0x9A, 0x0A, -0x0C, 0x8C, 0xC2, 0x88, 0xD8, 0xFF, 0x38, 0x24, 0x30, 0x22, -0xCE, 0x04, 0x86, 0x44, 0x1F, 0x46, 0xD5, 0x70, 0xB7, 0x34, -0x1F, 0x7A, 0x7F, 0xA0, 0xA3, 0xA5, 0x0D, 0x0F, 0xA3, 0x91, -0xEE, 0x86, 0x8B, 0xA8, 0x82, 0x32, 0x88, 0xB4, 0x58, 0xEC, -0x13, 0x1D, 0x48, 0x65, 0x32, 0x27, 0x72, 0xF9, 0x03, 0x3A, -0x84, 0xD1, 0x16, 0x11, 0x75, 0xAD, 0x88, 0xBA, 0x5A, 0x44, -0x5D, 0x51, 0x0F, 0x37, 0x9A, 0xE0, 0xBA, 0x88, 0xBE, 0xAC, -0x16, 0x4A, 0x44, 0x56, 0x17, 0xAA, 0xEB, 0x38, 0xF9, 0xFE, -0xF3, 0x94, 0x7E, 0xFA, 0x0E, 0x97, 0x8E, 0x7F, 0xC8, 0xF9, -0x4F, 0x32, 0x38, 0xB3, 0x6B, 0x2D, 0x77, 0x72, 0xCE, 0x60, -0xCF, 0x79, 0x9E, 0xEB, 0x77, 0xED, 0x6F, 0x2D, 0x5A, 0xBA, -0x22, 0xE6, 0x31, 0x16, 0x35, 0xD4, 0x76, 0xA6, 0x7D, 0x53, -0xD8, 0x91, 0x39, 0x65, 0xEE, 0x54, 0x5A, 0x85, 0xB1, 0x31, -0xA5, 0x88, 0x5E, 0x44, 0x3D, 0x28, 0x1C, 0xF6, 0xF7, 0x89, -0x2C, 0xC4, 0xBA, 0x59, 0x44, 0x5E, 0x5D, 0x53, 0x89, 0x9F, -0x75, 0x27, 0x6A, 0xC5, 0x8F, 0x0C, 0xC8, 0x7D, 0xB8, 0x61, -0x2B, 0xC6, 0x5B, 0xEB, 0xCD, 0x7D, 0x91, 0xB6, 0x42, 0xE5, -0x83, 0x61, 0x92, 0x2F, 0x2F, 0xAF, 0xDB, 0xC4, 0x97, 0xD9, -0x59, 0x68, 0x34, 0xFA, 0x9C, 0xA3, 0x07, 0x0F, 0xA4, 0xBA, -0x33, 0xF0, 0x52, 0x8C, 0x51, 0xD3, 0x3F, 0x9E, 0x41, 0xD7, -0xA0, 0xA8, 0x79, 0x1D, 0x58, 0x8B, 0xE0, 0xC4, 0xD7, 0xF0, -0xE9, 0x69, 0xF8, 0x20, 0x0B, 0x8E, 0xBE, 0x6B, 0xE7, 0xC9, -0xEA, 0x1D, 0xCC, 0x48, 0x30, 0xB1, 0xE4, 0xC5, 0x5F, 0x12, -0x24, 0x18, 0x64, 0x08, 0xD0, 0x11, 0x13, 0x15, 0xCE, 0xC6, -0x2D, 0x1B, 0x09, 0x09, 0xD2, 0xD3, 0xD5, 0xD1, 0x49, 0x6E, -0xF6, 0x31, 0x3E, 0xDA, 0x9B, 0xC1, 0xDD, 0x7A, 0xFB, 0x33, -0xC7, 0x73, 0xCE, 0x6C, 0x77, 0x67, 0x30, 0xDC, 0xD9, 0x95, -0xB6, 0xEA, 0x40, 0x7B, 0xA6, 0x5C, 0x6D, 0xE1, 0xCA, 0x25, -0x68, 0xE8, 0x19, 0xE7, 0x37, 0x2E, 0x9E, 0x7B, 0x0A, 0x88, -0xDA, 0xA7, 0x4C, 0x3D, 0xC6, 0xAE, 0xD5, 0x76, 0x7E, 0xFF, -0x59, 0x23, 0xFA, 0x11, 0x03, 0xF7, 0xEC, 0x5E, 0x18, 0xC3, -0xF3, 0xD9, 0xBC, 0x65, 0x3F, 0xB6, 0xAB, 0x45, 0x4C, 0x0B, -0x9B, 0xC2, 0xC7, 0x1F, 0x1F, 0xA2, 0xFC, 0xE6, 0xCD, 0xFB, -0xD1, 0xD3, 0x2D, 0xF2, 0x05, 0x2B, 0x5F, 0xA0, 0xC4, 0x6A, -0xE5, 0xD0, 0x87, 0xFB, 0x64, 0x72, 0xA5, 0x06, 0xB2, 0x0F, -0x89, 0xF0, 0x0D, 0x8C, 0x23, 0x50, 0x40, 0x94, 0xC9, 0xDD, -0x75, 0x97, 0x13, 0xD1, 0x8B, 0xB5, 0x89, 0x7D, 0xE4, 0xD5, -0x6B, 0xE8, 0xB6, 0x37, 0xE2, 0x13, 0xDC, 0x4F, 0x5C, 0x82, -0x3F, 0x2D, 0x0E, 0x3D, 0x97, 0xAF, 0x14, 0xF0, 0xEA, 0xBA, -0xB5, 0xE4, 0xE7, 0x5F, 0x46, 0xAB, 0xD5, 0x22, 0x95, 0x38, -0x5F, 0x4F, 0x48, 0x9C, 0x5F, 0xD9, 0x5A, 0x5B, 0x9D, 0x3B, -0x26, 0xD3, 0xB0, 0xE5, 0x9D, 0x1D, 0xEB, 0xA5, 0xB8, 0x98, -0xE5, 0x31, 0x06, 0x53, 0x85, 0x31, 0x3F, 0x57, 0x4E, 0x02, -0x82, 0x41, 0x0C, 0x3F, 0x74, 0xE2, 0x62, 0x92, 0xA8, 0x73, -0xEB, 0xBD, 0x76, 0xC2, 0xCC, 0x26, 0x51, 0x54, 0x25, 0x09, -0x8B, 0x93, 0x88, 0x8E, 0x9C, 0x49, 0x79, 0x59, 0x09, 0xDB, -0xB7, 0x6F, 0x67, 0xCF, 0x9E, 0xDD, 0x44, 0x45, 0x47, 0x63, -0x32, 0x86, 0xA4, 0x6D, 0xD8, 0xB0, 0xE9, 0x5C, 0x7D, 0xED, -0xED, 0x7C, 0x5F, 0x7F, 0x1D, 0xED, 0xCD, 0x2D, 0xE1, 0x52, -0xB7, 0x11, 0xF5, 0x78, 0xC7, 0x95, 0x22, 0x11, 0xB9, 0x5C, -0xF8, 0x13, 0x90, 0x09, 0x28, 0x5C, 0xA5, 0x0A, 0x11, 0xEC, -0xEA, 0x95, 0xD0, 0xFD, 0x43, 0x2D, 0xE6, 0xA8, 0x78, 0x41, -0xE9, 0x61, 0xAA, 0x4B, 0xF2, 0xF8, 0xED, 0x9B, 0x6F, 0x50, -0x55, 0x55, 0x47, 0x6F, 0x77, 0x07, 0x16, 0x8B, 0x85, 0xD5, -0xAB, 0x5E, 0x22, 0xD0, 0x14, 0xEA, 0x9E, 0x2E, 0x46, 0xA3, -0xA9, 0x44, 0xAE, 0x50, 0x62, 0x2B, 0x2A, 0x2C, 0x11, 0x0E, -0x24, 0xEE, 0xD7, 0xC1, 0xF5, 0x53, 0xAB, 0x40, 0xEB, 0x01, -0x3A, 0x1F, 0x30, 0x1B, 0x21, 0x7A, 0x06, 0x44, 0xCE, 0x81, -0xAB, 0x03, 0x2A, 0x5A, 0x6E, 0x55, 0xA2, 0x0D, 0xD0, 0x63, -0x9E, 0x96, 0x40, 0x5E, 0x89, 0x9C, 0xBF, 0x9E, 0xCA, 0xE4, -0xB9, 0x67, 0x9F, 0xA6, 0xB4, 0xEC, 0x36, 0x29, 0x2B, 0x9F, -0xE2, 0xF0, 0x91, 0x23, 0x8C, 0x0C, 0xF4, 0xC6, 0x65, 0x67, -0x9D, 0x68, 0x93, 0xEA, 0x4C, 0x9B, 0x2A, 0x4B, 0x0A, 0x59, -0xB0, 0x24, 0x79, 0x50, 0xE2, 0x1C, 0xEA, 0x49, 0x93, 0x24, -0x36, 0x66, 0x2A, 0x67, 0x47, 0x12, 0x26, 0x8C, 0x6B, 0x45, -0x4F, 0xBC, 0x05, 0x4C, 0x01, 0xA5, 0xF4, 0x14, 0xEF, 0x22, -0x44, 0xA3, 0xE0, 0x5E, 0x47, 0x20, 0x6A, 0x4F, 0x6F, 0x54, -0xF2, 0x21, 0x96, 0x2D, 0x4D, 0xE6, 0x42, 0x6F, 0x2C, 0x29, -0x81, 0xED, 0xEC, 0xD9, 0x9C, 0xCA, 0xB6, 0x8C, 0x7D, 0xB4, -0xB6, 0x34, 0xD1, 0xD6, 0xDC, 0x4E, 0xB0, 0x39, 0x84, 0xD6, -0x11, 0x25, 0x57, 0x05, 0x5B, 0x7C, 0x94, 0x2A, 0x8E, 0x1C, -0xFA, 0x40, 0x22, 0x71, 0x76, 0x75, 0xFD, 0x4A, 0x32, 0xBF, -0xFD, 0xE0, 0xE4, 0xA7, 0x2C, 0xC4, 0x78, 0x8B, 0xD2, 0x68, -0x61, 0x59, 0x64, 0x31, 0xD6, 0xFD, 0x2B, 0x58, 0x90, 0xB4, -0x8D, 0x58, 0x73, 0x10, 0x0A, 0x9D, 0x2F, 0x59, 0x5F, 0x5F, -0x64, 0x4C, 0x33, 0x89, 0x27, 0x44, 0x39, 0xA5, 0x43, 0x2D, -0x34, 0x0D, 0xFA, 0x73, 0xA3, 0xE8, 0x7B, 0xE6, 0xC4, 0xCF, -0x21, 0x36, 0x76, 0x16, 0xB6, 0x6B, 0xD7, 0xC5, 0x7B, 0xA1, -0xA7, 0xB9, 0xBE, 0xC6, 0x35, 0x7F, 0x28, 0xBB, 0x6A, 0x3D, -0x5B, 0x66, 0x2B, 0x4A, 0x96, 0x38, 0x9D, 0xCE, 0x6D, 0xAA, -0xB9, 0xB6, 0xF7, 0x86, 0x4C, 0x11, 0xA4, 0x2E, 0xF4, 0x61, -0x55, 0xE2, 0x08, 0xA7, 0xF7, 0x26, 0x11, 0x3E, 0x65, 0x1E, -0xE9, 0x7F, 0xD8, 0xCB, 0xDC, 0x45, 0x4F, 0xB2, 0xE3, 0xED, -0xDF, 0x11, 0xE0, 0x2D, 0x23, 0xE7, 0xA2, 0x8D, 0x76, 0x31, -0x43, 0x86, 0x1C, 0x0E, 0x3C, 0x15, 0xF7, 0x09, 0x0C, 0x36, -0xD3, 0xD0, 0xD4, 0x44, 0x57, 0x67, 0x97, 0x9B, 0x00, 0xA3, -0xA3, 0x23, 0x48, 0xE4, 0x6A, 0x91, 0x41, 0x5E, 0x5F, 0x61, -0xFE, 0x79, 0x0D, 0x0F, 0x39, 0x23, 0x88, 0xE4, 0x2C, 0x86, -0x3E, 0xBD, 0xE8, 0x42, 0xEB, 0x77, 0xDF, 0x66, 0xCF, 0xFB, -0xE2, 0xCB, 0x4B, 0xB2, 0x67, 0x52, 0x96, 0x62, 0x89, 0x8A, -0x62, 0xBA, 0x68, 0xA0, 0xC1, 0x30, 0x89, 0xD6, 0xD6, 0x66, -0xFE, 0x7C, 0xF0, 0x2F, 0x94, 0xD9, 0x5B, 0x70, 0x34, 0xD9, -0x1D, 0xBE, 0x5E, 0x1A, 0x8D, 0x54, 0xE5, 0xA1, 0x0C, 0x9A, -0x6C, 0x40, 0xED, 0x1C, 0xC5, 0x1C, 0x3D, 0x9B, 0xB3, 0xE7, -0xF3, 0x28, 0xBD, 0x56, 0xB4, 0xDF, 0x7A, 0xF1, 0xDC, 0x96, -0x7F, 0x8E, 0x8A, 0x89, 0xC3, 0x29, 0x30, 0x2C, 0x22, 0xFD, -0x95, 0xDF, 0x6C, 0xDD, 0x39, 0x23, 0xD0, 0x93, 0xB8, 0xB8, -0x58, 0x32, 0x8F, 0x7E, 0xC6, 0x8C, 0xE8, 0x08, 0x16, 0x2F, -0x5C, 0xC4, 0xD1, 0x9C, 0x5C, 0xAC, 0xB6, 0x12, 0x2A, 0xCB, -0x8A, 0x5E, 0x4E, 0x7A, 0xFA, 0x85, 0xAF, 0x7A, 0x1C, 0x8E, -0xCD, 0x26, 0xA3, 0xD1, 0xD2, 0x58, 0x53, 0xDE, 0x54, 0x75, -0xA7, 0xA6, 0x48, 0x17, 0x14, 0x52, 0xF0, 0xB7, 0x2F, 0x8E, -0x3B, 0x1E, 0x9F, 0xA6, 0x13, 0xE4, 0x95, 0x75, 0xAF, 0xC9, -0x0A, 0x2F, 0x7C, 0x4B, 0xD4, 0xFA, 0x75, 0xDC, 0xBE, 0x5D, -0xC1, 0xB4, 0xF0, 0x68, 0xDA, 0xBA, 0xFA, 0x28, 0xBA, 0x69, -0x17, 0x14, 0x56, 0x71, 0xB7, 0xE2, 0x06, 0xA6, 0xD0, 0xA9, -0x75, 0x7F, 0x7A, 0x77, 0x87, 0x98, 0x54, 0xEC, 0x7E, 0xFC, -0xDF, 0x97, 0x27, 0x9A, 0xFB, 0x69, 0x06, 0x61, 0xD3, 0x23, -0xE7, 0xCC, 0x4B, 0x98, 0x6F, 0x8B, 0x88, 0x9A, 0x25, 0x9A, -0x17, 0x43, 0xC6, 0xDB, 0x6F, 0xA0, 0xF2, 0xF0, 0x26, 0x62, -0xF6, 0x2C, 0x96, 0x2F, 0x5F, 0xC9, 0xD6, 0xD7, 0xD6, 0x8F, -0x79, 0x7B, 0x79, 0x19, 0x6E, 0x95, 0x5D, 0xEB, 0xF8, 0x89, -0xB5, 0x7F, 0x57, 0xD6, 0xA4, 0xAD, 0xCD, 0x8D, 0x4F, 0x5C, -0xE4, 0x3C, 0x7C, 0x32, 0xC7, 0x99, 0xB4, 0x7C, 0x85, 0x73, -0xF1, 0xCF, 0x17, 0x3A, 0x3F, 0xFA, 0xE4, 0xB0, 0xF3, 0xA5, -0xF5, 0x5B, 0x9D, 0x46, 0x53, 0x70, 0xEA, 0x7F, 0x6D, 0xF8, -0x11, 0x91, 0x2E, 0x4B, 0x49, 0x7D, 0xF3, 0xD7, 0xDB, 0xD2, -0x87, 0x37, 0xBE, 0xB5, 0xA7, 0x3F, 0xFD, 0xFD, 0x03, 0x03, -0xBB, 0x77, 0xA5, 0xE7, 0xEF, 0x3C, 0x70, 0x70, 0x59, 0x44, -0xD4, 0x4C, 0xCB, 0xFF, 0xC2, 0x81, 0x5B, 0x66, 0xC6, 0xFF, -0x2C, 0x60, 0x71, 0x72, 0x8A, 0x79, 0x69, 0xF2, 0xCA, 0x30, -0xFE, 0xF5, 0x91, 0xF1, 0x1F, 0xC9, 0xDF, 0x01, 0x3F, 0x79, -0x56, 0x4A, 0xCF, 0x4C, 0xD6, 0xCC, 0x00, 0x00, 0x00, 0x00, -0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Pad2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x06, 0x7C, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xBD, 0x55, 0x7B, 0x50, 0x93, 0x57, 0x16, -0xFF, 0x7D, 0x79, 0x92, 0x90, 0x90, 0x87, 0x10, 0x49, 0x80, -0x00, 0xF2, 0x08, 0xE1, 0x51, 0x90, 0xD0, 0x20, 0x28, 0x09, -0xAF, 0x42, 0x11, 0x10, 0x21, 0x0A, 0x15, 0x10, 0x30, 0x0A, -0x2A, 0x10, 0x02, 0xE8, 0x22, 0xA6, 0x01, 0x4C, 0x5D, 0x94, -0x5A, 0xCA, 0x2A, 0xDB, 0x55, 0xB7, 0xB3, 0x6B, 0xAB, 0x4E, -0x15, 0x6D, 0x67, 0x5A, 0xBA, 0x75, 0x14, 0x57, 0x3B, 0xDD, -0x2D, 0x3A, 0xE2, 0x0A, 0x0A, 0x5B, 0x51, 0xB4, 0x05, 0x7C, -0x31, 0x5D, 0x05, 0x94, 0xC5, 0x1A, 0xB0, 0x9A, 0x6F, 0xBF, -0x64, 0xD7, 0x8E, 0xDB, 0xDD, 0xF6, 0x8F, 0x76, 0x67, 0x7F, -0x33, 0xF7, 0x3B, 0xE7, 0x9E, 0x7B, 0xCF, 0xEF, 0x9E, 0x73, -0xEF, 0xFD, 0xCE, 0x05, 0xFE, 0xDF, 0x50, 0x2A, 0x83, 0xD2, -0x9D, 0x38, 0x9C, 0x46, 0x4A, 0x65, 0x3C, 0xB3, 0x55, 0x55, -0x19, 0x94, 0x9F, 0x0E, 0xF4, 0x4E, 0x1B, 0x2D, 0x16, 0xB2, -0xA9, 0x6D, 0x17, 0x79, 0xE4, 0xC4, 0x31, 0xDB, 0xBB, 0x1F, -0x74, 0x54, 0x3E, 0xEF, 0x47, 0xA3, 0x11, 0xAB, 0x65, 0x73, -0x5D, 0xD7, 0x7D, 0x9F, 0x8F, 0xF6, 0x7C, 0xC7, 0xC9, 0x55, -0x42, 0xDE, 0xB9, 0x37, 0xFD, 0xC9, 0x8C, 0x75, 0xD6, 0x42, -0x10, 0xEC, 0x6F, 0x17, 0xC5, 0xC5, 0x6C, 0x75, 0x62, 0xF3, -0xEA, 0xB2, 0x74, 0x19, 0x83, 0x09, 0x61, 0x91, 0xBC, 0xA9, -0x5B, 0x8F, 0x31, 0xFC, 0xE7, 0x8B, 0x90, 0xBB, 0xBA, 0x13, -0xC5, 0xBA, 0xBC, 0x5F, 0xB3, 0x05, 0x92, 0x8F, 0x04, 0x72, -0x1F, 0x13, 0x9B, 0xCE, 0x26, 0x15, 0x8A, 0xA8, 0xDF, 0x8D, -0xCD, 0xF0, 0xF7, 0x80, 0x21, 0x24, 0xB3, 0x17, 0x27, 0xA4, -0xFF, 0xC7, 0x02, 0xA1, 0xE1, 0xE1, 0xA4, 0xA1, 0xA0, 0x00, -0xBA, 0xC5, 0x49, 0x30, 0x18, 0x0C, 0xD8, 0x62, 0xAE, 0xC7, -0xED, 0xD1, 0x09, 0xF3, 0xCC, 0xEC, 0xC3, 0xD7, 0x69, 0x4C, -0x26, 0xBE, 0xB9, 0x3F, 0x89, 0x8C, 0x44, 0x3F, 0x78, 0x85, -0x48, 0xB0, 0x40, 0x15, 0x89, 0x81, 0xFE, 0x5E, 0x70, 0x65, -0xB2, 0x2C, 0xCE, 0xFD, 0xA7, 0xCD, 0xA3, 0xED, 0x3B, 0x70, -0x6B, 0x64, 0x10, 0xAF, 0x9A, 0x8C, 0x30, 0x6D, 0x31, 0xE1, -0xF3, 0xA1, 0x07, 0x9F, 0x78, 0x0A, 0x9D, 0xE7, 0x7E, 0xB7, -0x80, 0x9B, 0xAB, 0x5B, 0x6D, 0x64, 0xEC, 0x22, 0x5C, 0xBD, -0x37, 0x86, 0x7D, 0xFB, 0xF7, 0xA3, 0xBD, 0x7D, 0x27, 0x42, -0xB4, 0x2A, 0xC8, 0x95, 0x5E, 0xD4, 0x28, 0x0B, 0x5D, 0xC7, -0x4F, 0xE2, 0x6C, 0xCF, 0x39, 0x2A, 0x45, 0x21, 0x92, 0x53, -0xD3, 0x71, 0xB4, 0xE3, 0x08, 0x95, 0xED, 0x1C, 0xDC, 0xBF, -0x7D, 0x0B, 0x98, 0xBE, 0x85, 0x86, 0xEE, 0x4B, 0x98, 0xB6, -0x3E, 0x44, 0x18, 0x1F, 0xF8, 0x72, 0xB0, 0x17, 0xE3, 0x1C, -0x16, 0x02, 0x62, 0x93, 0x0E, 0xDA, 0xB9, 0xE9, 0xF6, 0x8F, -0xD4, 0x7B, 0x5E, 0xD1, 0xE0, 0xCD, 0xB1, 0xA8, 0xDE, 0xD3, -0x7F, 0xC4, 0xD8, 0xFD, 0x47, 0x18, 0x1A, 0xEE, 0x47, 0x72, -0x74, 0x02, 0x76, 0xEF, 0xDA, 0x05, 0xA9, 0xAF, 0x02, 0x2C, -0x2E, 0x0D, 0x1B, 0x8D, 0x46, 0x48, 0x5C, 0x84, 0xE0, 0x70, -0xB9, 0x58, 0xA4, 0x89, 0xC3, 0x66, 0xB3, 0x19, 0xF3, 0xA4, -0xEE, 0x78, 0xE2, 0x15, 0x88, 0x07, 0x53, 0x5F, 0x23, 0x5E, -0xAD, 0x86, 0x66, 0x71, 0x26, 0x26, 0x1F, 0xCD, 0x60, 0xFA, -0xEA, 0x00, 0x9A, 0x5B, 0xDB, 0x7C, 0x26, 0xBF, 0x1E, 0x7B, -0xCD, 0x71, 0x90, 0xF5, 0xE6, 0xF5, 0xF3, 0x1A, 0xEA, 0x5A, -0x71, 0xAD, 0xF7, 0x22, 0xDC, 0x55, 0xF3, 0x71, 0xF7, 0xFA, -0xAC, 0x63, 0xDB, 0xDC, 0xBD, 0x7D, 0xD0, 0x7F, 0x79, 0x18, -0x77, 0xBA, 0x6E, 0xA2, 0xE3, 0x68, 0x07, 0x92, 0x13, 0x53, -0x30, 0x3E, 0x35, 0x81, 0xC9, 0xBE, 0xB3, 0xE8, 0xF8, 0xF8, -0x73, 0xB8, 0x10, 0x13, 0xB8, 0x3D, 0x72, 0x1B, 0x9B, 0x36, -0xD5, 0xC1, 0x2F, 0x38, 0x18, 0x24, 0x49, 0x3A, 0xFC, 0x08, -0x82, 0x40, 0xFD, 0xB6, 0x16, 0x6B, 0xCB, 0xA5, 0x0B, 0xFF, -0xBC, 0x29, 0xA5, 0x05, 0x15, 0xC9, 0xE5, 0x1B, 0xEB, 0xB0, -0xF7, 0xD0, 0x7B, 0x28, 0x7C, 0xFC, 0x10, 0xE9, 0x31, 0x71, -0x58, 0x5F, 0xBE, 0x1A, 0xB6, 0x59, 0x1B, 0xE4, 0x9E, 0xBE, -0x18, 0xE8, 0xEB, 0x43, 0xFE, 0x8A, 0x55, 0xE8, 0xFD, 0xCB, -0x19, 0xA8, 0xA3, 0x16, 0x20, 0x2C, 0x26, 0x01, 0xB6, 0x99, -0x07, 0x48, 0x7C, 0x39, 0x0B, 0x8A, 0xE0, 0x40, 0xF0, 0x78, -0x02, 0x7C, 0x39, 0x7C, 0x03, 0x5C, 0x27, 0x11, 0xDC, 0x02, -0x82, 0x10, 0xB4, 0x30, 0x05, 0x47, 0xF6, 0xED, 0xE5, 0x95, -0x6D, 0x2C, 0x53, 0xD0, 0xE2, 0xB4, 0x9A, 0xE8, 0xDF, 0x1F, -0x3C, 0x40, 0x0B, 0x90, 0x88, 0xD1, 0xF5, 0x59, 0x37, 0x56, -0x55, 0xD4, 0x52, 0x11, 0xD0, 0x70, 0xE3, 0xE6, 0x24, 0x18, -0x0C, 0x12, 0xDF, 0xFC, 0xED, 0x3A, 0x88, 0xD9, 0xC7, 0xF0, -0xF4, 0x54, 0x42, 0xB5, 0x20, 0x9E, 0x1A, 0x63, 0x61, 0x7C, -0x74, 0x94, 0xB2, 0x4F, 0xA0, 0xB3, 0xF3, 0x28, 0x78, 0x14, -0xA9, 0xA5, 0xC9, 0x02, 0x3F, 0x5F, 0x77, 0x44, 0xA4, 0xBE, -0x8C, 0xA7, 0x34, 0x02, 0xBB, 0x36, 0xEA, 0xB1, 0xC9, 0xBC, -0x15, 0x13, 0x13, 0xAC, 0x30, 0x86, 0x4C, 0xE9, 0x2D, 0x3F, -0x7F, 0xED, 0x32, 0x22, 0x43, 0x43, 0x70, 0xA5, 0xAF, 0xC7, -0x91, 0x62, 0xD4, 0x82, 0x85, 0xE0, 0xD3, 0xD9, 0x50, 0xA8, -0x14, 0x88, 0xC9, 0x59, 0x0E, 0x2E, 0x8F, 0x83, 0xB7, 0x36, -0x37, 0x22, 0x2F, 0x57, 0x07, 0x3A, 0xFD, 0x29, 0x06, 0x7A, -0xCE, 0x63, 0x4D, 0xAD, 0x19, 0x74, 0x5F, 0x35, 0x86, 0x7A, -0x3E, 0xC5, 0xEE, 0xB7, 0xDF, 0x46, 0x55, 0x9D, 0x09, 0x23, -0x83, 0xFD, 0xD4, 0xA1, 0x72, 0x60, 0xF5, 0xF6, 0xC7, 0xB9, -0xE3, 0x5D, 0x78, 0x62, 0xB3, 0x6A, 0x69, 0x7C, 0x26, 0xE7, -0x45, 0x67, 0x96, 0x13, 0x2E, 0x7E, 0x31, 0x02, 0xF3, 0x9B, -0xDB, 0xA1, 0x54, 0xC4, 0xE0, 0xC2, 0xB9, 0x33, 0x18, 0xA5, -0x22, 0x5F, 0x9E, 0x99, 0x06, 0x7F, 0x65, 0x04, 0x42, 0x22, -0x22, 0xC1, 0x67, 0x91, 0x90, 0xF9, 0x29, 0x41, 0x63, 0xF2, -0x21, 0x90, 0x0B, 0x91, 0xBA, 0x64, 0x29, 0x9C, 0x85, 0x7C, -0xAC, 0x5A, 0xB9, 0x14, 0xB3, 0xD6, 0x59, 0x58, 0xA7, 0xC6, -0x1D, 0xC1, 0xE5, 0x97, 0xAF, 0xC5, 0x07, 0x87, 0x0F, 0xC3, -0x8D, 0xC6, 0x04, 0x57, 0x24, 0xC8, 0xA3, 0xC9, 0x3D, 0xFD, -0x7C, 0x46, 0x86, 0xEF, 0x50, 0x7B, 0x3A, 0x05, 0x2B, 0xC9, -0x85, 0x58, 0x26, 0x06, 0x93, 0x4E, 0x3F, 0x7D, 0xBE, 0xA7, -0x8F, 0x48, 0x48, 0x5B, 0x81, 0x13, 0xEF, 0x1F, 0x40, 0xD9, -0xE2, 0xA5, 0xB8, 0xF7, 0x77, 0xFA, 0xD8, 0xC9, 0x93, 0xA7, -0x7E, 0x73, 0xEC, 0xC3, 0x13, 0xAD, 0x57, 0x2F, 0x8D, 0x7F, -0xA5, 0x4B, 0x48, 0xC2, 0x17, 0xDD, 0x9D, 0x28, 0xD5, 0x6F, -0x40, 0x7E, 0x99, 0x71, 0xAD, 0x0B, 0x93, 0x61, 0xE0, 0x0B, -0xC5, 0xF0, 0x0B, 0x0B, 0x02, 0x83, 0x4E, 0x07, 0x49, 0x3C, -0x01, 0xF1, 0x2D, 0x69, 0xC3, 0xB2, 0x92, 0xA2, 0xDF, 0x1A, -0x2C, 0x5B, 0xC8, 0xB4, 0x12, 0x3D, 0xB9, 0xC6, 0x6C, 0x26, -0x6B, 0x4D, 0x9B, 0xC9, 0xEC, 0xDC, 0x22, 0x9D, 0xE3, 0x0E, -0x33, 0x18, 0x02, 0x31, 0x4F, 0x61, 0xA3, 0xD4, 0xBF, 0x7E, -0xBF, 0x04, 0xD0, 0x21, 0xAA, 0xA0, 0x04, 0xA9, 0xC9, 0xD3, -0x6F, 0xF9, 0xEE, 0xAF, 0xE5, 0x30, 0xC8, 0x92, 0xFA, 0x26, -0x32, 0xA7, 0xB4, 0x82, 0xAC, 0x68, 0x6A, 0x24, 0x5F, 0xA9, -0xAD, 0xBB, 0x4B, 0x14, 0x54, 0x55, 0x97, 0xB8, 0x88, 0x45, -0xEF, 0x5C, 0xBF, 0x7A, 0x0D, 0x49, 0xDA, 0x38, 0x9C, 0xFE, -0xE8, 0x43, 0x9C, 0xEA, 0xEA, 0x22, 0x7E, 0xA4, 0x5C, 0xFD, -0x20, 0x22, 0xE6, 0xAB, 0xDB, 0x3C, 0xC2, 0x42, 0x6B, 0xB8, -0x42, 0x01, 0x44, 0x02, 0x17, 0x3C, 0x98, 0xB6, 0x5E, 0x40, -0x74, 0x6A, 0x56, 0xC1, 0xAA, 0xDA, 0x6A, 0x72, 0x99, 0xB1, -0x8A, 0x34, 0x98, 0x4D, 0x24, 0x4F, 0xE4, 0xE6, 0xF3, 0x53, -0xC8, 0x9F, 0x41, 0x2C, 0x97, 0x93, 0x79, 0x55, 0x35, 0xE4, -0x3A, 0xCB, 0x76, 0x32, 0x3A, 0x3B, 0xB7, 0xC1, 0x61, 0x7C, -0xA9, 0x70, 0x2D, 0xD9, 0xFC, 0xD6, 0x5E, 0xD2, 0xC3, 0x3B, -0x30, 0xF9, 0xE7, 0x90, 0x3B, 0x40, 0x40, 0xA4, 0xCD, 0xC8, -0x26, 0x4B, 0x5B, 0x76, 0x92, 0x74, 0x1A, 0x57, 0xE5, 0xB0, -0x09, 0xFD, 0x42, 0x37, 0x2D, 0xCC, 0x4C, 0xDF, 0xF3, 0xB3, -0xC9, 0xFF, 0x05, 0x06, 0x9D, 0x19, 0x1F, 0xAC, 0xD6, 0x7E, -0xEC, 0xD0, 0x5F, 0xD0, 0x24, 0x26, 0x2E, 0x4C, 0x48, 0x08, -0xE7, 0x8A, 0x9C, 0xCF, 0xA8, 0x14, 0x21, 0xBD, 0xED, 0xAD, -0x3B, 0x4A, 0x29, 0x7B, 0xDF, 0x4F, 0x25, 0x97, 0x07, 0x05, -0xFE, 0x41, 0x57, 0x6A, 0xF8, 0x8A, 0xE1, 0xCC, 0xEB, 0x67, -0xB9, 0x70, 0x2A, 0xB1, 0x6E, 0xF3, 0x2F, 0x96, 0x57, 0xBE, -0x66, 0xB1, 0x68, 0x74, 0xB9, 0x7A, 0xD3, 0x1B, 0x6D, 0x95, -0x6B, 0xD6, 0xEB, 0x3B, 0x0F, 0x1D, 0xFF, 0x93, 0xEC, 0x39, -0x1F, 0x0D, 0xD5, 0x22, 0xFE, 0x0B, 0x97, 0x48, 0x00, 0x4E, -0x1C, 0x78, 0xC2, 0x39, 0xCF, 0x0C, 0x3C, 0x01, 0x7F, 0x77, -0xED, 0x8E, 0x76, 0x73, 0xCE, 0xFA, 0xEA, 0xFC, 0x72, 0xB3, -0xB9, 0xAC, 0xB8, 0x69, 0x5B, 0x0D, 0x5A, 0xDE, 0x6C, 0x8D, -0x4F, 0x2F, 0x5A, 0x99, 0xB3, 0xD2, 0x58, 0x9D, 0xD4, 0xBC, -0x7F, 0x5F, 0x62, 0x76, 0x7E, 0x59, 0x1A, 0x35, 0x37, 0x2F, -0x25, 0x27, 0x43, 0x96, 0xBA, 0xE4, 0x95, 0x86, 0xC2, 0x2A, -0x63, 0x45, 0x4E, 0x41, 0xF1, 0x06, 0xB9, 0x3C, 0x54, 0x1F, -0x1D, 0xA7, 0x8D, 0x4A, 0x4A, 0x4C, 0x7A, 0x21, 0x50, 0x19, -0x9C, 0x99, 0x94, 0x99, 0xB6, 0x61, 0xA5, 0xF9, 0xD5, 0xD5, -0xCB, 0xD6, 0xAC, 0xAB, 0x5F, 0x51, 0xA0, 0x8F, 0x99, 0x1F, -0x11, 0x92, 0xC8, 0x60, 0x72, 0x72, 0x5A, 0x0E, 0x1E, 0x50, -0x65, 0x57, 0x94, 0x6B, 0x0D, 0x4D, 0x0D, 0x31, 0x05, 0x86, -0xAA, 0x78, 0x94, 0x54, 0xE8, 0xA5, 0x3B, 0xF6, 0xED, 0x51, -0xEF, 0x3E, 0x72, 0x28, 0x50, 0xEE, 0x1F, 0x18, 0x44, 0x91, -0xCF, 0xA3, 0x5A, 0x70, 0x46, 0x4A, 0x7A, 0x6A, 0xF7, 0x67, -0xC7, 0x3C, 0x8E, 0x0F, 0xDD, 0xF0, 0xEE, 0x1E, 0xBA, 0x22, -0xD5, 0xA8, 0x55, 0x01, 0x79, 0xAB, 0x2B, 0xB5, 0xEA, 0x58, -0x8D, 0x46, 0x1D, 0xEA, 0x13, 0xD1, 0x75, 0xF1, 0xBC, 0x6C, -0xEF, 0xE5, 0x3B, 0x5E, 0x3B, 0x0F, 0x1E, 0x90, 0xE8, 0x0A, -0x8B, 0x5F, 0xE4, 0x08, 0xE7, 0x86, 0x53, 0x7E, 0x32, 0x91, -0xC8, 0xDD, 0xBF, 0xE3, 0x54, 0x97, 0x77, 0xF3, 0x7B, 0x87, -0x83, 0x8A, 0x36, 0x98, 0xE4, 0xF6, 0xCC, 0x08, 0x9D, 0x2E, -0x57, 0xF1, 0xAB, 0xB6, 0xD7, 0x65, 0x1C, 0x17, 0x89, 0xC7, -0xD2, 0xAC, 0x74, 0xCF, 0xC2, 0xA2, 0x62, 0xA9, 0xAF, 0x3C, -0x60, 0x4E, 0x6A, 0x46, 0xA6, 0x74, 0x7E, 0x78, 0x94, 0x07, -0x35, 0xC7, 0xDE, 0xDC, 0x03, 0xFC, 0xFC, 0xC5, 0xCB, 0x73, -0x0B, 0x5D, 0x29, 0x5D, 0x62, 0x27, 0x53, 0x28, 0xC2, 0xA4, -0x76, 0xB9, 0x7D, 0xEB, 0xD6, 0x39, 0x54, 0xA9, 0x96, 0x80, -0x2B, 0xF5, 0xA4, 0xFA, 0x73, 0x9B, 0xDF, 0x68, 0x77, 0xAB, -0x31, 0x1A, 0x7D, 0x95, 0xD1, 0xB1, 0x5C, 0x7B, 0xB9, 0x26, -0x55, 0x8B, 0x42, 0xA6, 0x1A, 0x7F, 0xD9, 0xCE, 0x7E, 0x74, -0x77, 0xE4, 0x09, 0xD8, 0x5C, 0x7B, 0x51, 0xB7, 0xBF, 0x74, -0xCE, 0xEA, 0xE8, 0x38, 0xDB, 0x0C, 0x83, 0x67, 0x03, 0x47, -0x44, 0xB3, 0x98, 0xAB, 0x59, 0x8D, 0xA6, 0x46, 0x96, 0x3D, -0xA2, 0xEB, 0xDB, 0x2C, 0xB6, 0x40, 0xFF, 0x20, 0x1A, 0x5F, -0xE8, 0x44, 0xDA, 0x51, 0x53, 0x59, 0xEE, 0x4C, 0xBD, 0x01, -0xB6, 0x93, 0x9D, 0xEF, 0x13, 0x2F, 0x65, 0x2E, 0x61, 0xBB, -0x7A, 0x29, 0x6D, 0xDA, 0x94, 0xD8, 0xC7, 0x57, 0x7A, 0xCE, -0x3E, 0x7A, 0x76, 0x3E, 0xFF, 0xF6, 0xF8, 0xFF, 0x2F, 0xE0, -0x26, 0xF3, 0x11, 0xDB, 0xE5, 0x3F, 0x00, 0x43, 0xAA, 0x34, -0xCA, 0xD3, 0x4A, 0x6B, 0x34, 0x00, 0x00, 0x00, 0x00, 0x49, -0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Pause2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x06, 0x2B, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0x94, 0x95, 0x59, 0x6C, 0x5C, 0x67, 0x19, -0x86, 0x9F, 0xB3, 0xCC, 0xD9, 0x66, 0xF3, 0x8C, 0xC7, 0xF1, -0x1A, 0x3B, 0x5E, 0x43, 0xB3, 0x48, 0x4D, 0xE2, 0xB4, 0xD0, -0x26, 0x45, 0x50, 0x1C, 0x91, 0x46, 0x21, 0x95, 0x10, 0x55, -0x03, 0xC1, 0xA5, 0x51, 0x83, 0xD4, 0x8B, 0x80, 0xA0, 0x50, -0x16, 0x95, 0x0B, 0x90, 0x10, 0x12, 0x5C, 0x56, 0xC0, 0x05, -0x6D, 0x5A, 0x7A, 0x51, 0xC2, 0xA2, 0x10, 0xE2, 0xA8, 0x45, -0x89, 0x0A, 0x4D, 0xC8, 0x0D, 0x89, 0x83, 0xB3, 0x91, 0xC5, -0x4E, 0xEC, 0x38, 0xCE, 0x78, 0x3C, 0xF6, 0x78, 0xD6, 0x73, -0xCE, 0x6C, 0xE7, 0xCC, 0xCF, 0x45, 0x16, 0xB5, 0x02, 0x4A, -0x78, 0xAF, 0xFE, 0x9B, 0xEF, 0x79, 0x2F, 0xBE, 0xEF, 0x7F, -0x5F, 0x89, 0x8F, 0x56, 0xA0, 0x7F, 0xED, 0xAA, 0x9D, 0xA3, -0xA3, 0x7B, 0xD7, 0x77, 0xB7, 0x77, 0x3D, 0x19, 0x09, 0x47, -0x1E, 0x16, 0x12, 0xBE, 0x5D, 0x2C, 0x9E, 0x3D, 0x7F, 0xE9, -0xEC, 0xFB, 0x6F, 0x1C, 0x78, 0xEB, 0x5C, 0x3E, 0x53, 0x3A, -0xCA, 0xFF, 0xAB, 0xA6, 0xAE, 0x96, 0xF8, 0xB7, 0xBF, 0xF7, -0xF5, 0xB1, 0x54, 0xEA, 0xB6, 0xF8, 0x5F, 0x9A, 0xBE, 0x79, -0x5D, 0x3C, 0xB7, 0x6F, 0xF7, 0x41, 0x40, 0x7B, 0x30, 0x7A, -0x80, 0xD1, 0x9C, 0x5D, 0xB8, 0x0F, 0x68, 0x08, 0x4F, 0x94, -0x5D, 0x47, 0xD8, 0x65, 0x57, 0x94, 0x1D, 0x57, 0xD8, 0x65, -0x57, 0x54, 0xAA, 0x8E, 0x28, 0x57, 0xAA, 0x1F, 0x32, 0x9A, -0x9C, 0x9D, 0x12, 0xC0, 0xE7, 0x3E, 0x92, 0xDD, 0x3B, 0xD4, -0xF7, 0xF3, 0x7B, 0x03, 0x79, 0xA7, 0x24, 0xB2, 0x85, 0x65, -0x51, 0x2A, 0x14, 0x85, 0x6D, 0xDB, 0xA2, 0x58, 0x2E, 0x09, -0xDB, 0x71, 0x84, 0xED, 0x3A, 0xC2, 0x71, 0x1D, 0x51, 0x72, -0x4A, 0xC2, 0xB6, 0x8B, 0xA2, 0x58, 0xCA, 0x8B, 0x72, 0xAD, -0x7C, 0xDF, 0x48, 0x0F, 0x6B, 0x2F, 0x7F, 0x90, 0x29, 0xDD, -0x7B, 0xF4, 0xAD, 0xEB, 0xFD, 0xFE, 0x8D, 0x8B, 0xD3, 0x3F, -0x06, 0x98, 0x4B, 0xCF, 0x61, 0x98, 0x61, 0x2A, 0x55, 0x13, -0x8A, 0x3A, 0x9E, 0x0F, 0x7E, 0x15, 0xF4, 0x60, 0x15, 0x2B, -0xE6, 0x50, 0xB3, 0x83, 0x38, 0x35, 0x9D, 0x40, 0x00, 0x54, -0x1F, 0x84, 0x5E, 0x43, 0x0D, 0xE4, 0x68, 0x6B, 0x69, 0x05, -0x40, 0x0B, 0x4A, 0x5F, 0xAC, 0xBB, 0xFC, 0x06, 0x40, 0xBE, -0xCB, 0xEF, 0xBF, 0x07, 0x9F, 0x9A, 0x9A, 0x42, 0x57, 0x55, -0x84, 0x5F, 0x26, 0xBD, 0xA0, 0x53, 0xE8, 0x07, 0x7F, 0x08, -0x66, 0xD6, 0x83, 0xB3, 0xA0, 0xE3, 0xFB, 0x75, 0x66, 0xA6, -0x75, 0xFE, 0xA8, 0x42, 0xA6, 0x1B, 0x8E, 0xE4, 0xAB, 0xB8, -0x8B, 0x1A, 0x8A, 0x0A, 0x73, 0xC9, 0x9B, 0x00, 0xA4, 0xE7, -0x53, 0x6F, 0x03, 0xA1, 0xFB, 0x06, 0xBF, 0x3E, 0x72, 0xE0, -0x38, 0xC0, 0xD5, 0xE4, 0x3F, 0x89, 0x44, 0x34, 0x5C, 0xA7, -0x8A, 0x63, 0x57, 0xF1, 0x0A, 0x10, 0x01, 0x06, 0x80, 0x11, -0x20, 0x9B, 0x83, 0x6C, 0xC5, 0xA5, 0xA9, 0x1B, 0x96, 0xE6, -0x3C, 0x36, 0x01, 0x2F, 0x6E, 0xD0, 0x59, 0x4A, 0x41, 0xD9, -0x76, 0x69, 0xC8, 0x30, 0x73, 0x6B, 0x92, 0x58, 0xB4, 0x8D, -0x1F, 0xFD, 0xEC, 0x95, 0x77, 0xEE, 0x18, 0x0C, 0x05, 0xDA, -0x47, 0x77, 0x3E, 0xDF, 0x5B, 0x6B, 0x64, 0x31, 0x7C, 0x1D, -0xA7, 0x56, 0x03, 0xA9, 0x4C, 0xAD, 0x56, 0xE3, 0xD6, 0x19, -0x98, 0xF2, 0x60, 0xDA, 0x85, 0x53, 0x75, 0x78, 0x7A, 0xF7, -0x6F, 0x79, 0xEB, 0xF5, 0x5F, 0xFE, 0x65, 0xE7, 0xDA, 0xA3, -0x54, 0x0A, 0x0E, 0x29, 0xE0, 0x4A, 0x0E, 0x92, 0x2E, 0x14, -0x24, 0x1F, 0x47, 0x80, 0x5D, 0xF1, 0x28, 0x65, 0x8A, 0xEC, -0xDF, 0xF3, 0xF2, 0xD6, 0x50, 0x34, 0x10, 0x53, 0xBF, 0xFC, -0xAD, 0xD1, 0x51, 0x00, 0x47, 0x5E, 0x64, 0x65, 0xA7, 0x41, -0xCD, 0xF5, 0xC9, 0xE6, 0xC1, 0xAD, 0x16, 0x31, 0x87, 0xE0, -0xEC, 0x0D, 0x68, 0x24, 0xE0, 0x72, 0x1A, 0xCC, 0x40, 0x90, -0x9E, 0x78, 0xF7, 0x7C, 0x2C, 0x64, 0x51, 0x2D, 0x39, 0x9C, -0xCE, 0x46, 0x59, 0xB6, 0xA1, 0x7A, 0x08, 0x64, 0xEB, 0x3A, -0x46, 0xA5, 0x01, 0x01, 0x8B, 0xDB, 0xD1, 0x1C, 0x0F, 0x6D, -0x7D, 0x9C, 0xE7, 0xF7, 0xEC, 0xF9, 0x92, 0x3A, 0xD2, 0xFA, -0xE8, 0x00, 0x40, 0x2C, 0xEB, 0x83, 0x24, 0x30, 0x3D, 0x85, -0x4E, 0x23, 0x4E, 0xA7, 0xD1, 0xCA, 0x1A, 0x07, 0xFE, 0xBC, -0x08, 0xA6, 0x01, 0xD7, 0x96, 0x60, 0xD7, 0x86, 0x0D, 0x24, -0xDA, 0xDD, 0xC8, 0xC7, 0x37, 0xAD, 0x26, 0x6B, 0x7B, 0x1C, -0x9F, 0x87, 0x5C, 0x01, 0x92, 0x67, 0xC6, 0xB1, 0x5F, 0x9C, -0x27, 0xB3, 0x31, 0x86, 0xD3, 0x2A, 0x50, 0xF0, 0xE9, 0xE4, -0x14, 0x03, 0xCF, 0x3E, 0xDA, 0xA3, 0xB6, 0x87, 0x57, 0x8C, -0x80, 0x83, 0xE3, 0x68, 0x48, 0xB2, 0x8E, 0x25, 0x2B, 0x64, -0x8B, 0x79, 0x82, 0x05, 0x8D, 0xF4, 0x4B, 0x51, 0xC2, 0xBF, -0x50, 0x58, 0xAE, 0x41, 0x5A, 0x82, 0x42, 0xFE, 0x14, 0xAF, -0x7E, 0xE1, 0xD9, 0x5D, 0x8F, 0xB5, 0x9C, 0x14, 0x9D, 0xBB, -0x57, 0x73, 0x71, 0x11, 0x5C, 0x17, 0xC6, 0x27, 0x87, 0x49, -0x94, 0x1B, 0x98, 0x76, 0x89, 0xC4, 0x0D, 0x9B, 0xB6, 0x85, -0x2A, 0xAB, 0xCC, 0x02, 0xE9, 0xCB, 0x85, 0xCF, 0xA8, 0xF5, -0xAA, 0x12, 0x9A, 0x2A, 0x14, 0x59, 0x12, 0x65, 0xF4, 0xBC, -0x47, 0x66, 0x21, 0x4F, 0xD6, 0x4E, 0xD3, 0x11, 0x59, 0xC5, -0x9B, 0x7E, 0x83, 0xD4, 0x65, 0x98, 0x35, 0x15, 0xAE, 0x4E, -0xC1, 0x93, 0x77, 0x4F, 0x2E, 0x1F, 0x4C, 0xB2, 0x32, 0xD5, -0xC9, 0xC9, 0x85, 0x15, 0xE0, 0x78, 0xBC, 0xF0, 0xBE, 0xCA, -0xE6, 0xCF, 0x2E, 0xD3, 0x10, 0x75, 0x34, 0xBB, 0x4E, 0xA3, -0xE2, 0xE3, 0x87, 0x3D, 0x9C, 0xA2, 0x58, 0xAD, 0xC6, 0x2C, -0xA5, 0x38, 0xE8, 0xB7, 0x37, 0x0F, 0x8E, 0x47, 0xA1, 0x6E, -0x41, 0x08, 0xCA, 0x31, 0x98, 0x32, 0xF2, 0x44, 0xD7, 0x06, -0x78, 0xF3, 0x4F, 0x97, 0x61, 0xCB, 0x1A, 0xA8, 0x81, 0x21, -0x37, 0xF3, 0xC3, 0x57, 0xBE, 0xF3, 0xC8, 0xF8, 0xEB, 0xEB, -0x31, 0x4C, 0x19, 0x04, 0xE0, 0x29, 0xAC, 0x11, 0x10, 0x8E, -0x6F, 0x21, 0xAB, 0x97, 0x58, 0x08, 0xB9, 0x94, 0x4C, 0x07, -0x6D, 0x85, 0x45, 0x3D, 0x5A, 0xB8, 0xAC, 0xAA, 0xE3, 0x99, -0xF7, 0x10, 0xBC, 0x90, 0x56, 0xA7, 0x99, 0x89, 0x15, 0xB9, -0x59, 0x4F, 0xB2, 0xBC, 0x9C, 0xC2, 0xF5, 0xEA, 0x5C, 0x95, -0xBF, 0x42, 0x68, 0xA0, 0x1D, 0x3B, 0x0C, 0x28, 0xD0, 0x17, -0xDE, 0xC0, 0xB6, 0xA7, 0xC2, 0xAF, 0x56, 0x92, 0x61, 0xE6, -0x0D, 0x0D, 0x2A, 0x40, 0xA7, 0xC4, 0xB9, 0x03, 0xF0, 0xCC, -0x13, 0x79, 0xCC, 0x48, 0x94, 0x98, 0xD3, 0x20, 0xEF, 0xE5, -0x31, 0xE5, 0x06, 0x37, 0xAE, 0x2D, 0x1E, 0x57, 0x0F, 0xCD, -0x9D, 0xBC, 0x9A, 0xD9, 0xD1, 0xC9, 0x78, 0x61, 0x82, 0x60, -0x5E, 0x27, 0x84, 0x46, 0x58, 0xED, 0xA6, 0x25, 0x0A, 0xDA, -0x7B, 0x36, 0x91, 0x6F, 0x74, 0x60, 0xDF, 0xFD, 0x8E, 0x33, -0x17, 0xA7, 0x99, 0xBC, 0x78, 0xE1, 0xFC, 0xB1, 0x23, 0xB9, -0xCD, 0xBD, 0x9B, 0xD6, 0xDE, 0x49, 0x01, 0x1B, 0x2E, 0xE4, -0x32, 0x7C, 0x2A, 0x7F, 0x1A, 0xA9, 0xA2, 0xE2, 0x35, 0xB7, -0x53, 0x4B, 0x24, 0x08, 0xC7, 0x5B, 0x29, 0x5D, 0x99, 0x9D, -0x95, 0xFF, 0x76, 0x2D, 0xF9, 0x36, 0x85, 0x2A, 0x6B, 0xF5, -0x01, 0x56, 0x4A, 0x6D, 0xB4, 0x18, 0xDD, 0x84, 0xCC, 0x32, -0x52, 0x7A, 0x9E, 0x39, 0xE2, 0x34, 0x85, 0x7C, 0x06, 0x43, -0xD0, 0x64, 0xC2, 0xA9, 0x7C, 0x86, 0x64, 0x29, 0xB9, 0xDD, -0xB5, 0x0D, 0xA9, 0x6C, 0xA9, 0x60, 0x41, 0x40, 0x13, 0x78, -0xDD, 0x3A, 0x4A, 0xA0, 0x81, 0x25, 0x14, 0x9A, 0x92, 0x93, -0xF4, 0xCC, 0xFE, 0x03, 0xF9, 0xD2, 0x04, 0xF3, 0x37, 0x6F, -0x1F, 0x94, 0x4F, 0xBD, 0xFB, 0x6E, 0x6A, 0xF6, 0xEC, 0x95, -0xF3, 0xFD, 0x5D, 0x3D, 0xA0, 0x68, 0xF8, 0x46, 0x09, 0x3D, -0x5B, 0xA2, 0xA8, 0xB7, 0xF1, 0xF0, 0x1A, 0x8D, 0x4F, 0x76, -0x08, 0xB6, 0xF7, 0xC0, 0x70, 0xB8, 0x42, 0x8C, 0xD5, 0xA8, -0xAD, 0x2B, 0xBB, 0x3E, 0xD1, 0x36, 0x44, 0x47, 0xC4, 0x67, -0x7B, 0x1F, 0xEC, 0xEC, 0x97, 0x18, 0xEE, 0x0F, 0xD3, 0x14, -0x89, 0x10, 0xD4, 0x1B, 0x68, 0xCD, 0x2B, 0xE8, 0x6C, 0xED, -0xC6, 0xFF, 0xFB, 0xB9, 0x77, 0xFE, 0x70, 0xE8, 0x70, 0x5E, -0x05, 0x38, 0x7A, 0x78, 0xEC, 0xE9, 0xC7, 0x46, 0xB6, 0xCD, -0xC4, 0xBA, 0x4D, 0xEA, 0xD7, 0x97, 0xC9, 0x98, 0x9D, 0xB4, -0x44, 0x24, 0x5A, 0xA2, 0x3A, 0x9B, 0x7B, 0xA1, 0xEC, 0xFB, -0x74, 0x74, 0x80, 0x39, 0xDC, 0x46, 0xA2, 0x39, 0x41, 0xF3, -0x23, 0x1D, 0x3C, 0xD4, 0x31, 0x4F, 0x36, 0x0C, 0x8A, 0x27, -0x30, 0x3E, 0x26, 0x91, 0x88, 0xB7, 0xA0, 0x54, 0xAA, 0x68, -0xAA, 0x4F, 0x20, 0x20, 0xF3, 0xDC, 0x57, 0xF7, 0x7F, 0x9E, -0x3B, 0xAB, 0x83, 0xC9, 0x1B, 0x37, 0xF3, 0xA6, 0x65, 0xE4, -0x76, 0x3C, 0xBE, 0x69, 0xFB, 0x82, 0x6D, 0x60, 0x86, 0x54, -0x12, 0xA6, 0x86, 0x17, 0x30, 0x98, 0x3E, 0x1C, 0x86, 0x49, -0x19, 0xFB, 0x77, 0x2A, 0x9B, 0x76, 0x2F, 0xD1, 0xDF, 0xEF, -0x11, 0x1E, 0x30, 0x30, 0xA7, 0xDB, 0x30, 0x2E, 0xC0, 0x46, -0x4B, 0x62, 0xD5, 0x40, 0x91, 0x78, 0xCC, 0xC3, 0x0A, 0x04, -0x69, 0xEF, 0xE8, 0x62, 0x62, 0x62, 0x62, 0xC7, 0xC1, 0x83, -0xBF, 0xBF, 0xF2, 0xA1, 0xB8, 0x06, 0x78, 0xED, 0x57, 0xAF, -0xFD, 0x64, 0xE4, 0x99, 0x1D, 0xDF, 0x2D, 0xCC, 0x25, 0x99, -0x2F, 0x57, 0xB1, 0x64, 0x99, 0xA0, 0x65, 0xA2, 0x4A, 0x0A, -0x7E, 0xD5, 0x23, 0x60, 0x1A, 0x58, 0x8A, 0x86, 0x6F, 0x04, -0xD0, 0x34, 0x1D, 0xB5, 0xE6, 0x23, 0x49, 0x02, 0x45, 0x01, -0x45, 0xD5, 0x49, 0xC4, 0x9B, 0x39, 0x37, 0x31, 0xB1, 0x77, -0xC3, 0xC6, 0x8D, 0x6F, 0xFC, 0x5B, 0x1F, 0xDC, 0xD3, 0xB1, -0x63, 0x63, 0xBB, 0x36, 0x8F, 0x3C, 0x75, 0xB8, 0x98, 0xCF, -0x52, 0xA9, 0xB9, 0x54, 0xEB, 0x0D, 0x02, 0x5E, 0x83, 0x88, -0xA4, 0xA2, 0x04, 0x4D, 0x02, 0xB2, 0x7C, 0x27, 0x84, 0x55, -0x19, 0x5D, 0x0E, 0x10, 0x0C, 0x5A, 0x1F, 0x1C, 0xFF, 0xB4, -0x24, 0x49, 0x7F, 0x7D, 0xA0, 0xE6, 0x14, 0x42, 0xFC, 0x34, -0x53, 0x58, 0x2E, 0x17, 0x1B, 0x35, 0x91, 0x5A, 0xCA, 0x88, -0x5C, 0x2E, 0x2B, 0x0A, 0x85, 0x82, 0x28, 0x3A, 0x45, 0xE1, -0x94, 0x6D, 0xE1, 0x37, 0xEE, 0x34, 0x58, 0xA9, 0x54, 0xCA, -0x0A, 0x21, 0x7E, 0xF0, 0x20, 0x4C, 0xA9, 0xAB, 0xAB, 0x2B, -0xD2, 0xD4, 0xD4, 0xD4, 0x16, 0x8B, 0xC5, 0x9B, 0x77, 0x6C, -0xDF, 0xD6, 0xF6, 0xD2, 0xD7, 0xBE, 0xB9, 0x37, 0xB3, 0x98, -0xF9, 0xAF, 0xCD, 0x7F, 0xFA, 0xCC, 0x99, 0xF1, 0x7D, 0xFB, -0xF6, 0xED, 0x5F, 0xB7, 0x6E, 0x5D, 0x1F, 0xD0, 0x03, 0x0C, -0x01, 0xC6, 0x7F, 0xAC, 0x4C, 0x80, 0xE1, 0xE1, 0xE1, 0x50, -0x24, 0x12, 0x51, 0x06, 0x07, 0x07, 0x57, 0x5C, 0xB8, 0x70, -0x29, 0x1E, 0x0A, 0x5B, 0xEE, 0xD6, 0x2D, 0x4F, 0x44, 0xFA, -0xFA, 0xBA, 0x9B, 0x15, 0x59, 0x8B, 0x68, 0x86, 0xA1, 0xEB, -0x86, 0x6E, 0xCA, 0xC0, 0x42, 0x3A, 0x9D, 0x9A, 0xBB, 0x75, -0x2B, 0xE3, 0xBA, 0x6E, 0x68, 0x6C, 0x6C, 0xAC, 0x14, 0x0C, -0x06, 0xE7, 0x2D, 0xCB, 0xCA, 0x9E, 0x38, 0x71, 0xA2, 0x08, -0x78, 0xF7, 0x98, 0xFF, 0x1A, 0x00, 0x12, 0x76, 0x28, 0x70, -0x52, 0x4A, 0xD5, 0x77, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, -0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Play2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x06, 0xF5, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0x7D, 0x56, 0x0B, 0x50, 0x54, 0xD7, 0x19, -0xFE, 0xEE, 0xDD, 0xBB, 0x7B, 0xF7, 0x7D, 0xF7, 0xFD, 0x80, -0x65, 0x97, 0x5D, 0xC0, 0xC0, 0x2A, 0x22, 0xC2, 0x0A, 0x0A, -0x11, 0xAB, 0x06, 0x1A, 0xA1, 0xC4, 0x36, 0x36, 0xA1, 0x9A, -0x60, 0x02, 0xD6, 0x88, 0x01, 0x27, 0xA3, 0x53, 0xDB, 0x4C, -0x4C, 0x22, 0xD4, 0xA6, 0x1D, 0x6C, 0x62, 0x99, 0xA8, 0x10, -0x51, 0x62, 0x90, 0xC6, 0x19, 0xEC, 0x80, 0xC1, 0x98, 0x10, -0xC4, 0xA6, 0x38, 0xD8, 0x14, 0x2C, 0x19, 0x2A, 0x02, 0x26, -0x8C, 0x88, 0xA0, 0xBC, 0xC1, 0x05, 0x16, 0xDC, 0x17, 0xBB, -0xBD, 0x8B, 0xD3, 0xCC, 0x84, 0x32, 0xFE, 0x33, 0xE7, 0xDC, -0xF3, 0xF8, 0xFF, 0xEF, 0x3F, 0xFF, 0xF9, 0x1F, 0xE7, 0x02, -0x4F, 0xA0, 0xAD, 0xBF, 0x4C, 0x33, 0xBF, 0xBC, 0x6B, 0xFB, -0xCE, 0xBD, 0xF9, 0x7B, 0xCF, 0x7E, 0x54, 0x5E, 0x76, 0xBF, -0xF2, 0xD3, 0x4F, 0xA6, 0xCB, 0xCA, 0x4F, 0x3E, 0xD8, 0x5B, -0xF0, 0xFA, 0xC9, 0x9C, 0xD7, 0x76, 0x66, 0x8B, 0x15, 0xA2, -0xD0, 0x27, 0xC9, 0x07, 0x88, 0x5A, 0x72, 0x95, 0x43, 0xC6, -0xD4, 0xD4, 0x56, 0xD7, 0x24, 0x27, 0x26, 0x5B, 0xD4, 0x6A, -0xED, 0xE2, 0x5D, 0x09, 0xDB, 0xF2, 0x02, 0xAD, 0xFC, 0xC4, -0x19, 0x7C, 0x50, 0xFA, 0x41, 0xF7, 0x6F, 0x0A, 0x0E, 0xA6, -0xB3, 0xF3, 0xBB, 0x4B, 0x41, 0x11, 0x8B, 0x17, 0xDE, 0xF8, -0xD3, 0x9B, 0x1F, 0x1F, 0xF8, 0x55, 0xDE, 0x2B, 0x06, 0x63, -0xC8, 0xC2, 0xDC, 0xE9, 0x9C, 0x83, 0xC7, 0x0F, 0x70, 0x39, -0x04, 0x08, 0x1F, 0x09, 0x2F, 0xE9, 0x07, 0x67, 0xDE, 0x07, -0x5A, 0x20, 0x60, 0x85, 0x1F, 0x8B, 0xCF, 0xCE, 0xCD, 0xC1, -0xB6, 0x21, 0xF6, 0xF7, 0xDD, 0x37, 0xBE, 0x7F, 0xE7, 0x89, -0x0A, 0x72, 0xF6, 0xEE, 0xBA, 0x74, 0xE6, 0x44, 0x79, 0x46, -0x60, 0x3C, 0x3C, 0x35, 0x0A, 0x1D, 0xA3, 0x79, 0xBC, 0xE1, -0xF6, 0x63, 0xDC, 0x33, 0x05, 0x21, 0xC1, 0x85, 0x8F, 0xC3, -0x01, 0xC9, 0x2A, 0xF0, 0xFB, 0xE7, 0x01, 0x3F, 0x2B, 0x4E, -0x11, 0x10, 0xF1, 0x45, 0x0B, 0x6C, 0xB1, 0x6B, 0x56, 0x56, -0xB4, 0xDF, 0xE8, 0xC8, 0x5D, 0x52, 0xC1, 0xB3, 0x3F, 0xDB, -0x78, 0xEE, 0x8B, 0xBA, 0xAB, 0x2F, 0x39, 0x5C, 0x76, 0xD8, -0xA7, 0x9C, 0x30, 0xA8, 0x74, 0xA8, 0xF8, 0xA6, 0x02, 0x0E, -0x8F, 0x1D, 0xAF, 0x25, 0x14, 0x80, 0xE6, 0x71, 0xE1, 0x71, -0x7A, 0x30, 0xE5, 0x79, 0x08, 0x0E, 0x45, 0xC1, 0xC7, 0x82, -0x73, 0x59, 0xF1, 0x79, 0x82, 0x80, 0xFB, 0xD1, 0x1C, 0xB4, -0x6A, 0xFD, 0x02, 0x4E, 0x74, 0x7C, 0xD8, 0xB1, 0x5B, 0x6D, -0xBD, 0xFB, 0x7F, 0xA4, 0xC0, 0xBA, 0x26, 0x2A, 0xA6, 0xB3, -0xA5, 0xAB, 0xDD, 0xEF, 0x76, 0xE1, 0xEE, 0xF0, 0x20, 0x84, -0x12, 0x1A, 0x52, 0x97, 0x02, 0x95, 0xCD, 0x95, 0x68, 0x10, -0x7D, 0x0E, 0x86, 0x51, 0xC0, 0x3F, 0xEB, 0x47, 0x91, 0xA9, -0x08, 0x46, 0x85, 0x09, 0x6E, 0xCA, 0x8F, 0x19, 0xFF, 0x43, -0x4C, 0xB9, 0x58, 0xAB, 0x28, 0x3E, 0xB8, 0x24, 0x17, 0x8E, -0xD9, 0x39, 0x98, 0x42, 0x8C, 0x8F, 0x41, 0x09, 0xC2, 0xC4, -0x7E, 0xFA, 0x17, 0xDC, 0x19, 0xE8, 0x2E, 0x5D, 0xBE, 0xD8, -0x61, 0xD0, 0x19, 0x45, 0x3D, 0x63, 0xB7, 0x21, 0x21, 0x05, -0x98, 0xF7, 0x10, 0x18, 0x71, 0xDF, 0x07, 0xF9, 0x1D, 0x8D, -0x5B, 0xFC, 0xDB, 0x38, 0xB7, 0xB9, 0x12, 0x12, 0xA5, 0x14, -0x45, 0x3D, 0x87, 0x71, 0xBE, 0xF7, 0x02, 0x98, 0x29, 0x2E, -0x22, 0x85, 0x2B, 0xA0, 0x66, 0x54, 0x98, 0x70, 0x4F, 0xC0, -0x31, 0x33, 0x05, 0x8A, 0x24, 0x31, 0x3A, 0x39, 0x02, 0xA5, -0x5C, 0x05, 0x8A, 0xCF, 0xF9, 0xC5, 0xD7, 0x57, 0xBF, 0xFE, -0x4B, 0x00, 0x9B, 0xC4, 0x7A, 0x51, 0x78, 0x42, 0x4C, 0x92, -0xDA, 0x31, 0x37, 0x02, 0xEE, 0x2C, 0x0F, 0x33, 0x5E, 0x17, -0xFC, 0x98, 0x03, 0xC5, 0x11, 0x40, 0x23, 0x97, 0x63, 0xA2, -0xD3, 0x8E, 0x06, 0x7C, 0x85, 0x4D, 0xB2, 0x4D, 0xA8, 0xDD, -0xF0, 0x19, 0x0A, 0xD3, 0x0E, 0xA1, 0x91, 0x6E, 0x42, 0xDE, -0x37, 0xBB, 0xF1, 0xE7, 0xC6, 0xF7, 0xC1, 0x1F, 0xA6, 0x11, -0x26, 0x8C, 0x82, 0x8B, 0x4F, 0xC2, 0x31, 0xEF, 0xC1, 0xD8, -0xE0, 0x28, 0x0E, 0x1D, 0x7C, 0xDB, 0x64, 0x08, 0x0E, 0x8A, -0x5D, 0x50, 0xB0, 0x2D, 0x2D, 0x6B, 0x4B, 0x60, 0xE0, 0x15, -0x0E, 0xC3, 0x68, 0xA1, 0xA1, 0x93, 0x90, 0x70, 0x7B, 0xBD, -0xF0, 0xCE, 0xDA, 0x21, 0x5B, 0x2F, 0x47, 0x50, 0xB5, 0xB0, -0x3D, 0xBF, 0xAE, 0x60, 0xC6, 0x85, 0x59, 0xD4, 0xFA, 0x6A, -0x61, 0xE1, 0x86, 0xA3, 0x64, 0x4D, 0x09, 0xDE, 0x7C, 0xE1, -0x6D, 0x50, 0x56, 0x02, 0x3B, 0xBA, 0xB2, 0x71, 0xB0, 0xE1, -0x77, 0xF0, 0xB5, 0xDA, 0x11, 0x3E, 0xCC, 0x60, 0xBA, 0x7F, -0x20, 0x70, 0x6C, 0x6C, 0x49, 0x4D, 0x29, 0x08, 0xE0, 0x52, -0xA9, 0xD6, 0x95, 0x4F, 0x07, 0x06, 0x32, 0x3B, 0x9B, 0x12, -0x7E, 0x1F, 0xC4, 0x6C, 0x70, 0x88, 0xF9, 0x32, 0x40, 0xB3, -0x0C, 0xF7, 0xFA, 0xDB, 0xDD, 0x6E, 0x8A, 0xFE, 0x87, 0xEB, -0x53, 0xAF, 0xFF, 0xFD, 0xCC, 0xE2, 0x58, 0x15, 0xA1, 0xC3, -0x71, 0x94, 0x40, 0x09, 0x15, 0x74, 0xD0, 0x20, 0x79, 0xD9, -0x3A, 0x64, 0x2E, 0xCB, 0x44, 0xF7, 0xC8, 0x6D, 0xFC, 0xF1, -0xCB, 0x77, 0x61, 0x9F, 0xD6, 0x40, 0xB3, 0x3E, 0x03, 0xEB, -0x58, 0x8E, 0xD4, 0xBC, 0xEC, 0xC4, 0x53, 0x1F, 0x9F, 0x07, -0xD1, 0x70, 0xA5, 0x76, 0xE0, 0x99, 0xCD, 0xCF, 0x18, 0xA6, -0xFB, 0x06, 0xC1, 0xE3, 0x31, 0xE0, 0x83, 0x86, 0xDD, 0x3E, -0x0A, 0x66, 0x46, 0x82, 0xFE, 0xC9, 0x3B, 0x1D, 0xA7, 0x6F, -0xB6, 0xB4, 0xD6, 0xBF, 0x53, 0xC5, 0x65, 0xEE, 0x29, 0xB6, -0xC7, 0xEB, 0xA2, 0xA9, 0x3E, 0xD6, 0x77, 0x6E, 0x78, 0xE0, -0x5B, 0xB8, 0x5F, 0x92, 0xE5, 0xE7, 0xC2, 0x8C, 0x70, 0xD8, -0x10, 0x8F, 0xBE, 0xF1, 0xEF, 0xD1, 0xD2, 0xD1, 0x01, 0x27, -0xDF, 0x84, 0x97, 0x34, 0x36, 0x6C, 0x0B, 0x7F, 0x9E, 0x20, -0x2E, 0x7E, 0x55, 0x3F, 0x13, 0xB1, 0x7E, 0x95, 0xF8, 0xC1, -0xD8, 0x03, 0x08, 0xA6, 0x78, 0xB8, 0xDB, 0x7F, 0x07, 0xF3, -0xB3, 0x2E, 0x44, 0x69, 0x43, 0xD1, 0x3F, 0x35, 0xD6, 0xC1, -0xF5, 0x7B, 0x5B, 0x47, 0x4E, 0xDC, 0x9F, 0x7E, 0xEB, 0xC5, -0xA2, 0xB5, 0x13, 0x39, 0xA3, 0x89, 0x8B, 0x13, 0x89, 0xFC, -0x5F, 0x38, 0x7A, 0x81, 0x04, 0x6A, 0x0D, 0xA2, 0x59, 0xDB, -0x46, 0x2E, 0x77, 0x22, 0x2A, 0x7A, 0x1B, 0xAE, 0x1D, 0x69, -0x5E, 0xC1, 0xD9, 0x93, 0xFB, 0xF3, 0x7C, 0x9B, 0xDA, 0x26, -0x09, 0x6B, 0x50, 0xC2, 0x38, 0xAA, 0x47, 0x8C, 0x38, 0x12, -0x06, 0x65, 0x04, 0x5C, 0x2A, 0x01, 0xEE, 0xF4, 0x5F, 0x9F, -0x76, 0xDD, 0x75, 0x76, 0x0C, 0x10, 0xE3, 0x21, 0xDD, 0xFB, -0xDA, 0x52, 0x97, 0xD3, 0x56, 0x04, 0x43, 0x8F, 0x30, 0x84, -0x22, 0x8A, 0xED, 0x23, 0xFD, 0x91, 0x88, 0x7E, 0x14, 0x8D, -0x8D, 0xDC, 0x4D, 0x78, 0x96, 0xB4, 0xC1, 0x3C, 0x24, 0x87, -0xBF, 0xD9, 0x00, 0xFE, 0xA3, 0x6C, 0x6C, 0x59, 0x9B, 0xF7, -0xE8, 0xBD, 0xCC, 0xDD, 0x6F, 0x90, 0xFA, 0x5E, 0x5C, 0x47, -0x0B, 0x30, 0x20, 0xED, 0x41, 0x63, 0x50, 0x23, 0x2A, 0x7C, -0x9F, 0xA0, 0x6A, 0xA8, 0x04, 0x97, 0x3A, 0xCF, 0x21, 0x28, -0xC6, 0x18, 0xF1, 0x6D, 0xF5, 0x35, 0xAA, 0x7B, 0x75, 0xD7, -0xF2, 0x97, 0xA5, 0xD9, 0x48, 0x72, 0x27, 0x63, 0x3D, 0x52, -0x90, 0x84, 0xA7, 0x91, 0x34, 0xBF, 0x01, 0x99, 0xC4, 0x56, -0xE4, 0x08, 0xB3, 0xB0, 0xFA, 0xDE, 0x32, 0xC8, 0x3F, 0xFB, -0x29, 0xA4, 0x35, 0x07, 0xA0, 0x1A, 0xCF, 0xC5, 0xF2, 0xE4, -0x44, 0xFC, 0xA7, 0xBE, 0xFA, 0xDE, 0x82, 0x65, 0xB9, 0xB9, -0x2F, 0xEE, 0x79, 0xBE, 0x28, 0xBF, 0xF4, 0x7A, 0x4B, 0x13, -0xEB, 0x3A, 0x09, 0x24, 0xF3, 0x22, 0xD0, 0xD2, 0x60, 0x88, -0xE9, 0x39, 0x38, 0x86, 0x1C, 0xB8, 0x72, 0xF9, 0xBA, 0x77, -0xD3, 0xA9, 0x78, 0x8A, 0x27, 0x10, 0xC2, 0x09, 0x17, 0x44, -0x2C, 0x8F, 0x9E, 0xBD, 0x06, 0x2E, 0x84, 0x18, 0xBE, 0xDD, -0x87, 0x1B, 0x97, 0x7B, 0x21, 0xE8, 0x93, 0x41, 0x16, 0xA2, -0x81, 0x20, 0xD1, 0x08, 0xB7, 0x55, 0x0B, 0x9E, 0x4A, 0x85, -0xF1, 0xB2, 0xE3, 0xE5, 0xBF, 0xCD, 0x3B, 0xB0, 0x9B, 0x6C, -0x6E, 0xEF, 0xA8, 0x97, 0xDB, 0x69, 0xAC, 0xE2, 0x58, 0x61, -0xE2, 0x18, 0xA1, 0x60, 0x42, 0x21, 0xF6, 0x0F, 0x82, 0x9C, -0x9C, 0x43, 0x5B, 0x77, 0x3F, 0xAC, 0x49, 0x06, 0xCA, 0x26, -0x58, 0x07, 0x23, 0x4C, 0xEC, 0xC9, 0xD7, 0xB1, 0x57, 0x13, -0x89, 0xFB, 0x57, 0x86, 0xD0, 0x72, 0xF8, 0x0B, 0xB4, 0x9E, -0xBA, 0x05, 0x4A, 0x26, 0x81, 0x21, 0x5D, 0x0B, 0xA3, 0x4D, -0x0A, 0xE5, 0x64, 0x37, 0xF4, 0xFF, 0x6C, 0x84, 0xA8, 0xF7, -0x26, 0x86, 0xDB, 0x7A, 0x4A, 0x16, 0x7C, 0xF4, 0x5D, 0x5B, -0x57, 0xDF, 0x50, 0x4F, 0xCF, 0x03, 0x8B, 0xC1, 0x04, 0x17, -0xC9, 0x01, 0x87, 0x3B, 0x04, 0x62, 0x92, 0x80, 0x5D, 0xA2, -0x86, 0x67, 0xB0, 0x17, 0x19, 0x3B, 0xB6, 0x41, 0xCD, 0x86, -0xA4, 0x7F, 0xD2, 0x8F, 0xDA, 0xB2, 0x7A, 0x9C, 0x7D, 0xF5, -0x14, 0x9A, 0xFE, 0x7A, 0x15, 0xBA, 0x95, 0x2A, 0x64, 0xE5, -0x6E, 0x46, 0xEC, 0xEA, 0xA7, 0xA0, 0x14, 0x0B, 0xD8, 0x44, -0x62, 0x6B, 0x94, 0x44, 0x01, 0x4D, 0x58, 0x0C, 0x9C, 0xF5, -0x4D, 0x7D, 0xC7, 0x4E, 0x97, 0x75, 0xFE, 0x10, 0x04, 0x7F, -0x6F, 0xFC, 0x7C, 0x2B, 0x25, 0x11, 0x43, 0xAA, 0x9A, 0x07, -0x3D, 0xEC, 0x81, 0x3B, 0xC4, 0x0C, 0xDF, 0xC0, 0x00, 0x56, -0xFC, 0x24, 0x9E, 0x0D, 0x39, 0x07, 0xCE, 0x7E, 0x78, 0x1A, -0x35, 0xFB, 0x2F, 0x62, 0xE4, 0xE1, 0x2C, 0xE2, 0x9E, 0xDB, -0x80, 0x57, 0xF7, 0xE7, 0x42, 0xAA, 0x36, 0x82, 0x4F, 0xFA, -0x10, 0x24, 0x10, 0x43, 0xC5, 0xC8, 0x60, 0x90, 0x9B, 0xA1, -0xE4, 0x11, 0x10, 0x13, 0x4E, 0x40, 0x6E, 0x88, 0xF9, 0x51, -0x94, 0x1D, 0x3F, 0x7E, 0xFE, 0xDF, 0xAD, 0xFF, 0xBA, 0x52, -0x99, 0x60, 0x0C, 0x85, 0x9D, 0x31, 0x40, 0xCB, 0x03, 0x82, -0x42, 0xF4, 0xE0, 0x71, 0x19, 0x34, 0x7D, 0xD8, 0x8C, 0x08, -0x45, 0x38, 0xB6, 0x64, 0xA7, 0x63, 0xC7, 0x0B, 0xE9, 0x30, -0x45, 0x45, 0xB0, 0xB5, 0x46, 0x08, 0x9D, 0xC0, 0x08, 0x0E, -0xCD, 0x20, 0x58, 0xA6, 0x81, 0x4A, 0xA6, 0x84, 0x48, 0x28, -0x84, 0x56, 0x63, 0x41, 0x68, 0x50, 0xF8, 0xA1, 0x57, 0xB6, -0x67, 0x4D, 0x2F, 0x0E, 0x63, 0xFC, 0x3A, 0x3B, 0x7F, 0xE7, -0xDF, 0xBE, 0xFC, 0xF6, 0xDA, 0xC6, 0x8D, 0x31, 0x6C, 0x89, -0x67, 0x8B, 0xAC, 0x5C, 0x89, 0x08, 0x93, 0x19, 0x19, 0x59, -0xCF, 0x21, 0xC2, 0xB6, 0x12, 0xFA, 0x60, 0x2D, 0x44, 0x1C, -0x31, 0x74, 0x34, 0x6B, 0xA9, 0x42, 0x09, 0x75, 0x88, 0x9A, -0x4D, 0x4C, 0x25, 0x68, 0x4A, 0x00, 0xA9, 0x50, 0x0C, 0xB3, -0x39, 0x14, 0x96, 0xA7, 0x22, 0x8E, 0x49, 0xE5, 0xAA, 0x3F, -0x2C, 0x95, 0x27, 0x0B, 0xB4, 0x67, 0x57, 0x6E, 0x8A, 0xF7, -0xA1, 0xE3, 0xE4, 0x72, 0x5B, 0x0A, 0x0C, 0x1A, 0x2D, 0x34, -0xC1, 0x3A, 0x78, 0x39, 0x6C, 0xAE, 0x52, 0x24, 0xE4, 0x32, -0x05, 0x14, 0x62, 0x06, 0x0A, 0x25, 0x03, 0x39, 0x57, 0x08, -0x89, 0x48, 0x0C, 0x8D, 0x5E, 0x0F, 0x99, 0x52, 0x09, 0x8D, -0x52, 0x03, 0xAE, 0x80, 0x7E, 0x8B, 0x2D, 0xD3, 0xFB, 0xB1, -0x88, 0xC8, 0xC5, 0x0B, 0x41, 0xFA, 0xB0, 0xD7, 0x07, 0x6F, -0x76, 0x69, 0xAC, 0x21, 0xE6, 0x8B, 0x06, 0xAD, 0xC1, 0x29, -0x13, 0x0B, 0x59, 0x27, 0x32, 0x10, 0xB2, 0x4F, 0x24, 0x97, -0xE6, 0x81, 0xC7, 0xD6, 0x7F, 0xB1, 0x90, 0x7D, 0x2F, 0xC4, -0x62, 0xF0, 0x38, 0xE4, 0x18, 0x87, 0xE0, 0xD4, 0x11, 0x8F, -0xE9, 0xBD, 0xC5, 0x58, 0xFF, 0xA7, 0xC0, 0x62, 0xB1, 0xA8, -0x13, 0x6C, 0x09, 0xBA, 0xB4, 0x8C, 0x34, 0x6A, 0x5F, 0xFE, -0xBE, 0xC2, 0xEA, 0x8A, 0x73, 0x47, 0x83, 0x44, 0x32, 0x28, -0x34, 0x1A, 0x30, 0x52, 0x36, 0xD6, 0x25, 0x01, 0x45, 0x6C, -0x9E, 0x70, 0xF9, 0x98, 0x98, 0x98, 0x98, 0x3C, 0x5A, 0x7C, -0xF4, 0xA3, 0xC2, 0xC2, 0xC2, 0x40, 0xDD, 0x37, 0x33, 0x0C, -0x63, 0xD5, 0xE9, 0x74, 0xD2, 0xA5, 0x94, 0xFC, 0x40, 0x71, -0x71, 0x71, 0x12, 0x95, 0x4A, 0xA5, 0x08, 0xB3, 0x58, 0xAC, -0x31, 0x71, 0x71, 0x6B, 0x0B, 0x0F, 0xBF, 0xBB, 0xAA, 0xB4, -0xB4, 0x34, 0xA5, 0xBC, 0xFC, 0xCC, 0xD6, 0xAA, 0xAA, 0xAA, -0x1D, 0x35, 0x35, 0x35, 0x39, 0x75, 0x75, 0x75, 0x7B, 0x2E, -0x5C, 0xB8, 0xB0, 0xF3, 0xC8, 0x91, 0x23, 0x29, 0xC5, 0xC5, -0xC5, 0xE9, 0xA9, 0x2C, 0x09, 0x04, 0x02, 0x2B, 0x9F, 0xCF, -0x0F, 0xFC, 0x7E, 0xD0, 0x8B, 0x31, 0xFF, 0x0B, 0x25, 0x2D, -0x52, 0x75, 0x3C, 0x77, 0xAA, 0x9E, 0x00, 0x00, 0x00, 0x00, -0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Refresh2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x03, 0xDF, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0xB4, 0x54, 0x6D, 0x4C, 0x5B, 0x55, 0x18, -0x7E, 0xCE, 0xB9, 0xB7, 0xB7, 0x2D, 0x6D, 0xB9, 0xED, 0xCA, -0x04, 0x1C, 0x74, 0x8C, 0x82, 0x8C, 0x31, 0x56, 0x46, 0xE6, -0x9C, 0xC9, 0x7E, 0xEC, 0x8F, 0xFE, 0x51, 0x14, 0xD9, 0x8C, -0x31, 0x71, 0xA2, 0x59, 0x82, 0x9B, 0x1F, 0x09, 0x9A, 0x25, -0xFE, 0xF0, 0x97, 0xFE, 0x21, 0xC1, 0x1F, 0x26, 0x4B, 0xFC, -0x4A, 0x70, 0x9A, 0x48, 0x64, 0x28, 0x84, 0x04, 0x84, 0x30, -0xB7, 0x91, 0x6C, 0xD3, 0x2C, 0xCB, 0xB6, 0x3A, 0x1C, 0x1B, -0xE3, 0x63, 0x0C, 0xB8, 0x85, 0x16, 0x5A, 0xBE, 0x5A, 0x5A, -0xA0, 0xA5, 0xF7, 0xF5, 0x87, 0x17, 0x72, 0x35, 0x73, 0x2B, -0x6E, 0x3E, 0xC9, 0x9B, 0x73, 0xF2, 0x9E, 0x37, 0xCF, 0x73, -0x9E, 0xF3, 0xBE, 0x39, 0x8C, 0x88, 0xB0, 0x11, 0x94, 0xEC, -0x2C, 0x16, 0xC7, 0x46, 0xC7, 0x72, 0x9C, 0x0E, 0x87, 0xAB, -0x7C, 0x77, 0xB9, 0x07, 0x00, 0xBF, 0x70, 0xF1, 0x82, 0x12, -0x89, 0xC6, 0x26, 0x9C, 0x4E, 0xE7, 0x80, 0xDF, 0x1F, 0x98, -0xD7, 0xD7, 0x33, 0x6C, 0x0C, 0xE5, 0x00, 0xEA, 0x76, 0x7B, -0x76, 0x6E, 0xD9, 0xF7, 0xE4, 0xDE, 0x9C, 0x1D, 0x45, 0xC5, -0xB3, 0x49, 0x4E, 0x69, 0x93, 0x8A, 0x62, 0xE8, 0xE8, 0xEA, -0x8A, 0xF7, 0x0F, 0xDE, 0x19, 0x02, 0xF0, 0x09, 0x80, 0xB3, -0xF8, 0x0F, 0x78, 0x27, 0xEF, 0xF1, 0xEC, 0xB3, 0x23, 0x7D, -0x37, 0x2E, 0x13, 0xD1, 0x02, 0x11, 0x2D, 0x13, 0x51, 0x82, -0x88, 0x56, 0xB5, 0x35, 0x78, 0xD3, 0x7B, 0x65, 0xC4, 0xCC, -0x71, 0x1E, 0x40, 0xF5, 0x46, 0xC9, 0x73, 0x5F, 0xA8, 0x78, -0xAE, 0x83, 0x88, 0x7E, 0x25, 0xA2, 0xA5, 0xC5, 0x70, 0x78, -0x72, 0x7A, 0x6A, 0xEA, 0x76, 0x70, 0x26, 0x34, 0x10, 0x9C, -0x99, 0x19, 0x08, 0x4E, 0x4D, 0xDF, 0x59, 0x8C, 0x44, 0x43, -0x9A, 0xE8, 0x70, 0x61, 0x6E, 0xF6, 0x19, 0x00, 0x7B, 0x36, -0xF2, 0x44, 0x5F, 0x12, 0x91, 0x1B, 0xC0, 0xD3, 0xD3, 0x93, -0xFE, 0xFE, 0x34, 0x9B, 0x15, 0x5C, 0xE0, 0x50, 0x49, 0x55, -0x39, 0x13, 0x63, 0x44, 0x6A, 0x7C, 0x25, 0x1E, 0xC7, 0x62, -0x64, 0x41, 0x74, 0xB9, 0xF2, 0x8A, 0x00, 0x04, 0x19, 0x63, -0xA3, 0x00, 0xAA, 0x84, 0x14, 0xC8, 0xCD, 0x5D, 0x3F, 0x77, -0x1E, 0x29, 0x7C, 0xA2, 0x70, 0xB3, 0x32, 0xAE, 0x5C, 0x4E, -0xB7, 0xDB, 0x7D, 0xE0, 0x2C, 0x24, 0x30, 0x16, 0x32, 0x8A, -0xC6, 0xA8, 0x68, 0x10, 0x48, 0x94, 0x24, 0x66, 0x14, 0xA5, -0x25, 0xA3, 0x51, 0x9A, 0xF5, 0xFB, 0xFD, 0xA3, 0xB2, 0xDD, -0x2E, 0x64, 0x6E, 0x72, 0x18, 0x3B, 0xBB, 0xBB, 0xCF, 0xA5, -0xE2, 0xE0, 0x70, 0x62, 0x75, 0x65, 0x3F, 0x4B, 0xB2, 0xEE, -0xB9, 0x68, 0x98, 0x9B, 0x25, 0xC9, 0x6C, 0x10, 0x24, 0xE2, -0x06, 0x51, 0x65, 0x1C, 0x49, 0x46, 0x4C, 0xE0, 0x9C, 0xDB, -0x00, 0xE4, 0x02, 0xC8, 0x5C, 0x5C, 0x8A, 0x32, 0xAB, 0xD9, -0x12, 0x58, 0x58, 0x98, 0x2B, 0xB5, 0xDB, 0x37, 0xB5, 0x88, -0x29, 0x08, 0xB8, 0xA2, 0xE1, 0x68, 0x42, 0x76, 0x38, 0x9C, -0x19, 0xA2, 0x23, 0x0B, 0x9C, 0x4B, 0xBA, 0xB3, 0x24, 0x18, -0xE2, 0x00, 0x66, 0x00, 0xF4, 0x26, 0x55, 0x08, 0x16, 0x93, -0xA9, 0x10, 0x80, 0x2C, 0xCB, 0x8E, 0xB1, 0xE2, 0x82, 0x02, -0x53, 0x2A, 0x02, 0xC3, 0xB2, 0xC3, 0x51, 0x02, 0x20, 0x03, -0x9C, 0xCB, 0x5A, 0xDF, 0xC4, 0x75, 0x81, 0xBF, 0xC2, 0x0A, -0x20, 0x9B, 0x33, 0x0A, 0xAA, 0xAA, 0x7A, 0x4B, 0x10, 0x84, -0xE4, 0x84, 0xA2, 0x1C, 0x9A, 0x9D, 0x0F, 0xCF, 0xF3, 0x14, -0x04, 0xDA, 0xEA, 0x3F, 0xAD, 0x2F, 0x01, 0x60, 0x00, 0x90, -0x01, 0x40, 0xD6, 0x22, 0x5D, 0x8B, 0x34, 0x00, 0x46, 0x00, -0x22, 0x63, 0xCC, 0x26, 0x08, 0x86, 0x12, 0x00, 0xBE, 0x86, -0x6F, 0x4F, 0xA6, 0x4F, 0x85, 0xA6, 0x47, 0x52, 0x71, 0x10, -0xBF, 0x7A, 0xC9, 0xDB, 0x03, 0xC0, 0x0D, 0x80, 0x00, 0x38, -0xB5, 0xFC, 0xAA, 0xB6, 0x2E, 0x6B, 0xE2, 0x4C, 0x13, 0xBB, -0x3E, 0x11, 0xF0, 0x6D, 0xEF, 0xEE, 0xFC, 0x25, 0x0B, 0x80, -0x37, 0x15, 0x07, 0xF8, 0xA9, 0xAD, 0xF9, 0xC3, 0xE2, 0xED, -0x45, 0xD5, 0x00, 0x26, 0x00, 0x70, 0x00, 0x16, 0xED, 0xF6, -0x56, 0x00, 0x36, 0x6D, 0x6F, 0x03, 0x30, 0x16, 0x4F, 0x2C, -0x45, 0xDA, 0x9A, 0xDB, 0x1B, 0xA7, 0x67, 0x42, 0x2F, 0x42, -0xF7, 0x96, 0xF7, 0xC5, 0xBE, 0xBD, 0x4F, 0x35, 0x08, 0xA2, -0x08, 0xC6, 0xD8, 0x47, 0x7F, 0x5C, 0xFF, 0xFD, 0x5A, 0xA9, -0xA7, 0x2C, 0x06, 0x20, 0x0C, 0x20, 0xAE, 0x39, 0x98, 0x05, -0x10, 0x6D, 0x3A, 0xD5, 0xB8, 0xBF, 0xB5, 0xB9, 0xFD, 0xE5, -0x1B, 0xBD, 0x37, 0x2B, 0x46, 0xEE, 0x0E, 0x06, 0x00, 0xF0, -0x07, 0x8E, 0xA9, 0x64, 0xE0, 0xED, 0xB5, 0xB5, 0xEF, 0x57, -0x9C, 0x38, 0xF1, 0xF9, 0xB2, 0xC5, 0x22, 0x3F, 0x93, 0xEF, -0xDA, 0xFA, 0xAE, 0x55, 0xB6, 0xBC, 0x52, 0xF9, 0x52, 0x15, -0xDC, 0x85, 0xDB, 0x62, 0x89, 0xC4, 0xCA, 0xF2, 0xD0, 0xE0, -0xB0, 0xF5, 0xEB, 0xAF, 0x1A, 0xA4, 0xEC, 0xCC, 0xCC, 0xE1, -0x58, 0x6C, 0xF9, 0x80, 0xB7, 0xF7, 0xEA, 0x9A, 0x53, 0xF5, -0xBE, 0x02, 0x6F, 0xD7, 0x1C, 0xA3, 0xA1, 0xE1, 0x7E, 0x9C, -0xEB, 0xB9, 0xB8, 0xA8, 0x22, 0x69, 0x5B, 0xCB, 0x97, 0x95, -0x7A, 0xF2, 0x67, 0xE7, 0x23, 0xC7, 0x63, 0xE1, 0x85, 0xAD, -0x44, 0x60, 0x26, 0xAB, 0x35, 0xC2, 0x88, 0x3E, 0xF6, 0xF9, -0xC7, 0x6F, 0x69, 0x25, 0x46, 0x00, 0x2B, 0xFF, 0xFA, 0x55, -0x18, 0x25, 0xC9, 0x59, 0x5F, 0x57, 0x17, 0x9A, 0x0C, 0x28, -0x38, 0xD3, 0xF3, 0x1B, 0xBC, 0xD7, 0xAE, 0xAC, 0xD5, 0x6D, -0x06, 0x10, 0x7C, 0x80, 0x69, 0x41, 0x1B, 0x5D, 0xDC, 0xB3, -0x07, 0x19, 0x0E, 0x67, 0xDE, 0xF1, 0x0F, 0xDE, 0xBB, 0x4B, -0x0C, 0x68, 0x3A, 0xD5, 0x82, 0x71, 0xC5, 0xB7, 0x46, 0x2E, -0xEB, 0xC8, 0x39, 0x00, 0x55, 0xF7, 0xE5, 0x93, 0x2E, 0x97, -0xD4, 0xF3, 0xFD, 0x4D, 0xC0, 0xED, 0xDE, 0xF6, 0x6C, 0xCD, -0x5B, 0x35, 0xA7, 0x23, 0xE1, 0x39, 0x34, 0x35, 0xB7, 0xE9, -0xC9, 0xB3, 0x00, 0x04, 0x74, 0xA5, 0xAA, 0x6E, 0x4F, 0xF7, -0xC8, 0xAD, 0x63, 0x7D, 0x4C, 0x77, 0x95, 0x96, 0xBD, 0x7A, -0xF4, 0xE8, 0xB1, 0xD3, 0x46, 0x41, 0x40, 0x6B, 0x4B, 0x87, -0xD2, 0xDB, 0xD7, 0xBB, 0x46, 0xEE, 0xFA, 0x07, 0xF9, 0x86, -0xC0, 0x00, 0xE0, 0x8D, 0xD7, 0x5E, 0xAF, 0xDD, 0xE1, 0x29, -0xFD, 0x4C, 0x94, 0x80, 0x93, 0x5F, 0x7C, 0x73, 0xBE, 0x6F, -0xE0, 0xF6, 0x01, 0x00, 0x12, 0x80, 0xC7, 0x00, 0xF8, 0xF0, -0x10, 0x60, 0x55, 0x95, 0xCF, 0x57, 0xE7, 0xBB, 0x0B, 0xBE, -0x13, 0x24, 0x11, 0x3F, 0x7C, 0xFF, 0x63, 0xAB, 0xE2, 0x1B, -0x3F, 0xA4, 0x7D, 0x09, 0xA6, 0x87, 0x25, 0x07, 0x00, 0xBC, -0x79, 0xF8, 0x08, 0x1D, 0xAC, 0xAC, 0x20, 0x70, 0xD6, 0xA2, -0xA5, 0x72, 0x00, 0x6C, 0xC1, 0xA3, 0x82, 0x67, 0xD7, 0x9E, -0x1C, 0xB3, 0xC1, 0xD4, 0xA8, 0x6B, 0x66, 0x2E, 0xFE, 0x27, -0x14, 0x3C, 0xD2, 0x9B, 0x6B, 0xF8, 0x73, 0x00, 0xD6, 0xD2, -0x86, 0xAE, 0xCA, 0xDF, 0x49, 0x07, 0x00, 0x00, 0x00, 0x00, -0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Stop2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, -0x73, 0x00, 0x00, 0x0B, 0x13, 0x00, 0x00, 0x0B, 0x13, 0x01, -0x00, 0x9A, 0x9C, 0x18, 0x00, 0x00, 0x0A, 0x4D, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x68, 0x6F, -0x70, 0x20, 0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6F, 0x66, -0x69, 0x6C, 0x65, 0x00, 0x00, 0x78, 0xDA, 0x9D, 0x53, 0x77, -0x58, 0x93, 0xF7, 0x16, 0x3E, 0xDF, 0xF7, 0x65, 0x0F, 0x56, -0x42, 0xD8, 0xF0, 0xB1, 0x97, 0x6C, 0x81, 0x00, 0x22, 0x23, -0xAC, 0x08, 0xC8, 0x10, 0x59, 0xA2, 0x10, 0x92, 0x00, 0x61, -0x84, 0x10, 0x12, 0x40, 0xC5, 0x85, 0x88, 0x0A, 0x56, 0x14, -0x15, 0x11, 0x9C, 0x48, 0x55, 0xC4, 0x82, 0xD5, 0x0A, 0x48, -0x9D, 0x88, 0xE2, 0xA0, 0x28, 0xB8, 0x67, 0x41, 0x8A, 0x88, -0x5A, 0x8B, 0x55, 0x5C, 0x38, 0xEE, 0x1F, 0xDC, 0xA7, 0xB5, -0x7D, 0x7A, 0xEF, 0xED, 0xED, 0xFB, 0xD7, 0xFB, 0xBC, 0xE7, -0x9C, 0xE7, 0xFC, 0xCE, 0x79, 0xCF, 0x0F, 0x80, 0x11, 0x12, -0x26, 0x91, 0xE6, 0xA2, 0x6A, 0x00, 0x39, 0x52, 0x85, 0x3C, -0x3A, 0xD8, 0x1F, 0x8F, 0x4F, 0x48, 0xC4, 0xC9, 0xBD, 0x80, -0x02, 0x15, 0x48, 0xE0, 0x04, 0x20, 0x10, 0xE6, 0xCB, 0xC2, -0x67, 0x05, 0xC5, 0x00, 0x00, 0xF0, 0x03, 0x79, 0x78, 0x7E, -0x74, 0xB0, 0x3F, 0xFC, 0x01, 0xAF, 0x6F, 0x00, 0x02, 0x00, -0x70, 0xD5, 0x2E, 0x24, 0x12, 0xC7, 0xE1, 0xFF, 0x83, 0xBA, -0x50, 0x26, 0x57, 0x00, 0x20, 0x91, 0x00, 0xE0, 0x22, 0x12, -0xE7, 0x0B, 0x01, 0x90, 0x52, 0x00, 0xC8, 0x2E, 0x54, 0xC8, -0x14, 0x00, 0xC8, 0x18, 0x00, 0xB0, 0x53, 0xB3, 0x64, 0x0A, -0x00, 0x94, 0x00, 0x00, 0x6C, 0x79, 0x7C, 0x42, 0x22, 0x00, -0xAA, 0x0D, 0x00, 0xEC, 0xF4, 0x49, 0x3E, 0x05, 0x00, 0xD8, -0xA9, 0x93, 0xDC, 0x17, 0x00, 0xD8, 0xA2, 0x1C, 0xA9, 0x08, -0x00, 0x8D, 0x01, 0x00, 0x99, 0x28, 0x47, 0x24, 0x02, 0x40, -0xBB, 0x00, 0x60, 0x55, 0x81, 0x52, 0x2C, 0x02, 0xC0, 0xC2, -0x00, 0xA0, 0xAC, 0x40, 0x22, 0x2E, 0x04, 0xC0, 0xAE, 0x01, -0x80, 0x59, 0xB6, 0x32, 0x47, 0x02, 0x80, 0xBD, 0x05, 0x00, -0x76, 0x8E, 0x58, 0x90, 0x0F, 0x40, 0x60, 0x00, 0x80, 0x99, -0x42, 0x2C, 0xCC, 0x00, 0x20, 0x38, 0x02, 0x00, 0x43, 0x1E, -0x13, 0xCD, 0x03, 0x20, 0x4C, 0x03, 0xA0, 0x30, 0xD2, 0xBF, -0xE0, 0xA9, 0x5F, 0x70, 0x85, 0xB8, 0x48, 0x01, 0x00, 0xC0, -0xCB, 0x95, 0xCD, 0x97, 0x4B, 0xD2, 0x33, 0x14, 0xB8, 0x95, -0xD0, 0x1A, 0x77, 0xF2, 0xF0, 0xE0, 0xE2, 0x21, 0xE2, 0xC2, -0x6C, 0xB1, 0x42, 0x61, 0x17, 0x29, 0x10, 0x66, 0x09, 0xE4, -0x22, 0x9C, 0x97, 0x9B, 0x23, 0x13, 0x48, 0xE7, 0x03, 0x4C, -0xCE, 0x0C, 0x00, 0x00, 0x1A, 0xF9, 0xD1, 0xC1, 0xFE, 0x38, -0x3F, 0x90, 0xE7, 0xE6, 0xE4, 0xE1, 0xE6, 0x66, 0xE7, 0x6C, -0xEF, 0xF4, 0xC5, 0xA2, 0xFE, 0x6B, 0xF0, 0x6F, 0x22, 0x3E, -0x21, 0xF1, 0xDF, 0xFE, 0xBC, 0x8C, 0x02, 0x04, 0x00, 0x10, -0x4E, 0xCF, 0xEF, 0xDA, 0x5F, 0xE5, 0xE5, 0xD6, 0x03, 0x70, -0xC7, 0x01, 0xB0, 0x75, 0xBF, 0x6B, 0xA9, 0x5B, 0x00, 0xDA, -0x56, 0x00, 0x68, 0xDF, 0xF9, 0x5D, 0x33, 0xDB, 0x09, 0xA0, -0x5A, 0x0A, 0xD0, 0x7A, 0xF9, 0x8B, 0x79, 0x38, 0xFC, 0x40, -0x1E, 0x9E, 0xA1, 0x50, 0xC8, 0x3C, 0x1D, 0x1C, 0x0A, 0x0B, -0x0B, 0xED, 0x25, 0x62, 0xA1, 0xBD, 0x30, 0xE3, 0x8B, 0x3E, -0xFF, 0x33, 0xE1, 0x6F, 0xE0, 0x8B, 0x7E, 0xF6, 0xFC, 0x40, -0x1E, 0xFE, 0xDB, 0x7A, 0xF0, 0x00, 0x71, 0x9A, 0x40, 0x99, -0xAD, 0xC0, 0xA3, 0x83, 0xFD, 0x71, 0x61, 0x6E, 0x76, 0xAE, -0x52, 0x8E, 0xE7, 0xCB, 0x04, 0x42, 0x31, 0x6E, 0xF7, 0xE7, -0x23, 0xFE, 0xC7, 0x85, 0x7F, 0xFD, 0x8E, 0x29, 0xD1, 0xE2, -0x34, 0xB1, 0x5C, 0x2C, 0x15, 0x8A, 0xF1, 0x58, 0x89, 0xB8, -0x50, 0x22, 0x4D, 0xC7, 0x79, 0xB9, 0x52, 0x91, 0x44, 0x21, -0xC9, 0x95, 0xE2, 0x12, 0xE9, 0x7F, 0x32, 0xF1, 0x1F, 0x96, -0xFD, 0x09, 0x93, 0x77, 0x0D, 0x00, 0xAC, 0x86, 0x4F, 0xC0, -0x4E, 0xB6, 0x07, 0xB5, 0xCB, 0x6C, 0xC0, 0x7E, 0xEE, 0x01, -0x02, 0x8B, 0x0E, 0x58, 0xD2, 0x76, 0x00, 0x40, 0x7E, 0xF3, -0x2D, 0x8C, 0x1A, 0x0B, 0x91, 0x00, 0x10, 0x67, 0x34, 0x32, -0x79, 0xF7, 0x00, 0x00, 0x93, 0xBF, 0xF9, 0x8F, 0x40, 0x2B, -0x01, 0x00, 0xCD, 0x97, 0xA4, 0xE3, 0x00, 0x00, 0xBC, 0xE8, -0x18, 0x5C, 0xA8, 0x94, 0x17, 0x4C, 0xC6, 0x08, 0x00, 0x00, -0x44, 0xA0, 0x81, 0x2A, 0xB0, 0x41, 0x07, 0x0C, 0xC1, 0x14, -0xAC, 0xC0, 0x0E, 0x9C, 0xC1, 0x1D, 0xBC, 0xC0, 0x17, 0x02, -0x61, 0x06, 0x44, 0x40, 0x0C, 0x24, 0xC0, 0x3C, 0x10, 0x42, -0x06, 0xE4, 0x80, 0x1C, 0x0A, 0xA1, 0x18, 0x96, 0x41, 0x19, -0x54, 0xC0, 0x3A, 0xD8, 0x04, 0xB5, 0xB0, 0x03, 0x1A, 0xA0, -0x11, 0x9A, 0xE1, 0x10, 0xB4, 0xC1, 0x31, 0x38, 0x0D, 0xE7, -0xE0, 0x12, 0x5C, 0x81, 0xEB, 0x70, 0x17, 0x06, 0x60, 0x18, -0x9E, 0xC2, 0x18, 0xBC, 0x86, 0x09, 0x04, 0x41, 0xC8, 0x08, -0x13, 0x61, 0x21, 0x3A, 0x88, 0x11, 0x62, 0x8E, 0xD8, 0x22, -0xCE, 0x08, 0x17, 0x99, 0x8E, 0x04, 0x22, 0x61, 0x48, 0x34, -0x92, 0x80, 0xA4, 0x20, 0xE9, 0x88, 0x14, 0x51, 0x22, 0xC5, -0xC8, 0x72, 0xA4, 0x02, 0xA9, 0x42, 0x6A, 0x91, 0x5D, 0x48, -0x23, 0xF2, 0x2D, 0x72, 0x14, 0x39, 0x8D, 0x5C, 0x40, 0xFA, -0x90, 0xDB, 0xC8, 0x20, 0x32, 0x8A, 0xFC, 0x8A, 0xBC, 0x47, -0x31, 0x94, 0x81, 0xB2, 0x51, 0x03, 0xD4, 0x02, 0x75, 0x40, -0xB9, 0xA8, 0x1F, 0x1A, 0x8A, 0xC6, 0xA0, 0x73, 0xD1, 0x74, -0x34, 0x0F, 0x5D, 0x80, 0x96, 0xA2, 0x6B, 0xD1, 0x1A, 0xB4, -0x1E, 0x3D, 0x80, 0xB6, 0xA2, 0xA7, 0xD1, 0x4B, 0xE8, 0x75, -0x74, 0x00, 0x7D, 0x8A, 0x8E, 0x63, 0x80, 0xD1, 0x31, 0x0E, -0x66, 0x8C, 0xD9, 0x61, 0x5C, 0x8C, 0x87, 0x45, 0x60, 0x89, -0x58, 0x1A, 0x26, 0xC7, 0x16, 0x63, 0xE5, 0x58, 0x35, 0x56, -0x8F, 0x35, 0x63, 0x1D, 0x58, 0x37, 0x76, 0x15, 0x1B, 0xC0, -0x9E, 0x61, 0xEF, 0x08, 0x24, 0x02, 0x8B, 0x80, 0x13, 0xEC, -0x08, 0x5E, 0x84, 0x10, 0xC2, 0x6C, 0x82, 0x90, 0x90, 0x47, -0x58, 0x4C, 0x58, 0x43, 0xA8, 0x25, 0xEC, 0x23, 0xB4, 0x12, -0xBA, 0x08, 0x57, 0x09, 0x83, 0x84, 0x31, 0xC2, 0x27, 0x22, -0x93, 0xA8, 0x4F, 0xB4, 0x25, 0x7A, 0x12, 0xF9, 0xC4, 0x78, -0x62, 0x3A, 0xB1, 0x90, 0x58, 0x46, 0xAC, 0x26, 0xEE, 0x21, -0x1E, 0x21, 0x9E, 0x25, 0x5E, 0x27, 0x0E, 0x13, 0x5F, 0x93, -0x48, 0x24, 0x0E, 0xC9, 0x92, 0xE4, 0x4E, 0x0A, 0x21, 0x25, -0x90, 0x32, 0x49, 0x0B, 0x49, 0x6B, 0x48, 0xDB, 0x48, 0x2D, -0xA4, 0x53, 0xA4, 0x3E, 0xD2, 0x10, 0x69, 0x9C, 0x4C, 0x26, -0xEB, 0x90, 0x6D, 0xC9, 0xDE, 0xE4, 0x08, 0xB2, 0x80, 0xAC, -0x20, 0x97, 0x91, 0xB7, 0x90, 0x0F, 0x90, 0x4F, 0x92, 0xFB, -0xC9, 0xC3, 0xE4, 0xB7, 0x14, 0x3A, 0xC5, 0x88, 0xE2, 0x4C, -0x09, 0xA2, 0x24, 0x52, 0xA4, 0x94, 0x12, 0x4A, 0x35, 0x65, -0x3F, 0xE5, 0x04, 0xA5, 0x9F, 0x32, 0x42, 0x99, 0xA0, 0xAA, -0x51, 0xCD, 0xA9, 0x9E, 0xD4, 0x08, 0xAA, 0x88, 0x3A, 0x9F, -0x5A, 0x49, 0x6D, 0xA0, 0x76, 0x50, 0x2F, 0x53, 0x87, 0xA9, -0x13, 0x34, 0x75, 0x9A, 0x25, 0xCD, 0x9B, 0x16, 0x43, 0xCB, -0xA4, 0x2D, 0xA3, 0xD5, 0xD0, 0x9A, 0x69, 0x67, 0x69, 0xF7, -0x68, 0x2F, 0xE9, 0x74, 0xBA, 0x09, 0xDD, 0x83, 0x1E, 0x45, -0x97, 0xD0, 0x97, 0xD2, 0x6B, 0xE8, 0x07, 0xE9, 0xE7, 0xE9, -0x83, 0xF4, 0x77, 0x0C, 0x0D, 0x86, 0x0D, 0x83, 0xC7, 0x48, -0x62, 0x28, 0x19, 0x6B, 0x19, 0x7B, 0x19, 0xA7, 0x18, 0xB7, -0x19, 0x2F, 0x99, 0x4C, 0xA6, 0x05, 0xD3, 0x97, 0x99, 0xC8, -0x54, 0x30, 0xD7, 0x32, 0x1B, 0x99, 0x67, 0x98, 0x0F, 0x98, -0x6F, 0x55, 0x58, 0x2A, 0xF6, 0x2A, 0x7C, 0x15, 0x91, 0xCA, -0x12, 0x95, 0x3A, 0x95, 0x56, 0x95, 0x7E, 0x95, 0xE7, 0xAA, -0x54, 0x55, 0x73, 0x55, 0x3F, 0xD5, 0x79, 0xAA, 0x0B, 0x54, -0xAB, 0x55, 0x0F, 0xAB, 0x5E, 0x56, 0x7D, 0xA6, 0x46, 0x55, -0xB3, 0x50, 0xE3, 0xA9, 0x09, 0xD4, 0x16, 0xAB, 0xD5, 0xA9, -0x1D, 0x55, 0xBB, 0xA9, 0x36, 0xAE, 0xCE, 0x52, 0x77, 0x52, -0x8F, 0x50, 0xCF, 0x51, 0x5F, 0xA3, 0xBE, 0x5F, 0xFD, 0x82, -0xFA, 0x63, 0x0D, 0xB2, 0x86, 0x85, 0x46, 0xA0, 0x86, 0x48, -0xA3, 0x54, 0x63, 0xB7, 0xC6, 0x19, 0x8D, 0x21, 0x16, 0xC6, -0x32, 0x65, 0xF1, 0x58, 0x42, 0xD6, 0x72, 0x56, 0x03, 0xEB, -0x2C, 0x6B, 0x98, 0x4D, 0x62, 0x5B, 0xB2, 0xF9, 0xEC, 0x4C, -0x76, 0x05, 0xFB, 0x1B, 0x76, 0x2F, 0x7B, 0x4C, 0x53, 0x43, -0x73, 0xAA, 0x66, 0xAC, 0x66, 0x91, 0x66, 0x9D, 0xE6, 0x71, -0xCD, 0x01, 0x0E, 0xC6, 0xB1, 0xE0, 0xF0, 0x39, 0xD9, 0x9C, -0x4A, 0xCE, 0x21, 0xCE, 0x0D, 0xCE, 0x7B, 0x2D, 0x03, 0x2D, -0x3F, 0x2D, 0xB1, 0xD6, 0x6A, 0xAD, 0x66, 0xAD, 0x7E, 0xAD, -0x37, 0xDA, 0x7A, 0xDA, 0xBE, 0xDA, 0x62, 0xED, 0x72, 0xED, -0x16, 0xED, 0xEB, 0xDA, 0xEF, 0x75, 0x70, 0x9D, 0x40, 0x9D, -0x2C, 0x9D, 0xF5, 0x3A, 0x6D, 0x3A, 0xF7, 0x75, 0x09, 0xBA, -0x36, 0xBA, 0x51, 0xBA, 0x85, 0xBA, 0xDB, 0x75, 0xCF, 0xEA, -0x3E, 0xD3, 0x63, 0xEB, 0x79, 0xE9, 0x09, 0xF5, 0xCA, 0xF5, -0x0E, 0xE9, 0xDD, 0xD1, 0x47, 0xF5, 0x6D, 0xF4, 0xA3, 0xF5, -0x17, 0xEA, 0xEF, 0xD6, 0xEF, 0xD1, 0x1F, 0x37, 0x30, 0x34, -0x08, 0x36, 0x90, 0x19, 0x6C, 0x31, 0x38, 0x63, 0xF0, 0xCC, -0x90, 0x63, 0xE8, 0x6B, 0x98, 0x69, 0xB8, 0xD1, 0xF0, 0x84, -0xE1, 0xA8, 0x11, 0xCB, 0x68, 0xBA, 0x91, 0xC4, 0x68, 0xA3, -0xD1, 0x49, 0xA3, 0x27, 0xB8, 0x26, 0xEE, 0x87, 0x67, 0xE3, -0x35, 0x78, 0x17, 0x3E, 0x66, 0xAC, 0x6F, 0x1C, 0x62, 0xAC, -0x34, 0xDE, 0x65, 0xDC, 0x6B, 0x3C, 0x61, 0x62, 0x69, 0x32, -0xDB, 0xA4, 0xC4, 0xA4, 0xC5, 0xE4, 0xBE, 0x29, 0xCD, 0x94, -0x6B, 0x9A, 0x66, 0xBA, 0xD1, 0xB4, 0xD3, 0x74, 0xCC, 0xCC, -0xC8, 0x2C, 0xDC, 0xAC, 0xD8, 0xAC, 0xC9, 0xEC, 0x8E, 0x39, -0xD5, 0x9C, 0x6B, 0x9E, 0x61, 0xBE, 0xD9, 0xBC, 0xDB, 0xFC, -0x8D, 0x85, 0xA5, 0x45, 0x9C, 0xC5, 0x4A, 0x8B, 0x36, 0x8B, -0xC7, 0x96, 0xDA, 0x96, 0x7C, 0xCB, 0x05, 0x96, 0x4D, 0x96, -0xF7, 0xAC, 0x98, 0x56, 0x3E, 0x56, 0x79, 0x56, 0xF5, 0x56, -0xD7, 0xAC, 0x49, 0xD6, 0x5C, 0xEB, 0x2C, 0xEB, 0x6D, 0xD6, -0x57, 0x6C, 0x50, 0x1B, 0x57, 0x9B, 0x0C, 0x9B, 0x3A, 0x9B, -0xCB, 0xB6, 0xA8, 0xAD, 0x9B, 0xAD, 0xC4, 0x76, 0x9B, 0x6D, -0xDF, 0x14, 0xE2, 0x14, 0x8F, 0x29, 0xD2, 0x29, 0xF5, 0x53, -0x6E, 0xDA, 0x31, 0xEC, 0xFC, 0xEC, 0x0A, 0xEC, 0x9A, 0xEC, -0x06, 0xED, 0x39, 0xF6, 0x61, 0xF6, 0x25, 0xF6, 0x6D, 0xF6, -0xCF, 0x1D, 0xCC, 0x1C, 0x12, 0x1D, 0xD6, 0x3B, 0x74, 0x3B, -0x7C, 0x72, 0x74, 0x75, 0xCC, 0x76, 0x6C, 0x70, 0xBC, 0xEB, -0xA4, 0xE1, 0x34, 0xC3, 0xA9, 0xC4, 0xA9, 0xC3, 0xE9, 0x57, -0x67, 0x1B, 0x67, 0xA1, 0x73, 0x9D, 0xF3, 0x35, 0x17, 0xA6, -0x4B, 0x90, 0xCB, 0x12, 0x97, 0x76, 0x97, 0x17, 0x53, 0x6D, -0xA7, 0x8A, 0xA7, 0x6E, 0x9F, 0x7A, 0xCB, 0x95, 0xE5, 0x1A, -0xEE, 0xBA, 0xD2, 0xB5, 0xD3, 0xF5, 0xA3, 0x9B, 0xBB, 0x9B, -0xDC, 0xAD, 0xD9, 0x6D, 0xD4, 0xDD, 0xCC, 0x3D, 0xC5, 0x7D, -0xAB, 0xFB, 0x4D, 0x2E, 0x9B, 0x1B, 0xC9, 0x5D, 0xC3, 0x3D, -0xEF, 0x41, 0xF4, 0xF0, 0xF7, 0x58, 0xE2, 0x71, 0xCC, 0xE3, -0x9D, 0xA7, 0x9B, 0xA7, 0xC2, 0xF3, 0x90, 0xE7, 0x2F, 0x5E, -0x76, 0x5E, 0x59, 0x5E, 0xFB, 0xBD, 0x1E, 0x4F, 0xB3, 0x9C, -0x26, 0x9E, 0xD6, 0x30, 0x6D, 0xC8, 0xDB, 0xC4, 0x5B, 0xE0, -0xBD, 0xCB, 0x7B, 0x60, 0x3A, 0x3E, 0x3D, 0x65, 0xFA, 0xCE, -0xE9, 0x03, 0x3E, 0xC6, 0x3E, 0x02, 0x9F, 0x7A, 0x9F, 0x87, -0xBE, 0xA6, 0xBE, 0x22, 0xDF, 0x3D, 0xBE, 0x23, 0x7E, 0xD6, -0x7E, 0x99, 0x7E, 0x07, 0xFC, 0x9E, 0xFB, 0x3B, 0xFA, 0xCB, -0xFD, 0x8F, 0xF8, 0xBF, 0xE1, 0x79, 0xF2, 0x16, 0xF1, 0x4E, -0x05, 0x60, 0x01, 0xC1, 0x01, 0xE5, 0x01, 0xBD, 0x81, 0x1A, -0x81, 0xB3, 0x03, 0x6B, 0x03, 0x1F, 0x04, 0x99, 0x04, 0xA5, -0x07, 0x35, 0x05, 0x8D, 0x05, 0xBB, 0x06, 0x2F, 0x0C, 0x3E, -0x15, 0x42, 0x0C, 0x09, 0x0D, 0x59, 0x1F, 0x72, 0x93, 0x6F, -0xC0, 0x17, 0xF2, 0x1B, 0xF9, 0x63, 0x33, 0xDC, 0x67, 0x2C, -0x9A, 0xD1, 0x15, 0xCA, 0x08, 0x9D, 0x15, 0x5A, 0x1B, 0xFA, -0x30, 0xCC, 0x26, 0x4C, 0x1E, 0xD6, 0x11, 0x8E, 0x86, 0xCF, -0x08, 0xDF, 0x10, 0x7E, 0x6F, 0xA6, 0xF9, 0x4C, 0xE9, 0xCC, -0xB6, 0x08, 0x88, 0xE0, 0x47, 0x6C, 0x88, 0xB8, 0x1F, 0x69, -0x19, 0x99, 0x17, 0xF9, 0x7D, 0x14, 0x29, 0x2A, 0x32, 0xAA, -0x2E, 0xEA, 0x51, 0xB4, 0x53, 0x74, 0x71, 0x74, 0xF7, 0x2C, -0xD6, 0xAC, 0xE4, 0x59, 0xFB, 0x67, 0xBD, 0x8E, 0xF1, 0x8F, -0xA9, 0x8C, 0xB9, 0x3B, 0xDB, 0x6A, 0xB6, 0x72, 0x76, 0x67, -0xAC, 0x6A, 0x6C, 0x52, 0x6C, 0x63, 0xEC, 0x9B, 0xB8, 0x80, -0xB8, 0xAA, 0xB8, 0x81, 0x78, 0x87, 0xF8, 0x45, 0xF1, 0x97, -0x12, 0x74, 0x13, 0x24, 0x09, 0xED, 0x89, 0xE4, 0xC4, 0xD8, -0xC4, 0x3D, 0x89, 0xE3, 0x73, 0x02, 0xE7, 0x6C, 0x9A, 0x33, -0x9C, 0xE4, 0x9A, 0x54, 0x96, 0x74, 0x63, 0xAE, 0xE5, 0xDC, -0xA2, 0xB9, 0x17, 0xE6, 0xE9, 0xCE, 0xCB, 0x9E, 0x77, 0x3C, -0x59, 0x35, 0x59, 0x90, 0x7C, 0x38, 0x85, 0x98, 0x12, 0x97, -0xB2, 0x3F, 0xE5, 0x83, 0x20, 0x42, 0x50, 0x2F, 0x18, 0x4F, -0xE5, 0xA7, 0x6E, 0x4D, 0x1D, 0x13, 0xF2, 0x84, 0x9B, 0x85, -0x4F, 0x45, 0xBE, 0xA2, 0x8D, 0xA2, 0x51, 0xB1, 0xB7, 0xB8, -0x4A, 0x3C, 0x92, 0xE6, 0x9D, 0x56, 0x95, 0xF6, 0x38, 0xDD, -0x3B, 0x7D, 0x43, 0xFA, 0x68, 0x86, 0x4F, 0x46, 0x75, 0xC6, -0x33, 0x09, 0x4F, 0x52, 0x2B, 0x79, 0x91, 0x19, 0x92, 0xB9, -0x23, 0xF3, 0x4D, 0x56, 0x44, 0xD6, 0xDE, 0xAC, 0xCF, 0xD9, -0x71, 0xD9, 0x2D, 0x39, 0x94, 0x9C, 0x94, 0x9C, 0xA3, 0x52, -0x0D, 0x69, 0x96, 0xB4, 0x2B, 0xD7, 0x30, 0xB7, 0x28, 0xB7, -0x4F, 0x66, 0x2B, 0x2B, 0x93, 0x0D, 0xE4, 0x79, 0xE6, 0x6D, -0xCA, 0x1B, 0x93, 0x87, 0xCA, 0xF7, 0xE4, 0x23, 0xF9, 0x73, -0xF3, 0xDB, 0x15, 0x6C, 0x85, 0x4C, 0xD1, 0xA3, 0xB4, 0x52, -0xAE, 0x50, 0x0E, 0x16, 0x4C, 0x2F, 0xA8, 0x2B, 0x78, 0x5B, -0x18, 0x5B, 0x78, 0xB8, 0x48, 0xBD, 0x48, 0x5A, 0xD4, 0x33, -0xDF, 0x66, 0xFE, 0xEA, 0xF9, 0x23, 0x0B, 0x82, 0x16, 0x7C, -0xBD, 0x90, 0xB0, 0x50, 0xB8, 0xB0, 0xB3, 0xD8, 0xB8, 0x78, -0x59, 0xF1, 0xE0, 0x22, 0xBF, 0x45, 0xBB, 0x16, 0x23, 0x8B, -0x53, 0x17, 0x77, 0x2E, 0x31, 0x5D, 0x52, 0xBA, 0x64, 0x78, -0x69, 0xF0, 0xD2, 0x7D, 0xCB, 0x68, 0xCB, 0xB2, 0x96, 0xFD, -0x50, 0xE2, 0x58, 0x52, 0x55, 0xF2, 0x6A, 0x79, 0xDC, 0xF2, -0x8E, 0x52, 0x83, 0xD2, 0xA5, 0xA5, 0x43, 0x2B, 0x82, 0x57, -0x34, 0x95, 0xA9, 0x94, 0xC9, 0xCB, 0x6E, 0xAE, 0xF4, 0x5A, -0xB9, 0x63, 0x15, 0x61, 0x95, 0x64, 0x55, 0xEF, 0x6A, 0x97, -0xD5, 0x5B, 0x56, 0x7F, 0x2A, 0x17, 0x95, 0x5F, 0xAC, 0x70, -0xAC, 0xA8, 0xAE, 0xF8, 0xB0, 0x46, 0xB8, 0xE6, 0xE2, 0x57, -0x4E, 0x5F, 0xD5, 0x7C, 0xF5, 0x79, 0x6D, 0xDA, 0xDA, 0xDE, -0x4A, 0xB7, 0xCA, 0xED, 0xEB, 0x48, 0xEB, 0xA4, 0xEB, 0x6E, -0xAC, 0xF7, 0x59, 0xBF, 0xAF, 0x4A, 0xBD, 0x6A, 0x41, 0xD5, -0xD0, 0x86, 0xF0, 0x0D, 0xAD, 0x1B, 0xF1, 0x8D, 0xE5, 0x1B, -0x5F, 0x6D, 0x4A, 0xDE, 0x74, 0xA1, 0x7A, 0x6A, 0xF5, 0x8E, -0xCD, 0xB4, 0xCD, 0xCA, 0xCD, 0x03, 0x35, 0x61, 0x35, 0xED, -0x5B, 0xCC, 0xB6, 0xAC, 0xDB, 0xF2, 0xA1, 0x36, 0xA3, 0xF6, -0x7A, 0x9D, 0x7F, 0x5D, 0xCB, 0x56, 0xFD, 0xAD, 0xAB, 0xB7, -0xBE, 0xD9, 0x26, 0xDA, 0xD6, 0xBF, 0xDD, 0x77, 0x7B, 0xF3, -0x0E, 0x83, 0x1D, 0x15, 0x3B, 0xDE, 0xEF, 0x94, 0xEC, 0xBC, -0xB5, 0x2B, 0x78, 0x57, 0x6B, 0xBD, 0x45, 0x7D, 0xF5, 0x6E, -0xD2, 0xEE, 0x82, 0xDD, 0x8F, 0x1A, 0x62, 0x1B, 0xBA, 0xBF, -0xE6, 0x7E, 0xDD, 0xB8, 0x47, 0x77, 0x4F, 0xC5, 0x9E, 0x8F, -0x7B, 0xA5, 0x7B, 0x07, 0xF6, 0x45, 0xEF, 0xEB, 0x6A, 0x74, -0x6F, 0x6C, 0xDC, 0xAF, 0xBF, 0xBF, 0xB2, 0x09, 0x6D, 0x52, -0x36, 0x8D, 0x1E, 0x48, 0x3A, 0x70, 0xE5, 0x9B, 0x80, 0x6F, -0xDA, 0x9B, 0xED, 0x9A, 0x77, 0xB5, 0x70, 0x5A, 0x2A, 0x0E, -0xC2, 0x41, 0xE5, 0xC1, 0x27, 0xDF, 0xA6, 0x7C, 0x7B, 0xE3, -0x50, 0xE8, 0xA1, 0xCE, 0xC3, 0xDC, 0xC3, 0xCD, 0xDF, 0x99, -0x7F, 0xB7, 0xF5, 0x08, 0xEB, 0x48, 0x79, 0x2B, 0xD2, 0x3A, -0xBF, 0x75, 0xAC, 0x2D, 0xA3, 0x6D, 0xA0, 0x3D, 0xA1, 0xBD, -0xEF, 0xE8, 0x8C, 0xA3, 0x9D, 0x1D, 0x5E, 0x1D, 0x47, 0xBE, -0xB7, 0xFF, 0x7E, 0xEF, 0x31, 0xE3, 0x63, 0x75, 0xC7, 0x35, -0x8F, 0x57, 0x9E, 0xA0, 0x9D, 0x28, 0x3D, 0xF1, 0xF9, 0xE4, -0x82, 0x93, 0xE3, 0xA7, 0x64, 0xA7, 0x9E, 0x9D, 0x4E, 0x3F, -0x3D, 0xD4, 0x99, 0xDC, 0x79, 0xF7, 0x4C, 0xFC, 0x99, 0x6B, -0x5D, 0x51, 0x5D, 0xBD, 0x67, 0x43, 0xCF, 0x9E, 0x3F, 0x17, -0x74, 0xEE, 0x4C, 0xB7, 0x5F, 0xF7, 0xC9, 0xF3, 0xDE, 0xE7, -0x8F, 0x5D, 0xF0, 0xBC, 0x70, 0xF4, 0x22, 0xF7, 0x62, 0xDB, -0x25, 0xB7, 0x4B, 0xAD, 0x3D, 0xAE, 0x3D, 0x47, 0x7E, 0x70, -0xFD, 0xE1, 0x48, 0xAF, 0x5B, 0x6F, 0xEB, 0x65, 0xF7, 0xCB, -0xED, 0x57, 0x3C, 0xAE, 0x74, 0xF4, 0x4D, 0xEB, 0x3B, 0xD1, -0xEF, 0xD3, 0x7F, 0xFA, 0x6A, 0xC0, 0xD5, 0x73, 0xD7, 0xF8, -0xD7, 0x2E, 0x5D, 0x9F, 0x79, 0xBD, 0xEF, 0xC6, 0xEC, 0x1B, -0xB7, 0x6E, 0x26, 0xDD, 0x1C, 0xB8, 0x25, 0xBA, 0xF5, 0xF8, -0x76, 0xF6, 0xED, 0x17, 0x77, 0x0A, 0xEE, 0x4C, 0xDC, 0x5D, -0x7A, 0x8F, 0x78, 0xAF, 0xFC, 0xBE, 0xDA, 0xFD, 0xEA, 0x07, -0xFA, 0x0F, 0xEA, 0x7F, 0xB4, 0xFE, 0xB1, 0x65, 0xC0, 0x6D, -0xE0, 0xF8, 0x60, 0xC0, 0x60, 0xCF, 0xC3, 0x59, 0x0F, 0xEF, -0x0E, 0x09, 0x87, 0x9E, 0xFE, 0x94, 0xFF, 0xD3, 0x87, 0xE1, -0xD2, 0x47, 0xCC, 0x47, 0xD5, 0x23, 0x46, 0x23, 0x8D, 0x8F, -0x9D, 0x1F, 0x1F, 0x1B, 0x0D, 0x1A, 0xBD, 0xF2, 0x64, 0xCE, -0x93, 0xE1, 0xA7, 0xB2, 0xA7, 0x13, 0xCF, 0xCA, 0x7E, 0x56, -0xFF, 0x79, 0xEB, 0x73, 0xAB, 0xE7, 0xDF, 0xFD, 0xE2, 0xFB, -0x4B, 0xCF, 0x58, 0xFC, 0xD8, 0xF0, 0x0B, 0xF9, 0x8B, 0xCF, -0xBF, 0xAE, 0x79, 0xA9, 0xF3, 0x72, 0xEF, 0xAB, 0xA9, 0xAF, -0x3A, 0xC7, 0x23, 0xC7, 0x1F, 0xBC, 0xCE, 0x79, 0x3D, 0xF1, -0xA6, 0xFC, 0xAD, 0xCE, 0xDB, 0x7D, 0xEF, 0xB8, 0xEF, 0xBA, -0xDF, 0xC7, 0xBD, 0x1F, 0x99, 0x28, 0xFC, 0x40, 0xFE, 0x50, -0xF3, 0xD1, 0xFA, 0x63, 0xC7, 0xA7, 0xD0, 0x4F, 0xF7, 0x3E, -0xE7, 0x7C, 0xFE, 0xFC, 0x2F, 0xF7, 0x84, 0xF3, 0xFB, 0x25, -0xD2, 0x9F, 0x33, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, -0x41, 0x00, 0x00, 0xB1, 0x8E, 0x7C, 0xFB, 0x51, 0x93, 0x00, -0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, -0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xF9, 0xFF, 0x00, -0x00, 0x80, 0xE9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, -0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x6F, 0x92, -0x5F, 0xC5, 0x46, 0x00, 0x00, 0x06, 0x88, 0x49, 0x44, 0x41, -0x54, 0x78, 0xDA, 0x94, 0x95, 0x5B, 0x6C, 0x93, 0xF7, 0x1D, -0x86, 0x9F, 0xCF, 0x9F, 0xCF, 0xC7, 0xD8, 0x81, 0x1C, 0xC8, -0x81, 0x90, 0x12, 0x60, 0x10, 0xAA, 0x14, 0x92, 0x06, 0x46, -0x12, 0xC1, 0x80, 0x4C, 0x1D, 0x74, 0x80, 0xAA, 0x8A, 0x55, -0xD0, 0x4C, 0x45, 0xE2, 0x62, 0x93, 0x60, 0xD3, 0x4A, 0x41, -0xAB, 0x36, 0x69, 0xDD, 0x34, 0xA4, 0x51, 0xA1, 0x5E, 0x4C, -0x55, 0xD1, 0x54, 0xD1, 0x32, 0x44, 0x45, 0x55, 0x4D, 0x6D, -0x09, 0x42, 0x5B, 0xE8, 0xC4, 0x50, 0x8B, 0x96, 0x90, 0x10, -0x20, 0x07, 0xC8, 0xD1, 0x31, 0x4E, 0x88, 0xE3, 0xC4, 0xFE, -0x12, 0x7F, 0x3E, 0xC4, 0xF6, 0x67, 0x7F, 0xFF, 0x5D, 0x54, -0x54, 0x14, 0xED, 0xC0, 0xDE, 0xBB, 0xF7, 0xE2, 0xF7, 0x3C, -0x77, 0xBF, 0x57, 0xE2, 0xBF, 0xC7, 0xF4, 0xCC, 0xBA, 0xAA, -0x17, 0xDB, 0xDA, 0x0E, 0xAD, 0xAF, 0x2C, 0x2D, 0xDF, 0xEE, -0x76, 0xB9, 0xEB, 0x84, 0x44, 0x3E, 0xA1, 0xAA, 0xB7, 0xEE, -0x0E, 0xDC, 0xFA, 0xC7, 0x07, 0x67, 0xFF, 0x7C, 0x67, 0x21, -0x12, 0xBF, 0xCC, 0xFF, 0x9B, 0x82, 0xF2, 0xA5, 0xBE, 0x37, -0x7E, 0xF9, 0xB3, 0xF6, 0x50, 0x68, 0x4A, 0xFC, 0xAF, 0xF8, -0x03, 0x63, 0xE2, 0xC7, 0x87, 0x5F, 0xB9, 0x08, 0x98, 0x9F, -0x8E, 0x6E, 0xA2, 0x6D, 0x3E, 0x11, 0xFB, 0x06, 0xA0, 0x8B, -0x9C, 0xC8, 0xA4, 0x17, 0x45, 0x3E, 0x12, 0x11, 0x99, 0x8E, -0x0E, 0x91, 0xB9, 0x76, 0x4D, 0xE8, 0x8B, 0x8B, 0x22, 0x9D, -0xC9, 0x7C, 0x4B, 0x34, 0xF2, 0x60, 0x54, 0x00, 0x3F, 0x7C, -0x12, 0x67, 0x78, 0xBC, 0xAC, 0x58, 0x55, 0xFD, 0xAE, 0xC8, -0x8A, 0x73, 0x05, 0x0E, 0x37, 0xB1, 0x54, 0x82, 0x79, 0x55, -0x21, 0xA9, 0xA6, 0x10, 0x48, 0xE4, 0x67, 0x66, 0x30, 0x0F, -0x0E, 0x62, 0xBA, 0x73, 0x07, 0x5D, 0x55, 0xC9, 0xEB, 0x39, -0x92, 0xC9, 0x38, 0xF1, 0x44, 0x8C, 0xB4, 0x96, 0xA6, 0xA6, -0x72, 0x25, 0x42, 0x88, 0xCF, 0x2D, 0x2E, 0xF3, 0xF1, 0x7F, -0x2B, 0xA8, 0xAE, 0x5D, 0xF1, 0xA6, 0x7F, 0x78, 0xFC, 0xA7, -0x00, 0x93, 0xE1, 0x49, 0xB2, 0xB9, 0x1C, 0xBA, 0x6C, 0x40, -0x97, 0x72, 0xE4, 0xF5, 0x1C, 0x5A, 0x30, 0x08, 0x9D, 0x9D, -0x48, 0x9D, 0x9D, 0xE4, 0xA2, 0x51, 0x04, 0x06, 0x72, 0x42, -0x47, 0x08, 0x9D, 0xD4, 0x62, 0x86, 0x99, 0xB9, 0x30, 0x00, -0x69, 0x35, 0xF3, 0x07, 0x93, 0x9D, 0x57, 0x9E, 0x14, 0x3C, -0x33, 0xDE, 0xEF, 0xFF, 0x3D, 0xC0, 0xE8, 0xE8, 0x28, 0x16, -0xA3, 0x11, 0x91, 0x5F, 0xC4, 0x6A, 0xB4, 0x60, 0x5B, 0xD4, -0xE0, 0xCB, 0x1B, 0xE4, 0x67, 0x67, 0x49, 0x75, 0x77, 0xB3, -0xD0, 0xD9, 0x49, 0x7E, 0x62, 0x02, 0xF1, 0xF1, 0xC7, 0xB8, -0x64, 0x33, 0x46, 0x93, 0x15, 0x5D, 0x4B, 0x23, 0x1B, 0x61, -0xF2, 0x61, 0x00, 0x80, 0xF0, 0x74, 0xE8, 0x23, 0xC0, 0xF9, -0x8D, 0xE0, 0xDC, 0xA5, 0xB3, 0x57, 0x01, 0x86, 0x1E, 0x0E, -0xE2, 0x76, 0x9B, 0x49, 0x25, 0x33, 0x58, 0x4D, 0x4E, 0xD2, -0x5F, 0xDE, 0x60, 0xBE, 0xB1, 0x91, 0xF4, 0xE9, 0xD3, 0x64, -0x65, 0x99, 0x6E, 0xBF, 0x9F, 0xDE, 0x07, 0x0F, 0xC8, 0x68, -0x1A, 0xF1, 0xE3, 0xC7, 0x89, 0xAC, 0x5B, 0x87, 0x76, 0xFB, -0x0E, 0x16, 0x8B, 0x8D, 0xC5, 0x44, 0x0A, 0xDD, 0x00, 0x13, -0xC1, 0x11, 0xBC, 0x9E, 0x12, 0x7E, 0xFB, 0xF6, 0xAF, 0xAE, -0x7C, 0x2D, 0x58, 0x65, 0x2A, 0x6D, 0x7B, 0xF1, 0xB5, 0x15, -0x59, 0x5D, 0xC1, 0x9A, 0xB7, 0x90, 0xCC, 0x66, 0x29, 0xF4, -0x79, 0x50, 0xAE, 0x7E, 0x41, 0x6A, 0xFF, 0x7E, 0x26, 0x03, -0x01, 0xC6, 0x4B, 0x4A, 0x48, 0x38, 0x1C, 0xDC, 0x07, 0xEE, -0x03, 0xF9, 0xF2, 0x72, 0xFA, 0xEB, 0xEA, 0x98, 0x08, 0x04, -0x58, 0xD8, 0xBD, 0x1B, 0xB5, 0xA7, 0x17, 0xBB, 0xD7, 0x4B, -0x52, 0x40, 0x22, 0x9D, 0x23, 0x1E, 0x51, 0x39, 0x72, 0xF0, -0x78, 0xB3, 0xD3, 0x63, 0xF2, 0x1A, 0x5E, 0x3D, 0xD6, 0xD6, -0x06, 0x90, 0x34, 0xCC, 0x52, 0x51, 0x66, 0xA4, 0xCC, 0x67, -0x45, 0x8F, 0xA7, 0xF1, 0xEF, 0xDF, 0xCF, 0x98, 0xA2, 0x10, -0xDA, 0xB7, 0x8F, 0xA2, 0xDF, 0xFD, 0xE6, 0xE1, 0xC3, 0xB9, -0x39, 0x46, 0x80, 0x61, 0x20, 0xA1, 0x69, 0xAC, 0x7D, 0xFF, -0x4F, 0xD3, 0xCA, 0xD1, 0xA3, 0x0C, 0x28, 0x0A, 0x43, 0x7B, -0xF6, 0xE0, 0xB3, 0x3A, 0x71, 0xF6, 0x07, 0x70, 0x8C, 0xCC, -0x32, 0x75, 0xBF, 0x9F, 0x82, 0x12, 0x17, 0xAF, 0x1D, 0x3C, -0x78, 0xC0, 0xB0, 0xB3, 0xB8, 0x71, 0x25, 0x80, 0x57, 0xC9, -0x23, 0xAB, 0x60, 0xB2, 0x95, 0x71, 0xE5, 0xE4, 0x49, 0xB2, -0x9A, 0x46, 0xFF, 0xFA, 0xF5, 0xB4, 0x7C, 0xF8, 0x41, 0x72, -0x7E, 0x21, 0x3E, 0x3A, 0xAB, 0x69, 0x04, 0x01, 0x3F, 0x10, -0xD7, 0x75, 0xE6, 0xA3, 0xF1, 0xAE, 0xBA, 0x13, 0xC7, 0xE6, -0x86, 0xB6, 0x6D, 0x23, 0xAD, 0xAA, 0x7C, 0xFA, 0xD6, 0x5B, -0x14, 0x35, 0x35, 0x70, 0x6E, 0xB7, 0xE0, 0x4C, 0x73, 0x94, -0x53, 0x7C, 0xC5, 0xCA, 0x1F, 0x35, 0x2E, 0x37, 0x94, 0xBA, -0x8A, 0x76, 0x42, 0x92, 0x64, 0xD2, 0x4C, 0x96, 0x02, 0x66, -0x26, 0x27, 0xE9, 0x3B, 0x7F, 0x9E, 0x80, 0x24, 0xB1, 0xA4, -0xAD, 0x8D, 0xB0, 0xA2, 0x0C, 0xCD, 0x4C, 0x4E, 0x15, 0xC4, -0x01, 0x05, 0x98, 0x01, 0x32, 0x80, 0x51, 0x36, 0x2C, 0x9D, -0x9F, 0x9C, 0x19, 0xD8, 0x78, 0xE2, 0x04, 0x77, 0x81, 0xC1, -0x0B, 0x17, 0x98, 0x9D, 0x9A, 0xA2, 0x21, 0x5A, 0xCC, 0xB2, -0x1B, 0x69, 0xAA, 0x7A, 0x63, 0x48, 0xF7, 0x62, 0x3B, 0x0C, -0x5A, 0x46, 0x76, 0x8E, 0xC6, 0x54, 0xEE, 0x8A, 0x45, 0x62, -0x42, 0xA0, 0x46, 0xA3, 0x88, 0x58, 0x8C, 0x3E, 0x59, 0xA6, -0xB2, 0xB1, 0x91, 0x70, 0x68, 0x36, 0xBC, 0xBC, 0xA2, 0xD2, -0x91, 0x06, 0x0A, 0x01, 0x37, 0x90, 0x05, 0xB2, 0xB9, 0xB4, -0x5B, 0x4D, 0x65, 0xA6, 0xD7, 0xD7, 0xD7, 0x33, 0x08, 0xA8, -0xD3, 0xD3, 0xE4, 0xB3, 0x59, 0xAA, 0x14, 0x23, 0x85, 0xC1, -0x3C, 0xF9, 0xE9, 0x1C, 0x49, 0x55, 0xAC, 0x36, 0x7A, 0xED, -0xB2, 0x5A, 0x93, 0x2F, 0x2D, 0xAC, 0xE9, 0xF1, 0x40, 0x9D, -0x9D, 0x88, 0xF0, 0xA3, 0x02, 0x71, 0x49, 0xC2, 0x00, 0x84, -0x42, 0x7E, 0x93, 0x6F, 0xCD, 0x73, 0x23, 0x5B, 0x5A, 0x5A, -0x6A, 0x86, 0x5E, 0x7A, 0x89, 0x1A, 0x97, 0x8B, 0x35, 0xAB, -0x57, 0x33, 0x1E, 0x08, 0x8E, 0xC7, 0x17, 0x66, 0x65, 0xC4, -0x6A, 0x72, 0x40, 0x48, 0x08, 0xF2, 0x42, 0x90, 0x2C, 0x2E, -0x62, 0x7C, 0xFB, 0x5A, 0xCC, 0x45, 0x76, 0x34, 0x4F, 0xEC, -0x9E, 0xC1, 0xD8, 0x13, 0xF9, 0x3B, 0xFD, 0x10, 0x36, 0xFA, -0xF1, 0x6B, 0xE3, 0x14, 0xFA, 0x7C, 0xC4, 0x2D, 0x16, 0xBC, -0xB9, 0x1C, 0xD9, 0xAE, 0x2E, 0xAA, 0x2A, 0x97, 0xAF, 0xFB, -0xEB, 0xA7, 0x9F, 0x0D, 0x1B, 0x64, 0x5B, 0xC7, 0x9B, 0x67, -0xCE, 0x28, 0xC7, 0x4E, 0x9F, 0x8E, 0xCC, 0x45, 0x63, 0x1D, -0x43, 0x5D, 0x37, 0x83, 0x9A, 0x43, 0x6C, 0x98, 0xEE, 0xED, -0x25, 0x05, 0x14, 0x14, 0x17, 0x63, 0x37, 0x9B, 0xB1, 0xAA, -0x06, 0x2A, 0xC6, 0x34, 0xAA, 0x22, 0x3A, 0x86, 0xE1, 0xD9, -0xAB, 0xF2, 0x92, 0xB5, 0x85, 0xAB, 0xB4, 0xAD, 0xCE, 0xD6, -0xCB, 0xD1, 0xAF, 0x98, 0x5E, 0x08, 0xD1, 0x52, 0xD7, 0x8C, -0x6D, 0x6C, 0x8C, 0x78, 0x5F, 0x1F, 0x3E, 0x45, 0xA1, 0xEE, -0xD8, 0x1B, 0xAE, 0x44, 0x26, 0xBA, 0xF4, 0xDA, 0x17, 0x97, -0xEF, 0x29, 0x53, 0x73, 0x77, 0x87, 0xEE, 0xDD, 0x1B, 0x1E, -0xE8, 0xED, 0x4A, 0x2D, 0x29, 0x71, 0x35, 0x6E, 0x6A, 0xDE, -0x59, 0x7B, 0xEB, 0xE8, 0xCF, 0x51, 0x03, 0x01, 0xF6, 0x1E, -0x38, 0xC0, 0x77, 0xF6, 0xEE, 0xE5, 0xE6, 0xCC, 0x24, 0x8A, -0xDB, 0x8D, 0xB3, 0x6C, 0x19, 0x81, 0x8F, 0xFE, 0x72, 0x41, -0xC6, 0x5B, 0x1C, 0x68, 0xD9, 0xBC, 0xF1, 0x75, 0xAF, 0xE6, -0xC1, 0x96, 0x31, 0xA3, 0xC4, 0x53, 0x6C, 0xD9, 0xB1, 0x9D, -0xDC, 0x7B, 0xEF, 0x51, 0x11, 0x89, 0xE0, 0x9E, 0x09, 0x53, -0xFD, 0x93, 0x23, 0x3E, 0xA7, 0xB7, 0xB0, 0x6E, 0x74, 0xCA, -0x5F, 0x91, 0x33, 0x64, 0x6B, 0xD6, 0x3C, 0x5B, 0xBB, 0xE5, -0xBB, 0xCD, 0xDB, 0x97, 0x89, 0xB7, 0xDF, 0x21, 0x7C, 0xFE, -0x3C, 0x95, 0x66, 0x33, 0xAD, 0x97, 0x2E, 0x71, 0x7D, 0x60, -0x90, 0xF4, 0xE4, 0x30, 0xDE, 0xF4, 0x1C, 0xB9, 0x54, 0x82, -0xEE, 0xCF, 0xFF, 0xF6, 0xAA, 0x1C, 0x1C, 0x1B, 0x4B, 0x34, -0x6F, 0xD8, 0xB0, 0xEF, 0xD9, 0xF5, 0xCF, 0x95, 0x44, 0x63, -0x09, 0x52, 0x06, 0x05, 0x4F, 0x61, 0x11, 0x6B, 0x9E, 0xDF, -0x4C, 0xF9, 0xE0, 0x20, 0x56, 0xBB, 0x1D, 0xF1, 0x20, 0xC8, -0xB2, 0x95, 0xAB, 0xD8, 0xD4, 0xBC, 0xD5, 0xD9, 0x50, 0xBB, -0xC1, 0x55, 0x91, 0x43, 0x32, 0xBE, 0x7F, 0x16, 0x77, 0xFB, -0x65, 0x4A, 0x10, 0xAC, 0xBC, 0x70, 0x81, 0x70, 0xD1, 0x12, -0xC2, 0xA1, 0x00, 0x06, 0xA7, 0x87, 0xD2, 0xA5, 0xC5, 0xCC, -0x75, 0xDD, 0xBA, 0x72, 0xF2, 0xD4, 0x3B, 0x67, 0x25, 0x80, -0xDD, 0xAD, 0x5B, 0xAB, 0x4E, 0xBE, 0xFB, 0xC7, 0x89, 0xD9, -0x64, 0x08, 0x6D, 0x6C, 0x8A, 0x84, 0xAB, 0x9C, 0xFA, 0xDA, -0xD5, 0x54, 0x44, 0x16, 0x90, 0x7B, 0x7A, 0xC0, 0xE3, 0x81, -0xA2, 0x22, 0x44, 0x3E, 0x0F, 0xBA, 0x8E, 0x94, 0xCD, 0xC2, -0x84, 0x1F, 0x22, 0x51, 0xC4, 0xCB, 0x2F, 0x33, 0x57, 0xEC, -0x65, 0x3C, 0xF8, 0x10, 0x39, 0x9D, 0xC1, 0x6C, 0xCC, 0x63, -0xB2, 0x5B, 0xA9, 0x5D, 0xDB, 0x60, 0x03, 0xD2, 0x32, 0xC0, -0xC8, 0x78, 0x60, 0xC1, 0x66, 0xB7, 0xCE, 0xEF, 0xDA, 0xB2, -0xF1, 0x85, 0x99, 0x84, 0x15, 0x93, 0x55, 0xC2, 0x98, 0x4F, -0x43, 0x49, 0x19, 0xAE, 0xA6, 0x26, 0xA4, 0xCA, 0xE5, 0x60, -0xB7, 0x23, 0x15, 0x2D, 0x45, 0xF2, 0x15, 0x82, 0xD7, 0x0B, -0x0D, 0xCF, 0x43, 0x6B, 0x2B, 0x29, 0x9B, 0x89, 0x44, 0x22, -0x81, 0xCD, 0x68, 0xC2, 0x6E, 0x72, 0x50, 0xBA, 0xAC, 0x9C, -0xDB, 0xB7, 0x6F, 0xEF, 0xBA, 0x78, 0xF1, 0x93, 0xFB, 0x00, -0xF2, 0xA3, 0xB7, 0xFA, 0xCF, 0x1B, 0x9D, 0x5D, 0xEB, 0x6A, -0x37, 0x59, 0x37, 0x7F, 0xBF, 0xA9, 0xC9, 0xAA, 0x69, 0x84, -0x33, 0x39, 0x12, 0x09, 0x15, 0xC9, 0x20, 0xE1, 0xF1, 0x2D, -0x41, 0x58, 0x2C, 0x20, 0xCB, 0x60, 0xB6, 0x40, 0x81, 0x07, -0xC9, 0xE9, 0x44, 0x59, 0x88, 0x91, 0x4C, 0xA5, 0x30, 0x19, -0x65, 0x6C, 0x76, 0x27, 0x65, 0x15, 0xE5, 0x0C, 0x0D, 0x0F, -0x1F, 0xDA, 0xB6, 0x6D, 0xC7, 0x27, 0x8F, 0xB8, 0xD2, 0x93, -0x0B, 0xD4, 0xD1, 0xD1, 0xBE, 0xA7, 0x61, 0xE7, 0x0F, 0x3E, -0x53, 0x17, 0x14, 0xD2, 0xD9, 0x14, 0x19, 0x4D, 0xC7, 0x63, -0xB4, 0xE0, 0xB3, 0x39, 0x90, 0x2D, 0x66, 0x0C, 0x48, 0xE8, -0x42, 0xA0, 0xE9, 0x39, 0x64, 0x61, 0xC0, 0xE1, 0xB0, 0x3F, -0x7E, 0xFE, 0x3D, 0x49, 0x92, 0xAE, 0x3D, 0xD5, 0x72, 0x0A, -0x21, 0x4E, 0x45, 0x62, 0xD1, 0x45, 0x55, 0xCF, 0x8A, 0xD0, -0x5C, 0x44, 0xCC, 0xCF, 0x2B, 0x22, 0x16, 0x8B, 0x09, 0x35, -0xA9, 0x8A, 0xE4, 0x62, 0x42, 0xE4, 0xF5, 0xAF, 0xA7, 0x32, -0x1E, 0x8F, 0x2B, 0x42, 0x88, 0x5F, 0x3F, 0x0D, 0x53, 0x2A, -0x2F, 0x2F, 0x77, 0x17, 0x14, 0x14, 0x94, 0x78, 0xBD, 0xBE, -0xC2, 0x5D, 0x2F, 0xB4, 0x96, 0xBC, 0x7E, 0xF4, 0x17, 0x87, -0x22, 0xB3, 0x91, 0xFF, 0xB8, 0xFC, 0x37, 0xBB, 0xBB, 0x7B, -0x0E, 0x1F, 0x3E, 0x7C, 0xA4, 0xB6, 0xB6, 0xB6, 0x1A, 0x58, -0x0E, 0xAC, 0x02, 0xAC, 0xDF, 0x82, 0x3E, 0x5E, 0xEA, 0xEB, -0xEB, 0x9D, 0x6E, 0xB7, 0x5B, 0xAE, 0xA9, 0xA9, 0x29, 0xEA, -0xEB, 0x1B, 0xF0, 0x39, 0x5D, 0xF6, 0x54, 0x73, 0x53, 0x8B, -0xBB, 0xBA, 0xBA, 0xB2, 0x50, 0x36, 0x98, 0xDD, 0x66, 0xAB, -0xD5, 0x62, 0xB1, 0x5A, 0x6C, 0x06, 0x60, 0x26, 0x1C, 0x0E, -0x4D, 0x06, 0x83, 0x91, 0x54, 0x2A, 0xE5, 0x6C, 0x6F, 0x6F, -0x8F, 0x3B, 0x1C, 0x8E, 0x69, 0xBB, 0xDD, 0xAE, 0x5C, 0xBF, -0x7E, 0x5D, 0x05, 0x72, 0x8F, 0x98, 0xFF, 0x1A, 0x00, 0xFC, -0x64, 0x6E, 0x7F, 0x37, 0xBA, 0xF4, 0x32, 0x00, 0x00, 0x00, -0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82 -}; - -static const unsigned char Toolbar_Wiimote2_png[] = { -0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, -0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x18, -0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0xE0, -0x77, 0x3D, 0xF8, 0x00, 0x00, 0x05, 0x57, 0x49, 0x44, 0x41, -0x54, 0x78, 0x9C, 0xED, 0x54, 0x69, 0x6C, 0x54, 0x55, 0x18, -0x3D, 0xD3, 0xD9, 0x3A, 0xFB, 0xBC, 0x59, 0xDE, 0x9B, 0x79, -0xAF, 0x33, 0xD3, 0xBE, 0x4E, 0x67, 0x6B, 0xA1, 0x74, 0x99, -0xD2, 0x95, 0x96, 0x62, 0x8B, 0x58, 0x96, 0x4A, 0x82, 0x4D, -0x04, 0xA2, 0x80, 0x80, 0x2C, 0x2A, 0xBB, 0x10, 0xD0, 0x96, -0x88, 0xA1, 0x48, 0x8C, 0x26, 0x04, 0x13, 0xA2, 0x44, 0xB6, -0x44, 0x13, 0xB1, 0x9A, 0x80, 0x85, 0xD0, 0x52, 0x45, 0x04, -0x4C, 0xDC, 0x08, 0x5B, 0x6B, 0x89, 0x11, 0x52, 0x22, 0x4B, -0xCB, 0x56, 0x59, 0x07, 0xDA, 0xCF, 0x3B, 0x13, 0x20, 0xB2, -0x05, 0xE2, 0x6F, 0x4F, 0x72, 0xB7, 0xF7, 0x6E, 0xBE, 0x73, -0xCF, 0xF9, 0xBE, 0x7B, 0x81, 0xFF, 0xF1, 0x04, 0x28, 0xEF, -0x5F, 0x2A, 0x0A, 0x73, 0xF3, 0x0B, 0x5E, 0x96, 0xE5, 0xB4, -0x19, 0x63, 0x9F, 0x1B, 0xB9, 0xF5, 0xB5, 0x59, 0xD3, 0x1B, -0xC6, 0x3C, 0x53, 0xD1, 0x30, 0x61, 0xDC, 0x0B, 0x0D, 0x6E, -0x41, 0xCC, 0x2F, 0xCF, 0xCD, 0xD7, 0xEF, 0xFB, 0xF5, 0xE7, -0x23, 0x6C, 0x63, 0xFF, 0xD3, 0x12, 0x28, 0xEE, 0x4E, 0xBE, -0xDA, 0xDA, 0xB4, 0x76, 0xEA, 0x8C, 0xD9, 0x33, 0x7B, 0xBA, -0xFF, 0xC2, 0xE2, 0x45, 0x2B, 0xD0, 0xF8, 0xDE, 0x4A, 0x8C, -0xA8, 0xA9, 0x86, 0x56, 0xA7, 0x45, 0xD0, 0x2B, 0xA1, 0xF1, -0xFD, 0xD5, 0x38, 0xF0, 0x5D, 0x2B, 0xDA, 0x3B, 0x3B, 0x71, -0xE5, 0xCA, 0x95, 0x0E, 0x91, 0xE7, 0xCB, 0xC6, 0x4D, 0x9C, -0xDC, 0xF3, 0x54, 0x0A, 0x88, 0xE8, 0xDB, 0x50, 0x24, 0x3C, -0x6E, 0xD1, 0xC2, 0xF9, 0x98, 0xBF, 0xE0, 0x75, 0x7C, 0xD9, -0xF4, 0x19, 0x0E, 0xB7, 0x1F, 0x42, 0x67, 0xFB, 0x11, 0xD8, -0xCC, 0x02, 0x23, 0xD1, 0x61, 0xE6, 0xDC, 0x79, 0x58, 0xB1, -0xF2, 0x5D, 0xE8, 0x92, 0x00, 0xC1, 0x95, 0xE2, 0x70, 0x38, -0xB8, 0x45, 0xB9, 0x05, 0x79, 0xC3, 0xB7, 0x6F, 0xDF, 0xF1, -0x05, 0x0B, 0x71, 0xF3, 0x71, 0x04, 0x2A, 0x51, 0x14, 0xC7, -0xB0, 0xB1, 0xE2, 0x78, 0xC7, 0x61, 0xE8, 0x8C, 0x46, 0x98, -0xF5, 0x16, 0xAC, 0x5F, 0xBF, 0x21, 0xD1, 0x0E, 0xEC, 0x3F, -0x80, 0xA9, 0xD3, 0xA7, 0x61, 0xE3, 0xA6, 0xDD, 0x89, 0xCD, -0x26, 0xBD, 0x29, 0x7E, 0x18, 0xFC, 0x76, 0xF0, 0x08, 0x38, -0x5E, 0x87, 0xE9, 0x85, 0x83, 0x8B, 0x24, 0xA7, 0xE7, 0xF2, -0xA8, 0xB1, 0xB5, 0x93, 0xD8, 0xEF, 0x0D, 0x8F, 0x54, 0xA0, -0xD7, 0xD9, 0x3B, 0x16, 0x2C, 0x9C, 0x03, 0xBD, 0x91, 0xC3, -0xB9, 0xD3, 0x67, 0xC0, 0x09, 0x76, 0x9C, 0x3E, 0x75, 0x0A, -0xAD, 0xBB, 0xBE, 0x41, 0x49, 0x71, 0x29, 0xE6, 0xCC, 0x9D, -0x8B, 0x86, 0x86, 0x06, 0xD4, 0x8C, 0x1A, 0x8E, 0xA5, 0x4B, -0x96, 0xE2, 0xEC, 0xE9, 0xD3, 0x30, 0x5B, 0x0D, 0x30, 0xA8, -0x2C, 0xE8, 0xE9, 0xBD, 0x8C, 0x68, 0x41, 0x01, 0x74, 0x06, -0x43, 0x6D, 0x6B, 0x4B, 0xCB, 0x46, 0x16, 0xEF, 0xD2, 0x43, -0x39, 0x50, 0x42, 0x4B, 0x53, 0xA6, 0xBD, 0x84, 0x75, 0xEB, -0xD6, 0x25, 0x3E, 0xB4, 0xB5, 0xED, 0x81, 0xA2, 0x2F, 0x86, -0xFC, 0xC2, 0x22, 0x5C, 0xBF, 0x71, 0x13, 0xDD, 0xA7, 0xCE, -0xC0, 0xCA, 0x5B, 0x20, 0x49, 0x29, 0xB8, 0x7C, 0xE9, 0x02, -0x8E, 0xB6, 0x77, 0x80, 0xE7, 0x39, 0x24, 0x91, 0x16, 0x7D, -0xB7, 0xFA, 0x91, 0x11, 0xF6, 0xA3, 0xA3, 0xF3, 0x38, 0x72, -0x06, 0x66, 0xE3, 0xC6, 0xCD, 0xEB, 0x8A, 0x07, 0x09, 0x92, -0x86, 0x8F, 0x2C, 0x9F, 0xF8, 0xF9, 0xE6, 0xAD, 0x90, 0xFD, -0x32, 0x4E, 0x9C, 0x38, 0x8E, 0xCA, 0xCA, 0x72, 0x0C, 0xAD, -0xAA, 0x82, 0x52, 0xA9, 0x82, 0x5A, 0x45, 0xE0, 0x44, 0x3B, -0xFA, 0xFA, 0x08, 0xC7, 0x3B, 0x8F, 0xA2, 0xAB, 0xAB, 0x0B, -0xC6, 0x64, 0x1D, 0x62, 0xD7, 0x62, 0xB8, 0x41, 0x97, 0x61, -0xB1, 0x5B, 0x13, 0x41, 0x7E, 0xFA, 0x71, 0x1F, 0x4A, 0xA3, -0xE5, 0x70, 0x72, 0xDE, 0xDE, 0x87, 0x08, 0x9A, 0xB7, 0xEF, -0xDA, 0x92, 0xE1, 0x4F, 0x8B, 0x65, 0xF8, 0x22, 0x28, 0x2A, -0xAC, 0x42, 0xED, 0xE8, 0x91, 0xF8, 0x7E, 0xEF, 0x5E, 0xE8, -0xF5, 0xC9, 0xE0, 0x38, 0x07, 0x44, 0xC1, 0x05, 0xAF, 0xD7, -0x83, 0x74, 0x39, 0x02, 0x39, 0x3D, 0x00, 0xA3, 0x59, 0x09, -0x93, 0x51, 0x87, 0x48, 0x46, 0x0E, 0x53, 0xE2, 0xC0, 0xAA, -0xC6, 0x77, 0xD1, 0xF0, 0xCE, 0x6A, 0x6C, 0xD8, 0xBC, 0x09, -0xC3, 0x2A, 0xCB, 0x4C, 0x1A, 0x7D, 0xF2, 0x8C, 0xFB, 0x08, -0xE2, 0x9D, 0xDE, 0x68, 0xA8, 0xD7, 0x6A, 0x81, 0xB2, 0x92, -0x62, 0x6C, 0x6B, 0x6E, 0x43, 0xF9, 0x90, 0x21, 0x50, 0x28, -0x14, 0x98, 0x35, 0x7B, 0x16, 0xDE, 0xAE, 0xAF, 0x47, 0x3B, -0xB3, 0xA5, 0x8F, 0x62, 0x50, 0x6B, 0x14, 0x70, 0x58, 0x79, -0x5C, 0xB8, 0x78, 0x91, 0xE5, 0xA5, 0x1E, 0x2E, 0x97, 0x1B, -0x8B, 0x97, 0x2C, 0x83, 0x2A, 0x49, 0x89, 0x3F, 0xBB, 0x4E, -0x62, 0xF9, 0xF2, 0x65, 0x70, 0x5A, 0xC5, 0x8F, 0x58, 0x48, -0xF5, 0xBD, 0x1C, 0xDC, 0x9D, 0x78, 0x7D, 0x72, 0x4C, 0x74, -0xDA, 0xD4, 0x7D, 0x49, 0x0A, 0x3C, 0x5F, 0x3B, 0x16, 0x8D, -0xAB, 0x57, 0x41, 0x11, 0x53, 0xB3, 0xCA, 0xD1, 0xE3, 0x54, -0xF7, 0xC9, 0xC7, 0x55, 0x21, 0xB2, 0xB2, 0x32, 0x71, 0xF3, -0x5A, 0x3F, 0x4C, 0x66, 0x0E, 0x53, 0xA7, 0x4C, 0xC6, 0x0F, -0xFB, 0xF7, 0x60, 0xDB, 0xF6, 0x96, 0x2D, 0xBD, 0x7F, 0x9F, -0x99, 0x78, 0x4F, 0x41, 0x1C, 0x2E, 0x9E, 0x97, 0x0E, 0xFE, -0xCE, 0x2E, 0x29, 0xA9, 0xD1, 0xDC, 0xDC, 0x8C, 0x14, 0xD1, -0x85, 0xEC, 0xDC, 0x6C, 0x8C, 0xAE, 0x1D, 0x83, 0xF1, 0x2F, -0x4E, 0xC2, 0xA0, 0xCC, 0x3C, 0xB8, 0x24, 0x09, 0x0E, 0xBB, -0x1D, 0x16, 0x8B, 0x85, 0xD9, 0x23, 0xC0, 0xC5, 0xF6, 0x5C, -0x38, 0x7F, 0x0E, 0x4A, 0x4D, 0x12, 0xCE, 0xF6, 0x9C, 0xC4, -0xDC, 0x37, 0xE7, 0xE1, 0x7A, 0xEF, 0x35, 0xE4, 0x46, 0x23, -0x13, 0x1E, 0xCA, 0x45, 0xBC, 0x2B, 0x2D, 0x2C, 0x9B, 0xAC, -0xD6, 0x24, 0x53, 0x30, 0x14, 0xA2, 0x9A, 0xEA, 0x51, 0x54, -0x57, 0x5B, 0x47, 0x65, 0x85, 0x95, 0x94, 0x9F, 0x17, 0xA5, -0xEA, 0xCA, 0x6A, 0xCA, 0xCD, 0x29, 0x21, 0x97, 0x24, 0x92, -0xD3, 0xC9, 0x91, 0xD5, 0x6A, 0x23, 0x93, 0xC9, 0x48, 0x0E, -0x07, 0x4F, 0x3E, 0x9F, 0x87, 0x42, 0xC1, 0x2C, 0x8A, 0x44, -0xC2, 0x14, 0x0A, 0x67, 0x51, 0xF5, 0xD0, 0x11, 0x54, 0x54, -0xC2, 0x7C, 0x7E, 0x00, 0xAA, 0x84, 0x55, 0x5E, 0xDF, 0x4C, -0xAD, 0x5A, 0x4B, 0xA9, 0xE9, 0x11, 0xCA, 0x1C, 0x10, 0xA5, -0x57, 0x5F, 0x99, 0x46, 0xCB, 0x16, 0xBD, 0x45, 0x75, 0x75, -0x13, 0x28, 0x1A, 0x2D, 0x23, 0x59, 0xF6, 0x92, 0xCD, 0x61, -0x23, 0x1B, 0x67, 0x23, 0xA6, 0x84, 0x5C, 0x2E, 0x17, 0x79, -0x3C, 0x3E, 0x4A, 0x4F, 0x4B, 0xA3, 0x60, 0x24, 0x42, 0x81, -0xF4, 0x4C, 0x1A, 0x52, 0x5A, 0x45, 0xC5, 0x05, 0xC5, 0x6D, -0xF7, 0xE5, 0xE0, 0x0E, 0x58, 0xAA, 0x11, 0xF3, 0xF9, 0x52, -0xDF, 0x38, 0x7F, 0xBE, 0xFB, 0x03, 0x9E, 0xB7, 0xC1, 0x60, -0x70, 0x63, 0x60, 0x38, 0x13, 0xD9, 0x83, 0x07, 0xE0, 0x8F, -0x43, 0x1D, 0xF8, 0x7A, 0xE7, 0x0E, 0x66, 0x63, 0x3F, 0x6E, -0xF5, 0x5F, 0x65, 0x4F, 0x5E, 0x5C, 0x38, 0x41, 0xA7, 0x33, -0x41, 0xAB, 0xD5, 0xB1, 0xD2, 0x66, 0x6F, 0x20, 0xA9, 0x60, -0x73, 0x58, 0xC0, 0xE9, 0x4D, 0xBF, 0xEC, 0x6C, 0x6B, 0xC9, -0x7F, 0xE8, 0x62, 0x44, 0xB2, 0x22, 0xFC, 0xB1, 0x23, 0xC7, -0x2E, 0xB9, 0x05, 0x57, 0x4D, 0xF7, 0x85, 0x9E, 0x26, 0x93, -0x5E, 0x07, 0xA7, 0xCB, 0x8B, 0xBC, 0xEC, 0xC1, 0x88, 0x66, -0x47, 0xB0, 0xE6, 0x93, 0x8F, 0x71, 0xED, 0xC6, 0x55, 0xDC, -0x8E, 0xB1, 0x76, 0x9B, 0xC9, 0x56, 0xA9, 0x58, 0x70, 0x4D, -0xE2, 0xDE, 0x68, 0x34, 0xEC, 0x7C, 0x4A, 0x82, 0xD9, 0x68, -0x81, 0xCD, 0x60, 0xED, 0xDD, 0xBD, 0xB7, 0xD5, 0xF2, 0xC8, -0xCA, 0xD0, 0x6A, 0xB4, 0xBC, 0xE0, 0x72, 0x9B, 0x7C, 0x9E, -0xB4, 0x42, 0x95, 0x2A, 0xE9, 0x56, 0xB2, 0x4E, 0x43, 0x19, -0xA1, 0x81, 0x34, 0x65, 0xFC, 0x64, 0x2A, 0x1F, 0x5A, 0x43, -0x82, 0xDB, 0x43, 0x76, 0xBB, 0x95, 0xF9, 0xEF, 0x20, 0x9B, -0xCD, 0x42, 0x92, 0x24, 0x51, 0x6A, 0xAA, 0x9F, 0xD2, 0xE4, -0x74, 0xF2, 0xFB, 0x83, 0x94, 0x97, 0x9D, 0x47, 0xC5, 0x45, -0x25, 0x9F, 0x3E, 0xB6, 0xF4, 0xEE, 0x20, 0xD9, 0xEE, 0xE4, -0xA4, 0x38, 0x1F, 0xCF, 0xF3, 0x2B, 0xE3, 0x5E, 0x18, 0x8C, -0x66, 0xAA, 0x28, 0xAF, 0xA0, 0x70, 0x38, 0x44, 0x82, 0x20, -0x30, 0xFF, 0x79, 0x96, 0xF0, 0xF8, 0x28, 0x32, 0x82, 0x34, -0xF2, 0xCB, 0x7E, 0x0A, 0xB0, 0x02, 0x09, 0x85, 0x22, 0x17, -0x9F, 0x14, 0xFC, 0x2E, 0x94, 0x5A, 0xAD, 0x3A, 0x24, 0xB9, -0x45, 0x21, 0x27, 0x27, 0x1A, 0x60, 0xC9, 0x6C, 0x34, 0xE8, -0x8C, 0xC4, 0xD9, 0xB8, 0xC4, 0xE9, 0xD9, 0x45, 0x23, 0xB7, -0xDB, 0x45, 0xA2, 0xE8, 0x4D, 0x28, 0xF0, 0xC5, 0x49, 0xD2, -0x83, 0x4D, 0xE1, 0x81, 0x03, 0x4C, 0x35, 0xC3, 0x9E, 0xB5, -0x3D, 0x2D, 0x09, 0x0C, 0x7A, 0xA3, 0x9D, 0xB3, 0x99, 0xA3, -0x72, 0x6A, 0x50, 0x64, 0x4B, 0x5D, 0x4A, 0x8A, 0x94, 0xC1, -0xCA, 0x74, 0x8E, 0xD5, 0x6A, 0xFD, 0x90, 0x29, 0x59, 0x23, -0x08, 0xEE, 0xB5, 0x92, 0xE4, 0x9B, 0x1D, 0x08, 0x04, 0xF8, -0x50, 0x28, 0x2C, 0x06, 0x33, 0xB2, 0xC2, 0x4F, 0x1D, 0xFC, -0xDF, 0xB0, 0x58, 0x6D, 0xBC, 0xC7, 0x93, 0x32, 0x88, 0x59, -0x12, 0x62, 0xE5, 0xE9, 0xF0, 0x78, 0x24, 0x07, 0xB3, 0xCF, -0xCA, 0x4E, 0x6F, 0x97, 0xE5, 0x80, 0x43, 0x96, 0xE5, 0xEC, -0x60, 0x38, 0xD3, 0xFB, 0x9F, 0x82, 0x3F, 0x02, 0x5A, 0xA6, -0xC0, 0xC4, 0x71, 0x16, 0xBD, 0x20, 0x88, 0xA6, 0xB8, 0xB2, -0x47, 0x6D, 0xFA, 0x07, 0xB6, 0x5C, 0xA9, 0xA4, 0x39, 0x43, -0x02, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, -0xAE, 0x42, 0x60, 0x82 -}; - -#endif - diff --git a/Source/Core/DolphinWX/resources/toolbar_browse.c b/Source/Core/DolphinWX/resources/toolbar_browse.c deleted file mode 100644 index 1f2c0368dc..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_browse.c +++ /dev/null @@ -1,303 +0,0 @@ -static const unsigned char toolbar_browse_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, 0x14, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x37, -0x2f, 0x30, 0x34, 0x6b, 0xeb, 0x0c, 0x3b, 0x00, 0x00, 0x0d, 0x67, 0x49, -0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x6b, 0x6c, 0x5c, 0xd7, 0x71, -0xc7, 0x7f, 0xe7, 0xdc, 0xe7, 0x3e, 0xb9, 0x94, 0x44, 0xbd, 0x2c, 0x59, -0xb4, 0x1d, 0x07, 0xae, 0x15, 0xcb, 0x8c, 0x1b, 0x07, 0x89, 0xfb, 0x30, -0x8d, 0xe6, 0x4b, 0x01, 0x07, 0x16, 0x90, 0x0f, 0xaa, 0x11, 0xb4, 0x92, -0x11, 0x34, 0xfa, 0x50, 0xa0, 0x56, 0x9a, 0xf6, 0x83, 0xe1, 0xc6, 0xa2, -0x13, 0xa4, 0x89, 0x61, 0x3b, 0xb6, 0xf3, 0x4d, 0x42, 0x52, 0x4b, 0x49, -0x1c, 0x47, 0x68, 0x0b, 0xdb, 0x40, 0xd1, 0x3a, 0x68, 0x0a, 0x33, 0x45, -0x5a, 0xa7, 0x8e, 0x1f, 0xb4, 0x1d, 0xcb, 0x0f, 0x89, 0x12, 0x25, 0x5a, -0xa4, 0x44, 0x8a, 0xe2, 0x63, 0x49, 0xee, 0xee, 0xbd, 0xf7, 0xcc, 0xf4, -0xc3, 0x5d, 0x52, 0x0f, 0x4b, 0xa2, 0x02, 0xb1, 0x2d, 0x32, 0xc0, 0xe1, -0x1e, 0xec, 0xf2, 0x9e, 0xf9, 0xff, 0xcf, 0xcc, 0x9c, 0x33, 0x33, 0xbb, -0x46, 0x55, 0xf9, 0x6d, 0x16, 0xfb, 0xff, 0x0d, 0xe0, 0x6a, 0xc5, 0xff, -0xdf, 0x58, 0xf4, 0x5f, 0xbf, 0x65, 0x6a, 0x22, 0x3c, 0x29, 0xc2, 0x76, -0x11, 0x10, 0x61, 0x40, 0x94, 0xaf, 0x7c, 0xe1, 0xeb, 0xda, 0xbf, 0xdc, -0xba, 0xcc, 0x72, 0xbb, 0xd0, 0x4f, 0x1f, 0x31, 0x35, 0x11, 0x5e, 0x12, -0xa1, 0x47, 0x04, 0x44, 0xa1, 0x4d, 0x02, 0x11, 0xee, 0x7b, 0xe7, 0x10, -0xfb, 0xfa, 0x0e, 0x2c, 0x9f, 0xce, 0x65, 0x77, 0x21, 0x03, 0x4f, 0x1b, -0xe8, 0x31, 0x06, 0xe2, 0xb2, 0x21, 0x8a, 0xcc, 0xb9, 0x1f, 0x3e, 0xfd, -0x3b, 0x1f, 0x63, 0x2b, 0xec, 0x5d, 0x3e, 0x7d, 0xcb, 0x69, 0x81, 0x9f, -0x3d, 0x6a, 0xee, 0x17, 0xe1, 0x49, 0x51, 0xe8, 0xea, 0x36, 0x74, 0xac, -0xb6, 0x64, 0x2d, 0xc3, 0x89, 0xc3, 0xca, 0xd4, 0xb8, 0x20, 0xaa, 0x88, -0x30, 0x25, 0xc2, 0x75, 0xf7, 0x7e, 0x4b, 0xa7, 0x96, 0x43, 0xe7, 0xb2, -0x59, 0xe0, 0xa5, 0xc7, 0x4d, 0x0d, 0x43, 0x1f, 0x06, 0x56, 0x6c, 0x30, -0x6c, 0xd8, 0x72, 0x17, 0xd7, 0xff, 0xe1, 0xbf, 0xd0, 0xfd, 0xfb, 0xdf, -0xe3, 0xda, 0x5b, 0x36, 0x11, 0x95, 0x3c, 0xc0, 0x00, 0xd4, 0x80, 0xfb, -0x97, 0xcb, 0x0a, 0xcb, 0x46, 0x40, 0xe1, 0x69, 0x94, 0x5a, 0x10, 0xc1, -0x35, 0xb7, 0xdc, 0xc4, 0x9a, 0x9b, 0x1f, 0xc1, 0xfa, 0x1d, 0xc4, 0x95, -0x1b, 0xd9, 0xf8, 0xbb, 0x7d, 0xac, 0xd9, 0x54, 0xc0, 0xd8, 0x45, 0x75, -0xbb, 0x86, 0x0e, 0x7e, 0xb0, 0x2c, 0x7a, 0x97, 0x85, 0x40, 0xff, 0x13, -0xa6, 0x17, 0xd8, 0x0a, 0x70, 0x6d, 0x0f, 0x74, 0xdd, 0xf8, 0x30, 0xf9, -0x01, 0xe7, 0x33, 0x7d, 0xea, 0x75, 0x8e, 0xfc, 0xea, 0x51, 0x2a, 0xab, -0x2a, 0x94, 0x3a, 0x42, 0x30, 0xb9, 0x15, 0xfe, 0x73, 0xff, 0xe3, 0xf7, -0x2c, 0x87, 0x15, 0x96, 0x85, 0x80, 0x2a, 0xbb, 0x55, 0xa1, 0xdc, 0x05, -0x6b, 0x37, 0xff, 0x05, 0x61, 0x71, 0x33, 0xe0, 0xd3, 0xac, 0x1f, 0x67, -0x68, 0xe0, 0xbb, 0x38, 0xb1, 0x88, 0xad, 0xd1, 0xb5, 0xb1, 0x82, 0x35, -0x8b, 0x27, 0xf7, 0xd6, 0xe5, 0xd0, 0x7d, 0xd5, 0x04, 0xfa, 0x9f, 0x30, -0xbd, 0x28, 0xbd, 0x00, 0x1b, 0x7b, 0xaa, 0x14, 0x57, 0x7c, 0x89, 0x85, -0xdd, 0x1f, 0x3e, 0xf8, 0x14, 0x4a, 0x08, 0xb6, 0x00, 0xb6, 0x4a, 0xa5, -0xab, 0x83, 0xb8, 0x12, 0xa2, 0x18, 0x14, 0xb6, 0x8e, 0x0d, 0x8f, 0x5c, -0xad, 0xfa, 0xab, 0x27, 0xa0, 0xca, 0x6e, 0x51, 0x08, 0x4a, 0xd0, 0x75, -0xc3, 0x97, 0x30, 0x76, 0x05, 0xe0, 0x33, 0x31, 0xfc, 0xf7, 0x34, 0x67, -0x8f, 0x81, 0x09, 0xc0, 0xc6, 0xe0, 0x95, 0xc0, 0xab, 0xd1, 0xb9, 0xb6, -0x84, 0xb5, 0x1e, 0x28, 0xb5, 0x17, 0x9f, 0x7a, 0xb8, 0xe7, 0x6a, 0xdd, -0xe8, 0xaa, 0x08, 0xbc, 0xf4, 0x1d, 0xd3, 0xab, 0x4a, 0xaf, 0x2a, 0x74, -0xdf, 0xde, 0x41, 0x50, 0xde, 0x09, 0xf8, 0x88, 0x9b, 0x67, 0xfa, 0xd4, -0x01, 0x8c, 0xb5, 0x18, 0xeb, 0x61, 0xbd, 0x00, 0xeb, 0x17, 0xb0, 0x7e, -0x95, 0x55, 0x1b, 0x6a, 0x18, 0x7f, 0xd1, 0x8d, 0x6e, 0xbd, 0x2a, 0xf4, -0xfc, 0x86, 0xa9, 0x44, 0xff, 0x77, 0x4c, 0x2f, 0x50, 0x53, 0xe8, 0x41, -0x41, 0x94, 0x3b, 0x55, 0xc1, 0x0b, 0x61, 0xfd, 0xe6, 0x3f, 0xc6, 0x98, -0x15, 0x80, 0x63, 0x7e, 0x72, 0x3f, 0xe8, 0x0c, 0xc6, 0xab, 0x61, 0x14, -0x8c, 0xb5, 0x78, 0x9e, 0x8f, 0x31, 0x05, 0x82, 0x42, 0x99, 0x4a, 0x2d, -0xe6, 0x4c, 0xa3, 0x85, 0xa2, 0x3b, 0x9e, 0xfe, 0xab, 0x9d, 0x9d, 0x22, -0x3b, 0x07, 0x44, 0x98, 0xfa, 0xf3, 0xef, 0xea, 0x00, 0x40, 0xdf, 0x36, -0x73, 0x9e, 0xde, 0xcb, 0xdd, 0xdc, 0x97, 0xbd, 0xc8, 0x7e, 0xf6, 0xa8, -0xe9, 0x31, 0x86, 0x1d, 0xc0, 0x9d, 0xc6, 0xd0, 0xb3, 0xf0, 0xfe, 0xc2, -0x23, 0xaa, 0xf9, 0xd8, 0xd0, 0x03, 0x37, 0x7d, 0xee, 0x17, 0x18, 0x7b, -0x33, 0x2a, 0x67, 0x98, 0x18, 0xba, 0x9d, 0xb9, 0x69, 0x47, 0x63, 0xbe, -0x46, 0x96, 0xae, 0xc4, 0x8f, 0x56, 0xe2, 0x07, 0x45, 0xac, 0x51, 0xc8, -0x26, 0x38, 0x3d, 0x74, 0x94, 0x0f, 0xde, 0x18, 0x27, 0x4b, 0xb3, 0x0b, -0x53, 0x8d, 0x85, 0xbc, 0xe9, 0x4d, 0x11, 0x06, 0x44, 0x78, 0xde, 0x16, -0x57, 0x0f, 0xc5, 0xc5, 0x02, 0x23, 0x47, 0x8e, 0x5d, 0x94, 0xcc, 0x45, -0x2d, 0xf0, 0xe2, 0xb7, 0xcd, 0x0e, 0x63, 0xd8, 0x6d, 0xa0, 0xdb, 0x18, -0xc0, 0x80, 0x39, 0xe7, 0x39, 0x6d, 0xff, 0x51, 0xcd, 0xe7, 0x1b, 0x7b, -0xb6, 0x60, 0xec, 0x27, 0x01, 0x47, 0x96, 0xbc, 0x08, 0xcc, 0xe0, 0xf9, -0x05, 0x7c, 0x3f, 0x03, 0x4d, 0x30, 0xb4, 0x40, 0xbd, 0xfc, 0x08, 0x35, -0x96, 0x8e, 0xae, 0x02, 0x7e, 0x18, 0x21, 0x02, 0x9a, 0xb9, 0xb3, 0x0b, -0xe5, 0xd2, 0x83, 0xd2, 0x83, 0xb2, 0x1d, 0x78, 0x22, 0x9b, 0x1d, 0x1b, -0x98, 0x99, 0x61, 0x7f, 0x31, 0x66, 0xdf, 0xa7, 0xef, 0xbe, 0x7b, 0x2a, -0x8f, 0x99, 0x2f, 0x5f, 0xdc, 0x02, 0x7d, 0xdb, 0x0c, 0xb7, 0x6f, 0xe1, -0x39, 0x63, 0xd8, 0x6a, 0x4c, 0x5b, 0x9f, 0x81, 0x6a, 0x17, 0x94, 0x56, -0x40, 0x5c, 0x85, 0x4a, 0x17, 0xc4, 0xd5, 0xdf, 0xa3, 0xb2, 0xc6, 0x60, -0x3d, 0x83, 0xb1, 0x9d, 0x60, 0xfe, 0x12, 0x63, 0xff, 0x00, 0x48, 0x69, -0x4c, 0x7c, 0x86, 0x46, 0xfd, 0x20, 0x49, 0x23, 0xa6, 0xd5, 0x28, 0x92, -0x26, 0x1d, 0x60, 0x6b, 0x18, 0x53, 0xc0, 0x5a, 0x8b, 0x71, 0x4d, 0x34, -0x9d, 0x42, 0x9a, 0x93, 0x04, 0xd1, 0x6a, 0x20, 0x60, 0xae, 0x9e, 0x31, -0x3b, 0x7e, 0x8a, 0x99, 0xf1, 0x71, 0xea, 0xb3, 0x86, 0xb9, 0xa6, 0x61, -0x6e, 0xde, 0x30, 0xdf, 0x50, 0x44, 0x14, 0x27, 0x20, 0x4e, 0xa7, 0x44, -0x78, 0xf8, 0xde, 0x07, 0xbe, 0xfa, 0x64, 0xf7, 0xcd, 0x8f, 0x7d, 0x94, -0x40, 0xdf, 0x36, 0xc3, 0x6d, 0x9f, 0x60, 0xb7, 0x31, 0xf4, 0x59, 0x03, -0x61, 0xd1, 0xb0, 0xee, 0x63, 0xb0, 0xea, 0xba, 0xf5, 0x94, 0x57, 0x7f, -0x8e, 0xb0, 0x74, 0x07, 0x41, 0xe1, 0x0e, 0x8c, 0x5d, 0xd5, 0x36, 0x5c, -0x70, 0xc1, 0x48, 0x11, 0xf7, 0x1a, 0x8d, 0xf1, 0xcf, 0x92, 0xb4, 0x2c, -0x59, 0x2b, 0x20, 0x69, 0x46, 0x64, 0x69, 0x09, 0x91, 0x32, 0x86, 0x08, -0x55, 0x83, 0x91, 0x0c, 0x49, 0xe7, 0xd1, 0x64, 0x8e, 0x35, 0x9b, 0xef, -0xa7, 0xbc, 0xf6, 0x36, 0x20, 0x5d, 0x1c, 0x73, 0xa7, 0x8f, 0x30, 0x37, -0x71, 0x9c, 0xe9, 0x91, 0xc3, 0x8c, 0x0d, 0x1e, 0x64, 0x62, 0xbc, 0xce, -0xd0, 0xf1, 0x84, 0xc6, 0x7c, 0x86, 0x88, 0x22, 0xc2, 0xbe, 0x07, 0x9f, -0xd9, 0x73, 0xdf, 0x82, 0x15, 0xce, 0x23, 0xf0, 0xc9, 0x9b, 0x99, 0x34, -0x86, 0x5a, 0x47, 0x97, 0x65, 0xe3, 0x96, 0x2a, 0xab, 0x3f, 0xfe, 0x55, -0xca, 0x5d, 0x5b, 0x2f, 0x01, 0x38, 0x40, 0xb2, 0x97, 0xdb, 0x9f, 0x19, -0x54, 0x26, 0x49, 0xe7, 0x9f, 0x22, 0x6d, 0xfc, 0x02, 0xd7, 0x32, 0x64, -0xa9, 0x47, 0x96, 0x04, 0x64, 0x49, 0x84, 0x4a, 0x84, 0x48, 0x00, 0x62, -0xd0, 0xcc, 0x21, 0x59, 0x82, 0x24, 0x2d, 0xc2, 0xd2, 0xc7, 0x29, 0x76, -0x7d, 0x8a, 0xb8, 0xba, 0x11, 0x11, 0x87, 0x8a, 0x23, 0xaa, 0x74, 0x12, -0x57, 0x2b, 0x80, 0x03, 0xe0, 0xe4, 0x7b, 0xaf, 0xf2, 0xe1, 0xab, 0x3f, -0xe5, 0xad, 0x81, 0x31, 0x4e, 0x9d, 0x6a, 0xe1, 0x9c, 0x22, 0xca, 0x5d, -0x0f, 0x3d, 0x9b, 0xd7, 0x16, 0xfe, 0x02, 0x78, 0x00, 0x51, 0x6a, 0x06, -0xc3, 0xea, 0x6e, 0x8f, 0xb5, 0x37, 0x3f, 0x42, 0xb1, 0xf3, 0x53, 0x0b, -0x1e, 0x4f, 0xd6, 0x3a, 0x41, 0x63, 0xe6, 0x3f, 0xc8, 0x5a, 0xaf, 0x90, -0xb5, 0xfe, 0x0b, 0xeb, 0x4f, 0xe3, 0x07, 0x82, 0xb5, 0x8a, 0xb1, 0xed, -0x88, 0x16, 0x50, 0x97, 0xcf, 0x0d, 0x82, 0x25, 0xc3, 0x33, 0x8a, 0xe0, -0x40, 0x3d, 0xc4, 0x81, 0x3a, 0x41, 0x52, 0x87, 0x4b, 0x1d, 0x33, 0x27, -0xdf, 0x62, 0x62, 0xe8, 0x4d, 0x92, 0x96, 0x25, 0x49, 0x7c, 0x32, 0x17, -0xa3, 0xb6, 0x8c, 0x1f, 0x95, 0xe8, 0x58, 0xbb, 0x91, 0x4a, 0xd7, 0x1a, -0x3a, 0x56, 0xaf, 0xe1, 0xc6, 0xbb, 0xfe, 0x84, 0xb4, 0xf9, 0x7d, 0xc6, -0xc6, 0x53, 0xd4, 0x39, 0x54, 0xb9, 0x13, 0x38, 0x4b, 0x00, 0x60, 0xc5, -0xda, 0xd5, 0xa8, 0x8e, 0xe5, 0xc1, 0x89, 0x47, 0xb1, 0x73, 0x0b, 0xa0, -0xb8, 0x6c, 0x96, 0x93, 0x87, 0xbe, 0xc7, 0xcc, 0xe9, 0x7f, 0xc3, 0xf3, -0x1c, 0x9e, 0x9f, 0xe1, 0x05, 0x42, 0x10, 0x14, 0xf1, 0xc3, 0x0c, 0x3f, -0x70, 0x58, 0xcf, 0x61, 0x8d, 0x00, 0x8a, 0x3a, 0xcd, 0x81, 0x8a, 0x82, -0x3a, 0x0c, 0x8a, 0xc1, 0x61, 0xc4, 0xa2, 0x19, 0x48, 0x0a, 0x59, 0x0a, -0x69, 0x4b, 0x49, 0x5b, 0x96, 0x24, 0xf5, 0xc8, 0x5c, 0x80, 0xd3, 0x18, -0xf5, 0x8b, 0x78, 0x51, 0x95, 0xa0, 0x58, 0x21, 0x73, 0x4a, 0x7d, 0x62, -0x9c, 0xb9, 0x89, 0x13, 0x68, 0x6b, 0x9a, 0x20, 0x0c, 0xf2, 0x80, 0xcc, -0xf7, 0x73, 0x31, 0x15, 0x5f, 0x24, 0xe0, 0xf9, 0x1e, 0x22, 0xf4, 0x1b, -0x43, 0x6f, 0x7d, 0x12, 0x26, 0x86, 0x5e, 0x60, 0x65, 0xf7, 0x17, 0x18, -0x7a, 0xe3, 0x51, 0x66, 0xa7, 0x0f, 0x61, 0x6d, 0x8d, 0xcc, 0x09, 0x5e, -0x96, 0x61, 0xb3, 0x94, 0x2c, 0x4b, 0x08, 0xb2, 0x84, 0x20, 0x4c, 0xf0, -0x83, 0x04, 0xcf, 0x66, 0x18, 0xe3, 0x40, 0x04, 0x71, 0x8a, 0x66, 0x8a, -0x4a, 0x7b, 0x64, 0xe0, 0x32, 0x90, 0xcc, 0x90, 0x25, 0x96, 0xac, 0x69, -0x48, 0x5a, 0x3e, 0x69, 0x16, 0x90, 0xba, 0x08, 0x31, 0x05, 0x4c, 0x5c, -0x24, 0x08, 0x2b, 0x84, 0x85, 0x32, 0x51, 0xa9, 0x4c, 0x18, 0x85, 0x18, -0x23, 0x90, 0x29, 0xae, 0xe5, 0x98, 0x98, 0x4c, 0xf3, 0x75, 0x73, 0x03, -0xf7, 0x9f, 0x47, 0xa0, 0xef, 0x80, 0xb2, 0xf7, 0x81, 0x6e, 0x44, 0x19, -0x30, 0x68, 0xef, 0xe8, 0xa0, 0xa3, 0x58, 0xdd, 0x4b, 0xd2, 0xac, 0x33, -0x37, 0x7d, 0x14, 0x6b, 0x2b, 0x60, 0x7d, 0x30, 0x06, 0x51, 0x87, 0xba, -0x14, 0x68, 0x81, 0xce, 0x63, 0xb4, 0x01, 0xda, 0x00, 0xaf, 0x99, 0x9f, -0xf3, 0xaa, 0xb9, 0x22, 0x07, 0x92, 0x81, 0x64, 0xb9, 0x45, 0x24, 0x03, -0x97, 0x1a, 0xb2, 0xd4, 0xd0, 0x4a, 0x03, 0xd2, 0x2c, 0x22, 0xd3, 0x02, -0xf8, 0x45, 0xac, 0x57, 0xc6, 0x0f, 0xcb, 0x84, 0xc5, 0x32, 0x61, 0xa1, -0x48, 0x10, 0x45, 0x58, 0x0b, 0xb8, 0x26, 0xce, 0x35, 0x69, 0xd6, 0xa7, -0x79, 0xf7, 0xdd, 0x79, 0x44, 0x04, 0x55, 0x86, 0xfa, 0x0e, 0xec, 0x79, -0xf3, 0x23, 0x16, 0x18, 0x39, 0x72, 0x8c, 0xea, 0x0d, 0x3c, 0x6f, 0x0c, -0xbb, 0x92, 0x24, 0xe3, 0xe8, 0xaf, 0xe7, 0x51, 0xfe, 0x09, 0xbf, 0xb8, -0x0a, 0xf1, 0x3c, 0xac, 0x57, 0xc0, 0xd8, 0x00, 0x63, 0x0d, 0x18, 0x87, -0xd1, 0x26, 0x4a, 0x84, 0x53, 0x1f, 0x9b, 0x81, 0xa8, 0x03, 0xe3, 0x00, -0x87, 0x64, 0x2c, 0x12, 0x50, 0x77, 0x76, 0xee, 0x32, 0x43, 0x9a, 0x7a, -0x64, 0x59, 0x80, 0xd3, 0x22, 0x78, 0x15, 0xbc, 0xa0, 0x42, 0x10, 0x57, -0x09, 0x0a, 0x25, 0xc2, 0x28, 0xc6, 0x0f, 0x03, 0xac, 0x69, 0x83, 0x6f, -0x4d, 0x31, 0x3b, 0x3e, 0xc2, 0x6b, 0xaf, 0x9e, 0x66, 0x7e, 0xae, 0x85, -0x88, 0x02, 0xec, 0xe2, 0x1c, 0x39, 0x2f, 0x17, 0x8a, 0x37, 0x7c, 0xf6, -0xe7, 0xaa, 0xf4, 0x8b, 0x53, 0x1a, 0xb3, 0x2d, 0x8e, 0x0c, 0x4c, 0xd3, -0x9c, 0x99, 0x20, 0xb0, 0x33, 0x58, 0x93, 0x60, 0x3d, 0x8b, 0x17, 0xc4, -0x04, 0x61, 0x11, 0x3f, 0x2c, 0xe3, 0x79, 0x65, 0xac, 0x29, 0xe6, 0xa7, -0x8c, 0xf3, 0x11, 0x67, 0x91, 0xd4, 0x22, 0x69, 0x7b, 0xf7, 0xdd, 0x39, -0xa3, 0x4d, 0x40, 0x9c, 0x87, 0x12, 0x83, 0x57, 0xc4, 0x8f, 0xaa, 0x44, -0xa5, 0x1a, 0x51, 0xa9, 0x42, 0x5c, 0x2c, 0x11, 0x44, 0x21, 0x16, 0x87, -0xa6, 0x75, 0xd2, 0xfa, 0x28, 0xe3, 0xc7, 0x86, 0xf8, 0xef, 0x97, 0x47, -0x99, 0x3c, 0x3d, 0x87, 0x73, 0x02, 0xca, 0xbe, 0xdd, 0x3f, 0xd9, 0xf3, -0xc2, 0x45, 0x09, 0xf4, 0x1d, 0x50, 0xd2, 0x56, 0x82, 0x08, 0xbb, 0x54, -0x99, 0x12, 0xa7, 0x34, 0x1b, 0x4d, 0x0e, 0xbf, 0x71, 0x86, 0x13, 0xef, -0x9e, 0x80, 0xd6, 0x28, 0x56, 0xcf, 0x60, 0x69, 0x60, 0x11, 0xac, 0x35, -0x58, 0x6b, 0x81, 0xbc, 0x54, 0x54, 0x97, 0x03, 0x77, 0xa9, 0xb6, 0x5d, -0xe7, 0x82, 0x21, 0x06, 0x71, 0x06, 0x55, 0x0f, 0x8c, 0x8f, 0xf5, 0x22, -0xfc, 0x30, 0x26, 0x88, 0x63, 0xc2, 0x28, 0xc4, 0xb3, 0x8a, 0x71, 0xf3, -0xb8, 0xb9, 0x31, 0xe6, 0x4e, 0x1d, 0xe1, 0x9d, 0x57, 0x07, 0x79, 0xe5, -0x97, 0xa3, 0xd4, 0xa7, 0xe7, 0x70, 0xb9, 0xeb, 0x0c, 0xe8, 0xe2, 0xee, -0x5f, 0xe2, 0x26, 0x06, 0x78, 0xe7, 0x97, 0x3b, 0x19, 0x78, 0x6e, 0xef, -0x76, 0x0c, 0xfb, 0x16, 0x52, 0x2a, 0xeb, 0x79, 0x78, 0x61, 0xc4, 0x9a, -0xee, 0x2a, 0x6b, 0xaf, 0x5b, 0x49, 0x50, 0xac, 0x60, 0x6c, 0x88, 0x41, -0x30, 0xcc, 0x62, 0x64, 0x1a, 0x64, 0x06, 0x5c, 0x03, 0x95, 0x16, 0xe2, -0xa4, 0x1d, 0xc0, 0x67, 0x5d, 0x28, 0x4b, 0x0c, 0x49, 0xe2, 0x93, 0x64, -0x25, 0x9c, 0x56, 0xc0, 0xef, 0x24, 0x2a, 0xad, 0x24, 0x88, 0x8b, 0x78, -0x56, 0x21, 0x6b, 0xd0, 0xaa, 0x4f, 0x72, 0xec, 0xc8, 0x38, 0xc7, 0x8e, -0x4c, 0xd1, 0x6a, 0x34, 0x49, 0x33, 0x97, 0x5b, 0x4f, 0x19, 0x50, 0xa1, -0xf7, 0xa1, 0x9f, 0xec, 0x99, 0x3e, 0x17, 0xfc, 0x45, 0x09, 0x00, 0xf4, -0xff, 0xc3, 0xe7, 0xf9, 0xf0, 0x57, 0xff, 0x7c, 0x4f, 0x9b, 0x44, 0x8d, -0x73, 0x89, 0x04, 0x31, 0xab, 0xae, 0x29, 0xb2, 0x62, 0x5d, 0x99, 0xda, -0x9a, 0x02, 0x46, 0x53, 0x54, 0xe6, 0x40, 0xe6, 0x91, 0xb4, 0x89, 0xb8, -0x0c, 0x75, 0x9a, 0x27, 0x7c, 0x92, 0xe7, 0x38, 0x2a, 0x8a, 0x4b, 0x21, -0x4d, 0x7c, 0x52, 0x57, 0x44, 0x4c, 0x15, 0xbc, 0x0e, 0x82, 0x62, 0x27, -0x81, 0xef, 0x31, 0x73, 0x66, 0x92, 0xb1, 0x91, 0xd3, 0x8c, 0x0c, 0xcf, -0xd0, 0x9c, 0x6f, 0x90, 0x26, 0x59, 0x7e, 0xad, 0xe4, 0x7d, 0xa5, 0x01, -0x11, 0x7a, 0x1f, 0x7a, 0xf6, 0xa3, 0xe0, 0x2f, 0x49, 0x20, 0x97, 0xbd, -0xfc, 0xe0, 0x6f, 0x76, 0x6e, 0x32, 0xb0, 0x0f, 0xf2, 0x8a, 0x0b, 0x03, -0x28, 0x58, 0xcf, 0xa7, 0x63, 0x75, 0x89, 0x2d, 0x77, 0x74, 0x21, 0xd9, -0x2c, 0x92, 0xb5, 0x70, 0x2e, 0xc5, 0xa5, 0x0e, 0x97, 0x29, 0x22, 0x06, -0xd4, 0xe4, 0x97, 0x99, 0x51, 0x10, 0x87, 0x3a, 0x21, 0x4d, 0x3c, 0x32, -0x57, 0x40, 0x28, 0x83, 0x5f, 0xc5, 0x8b, 0xaa, 0xf8, 0x1e, 0x1c, 0x7a, -0x67, 0x94, 0x91, 0xe3, 0x63, 0xb4, 0x9a, 0xad, 0x45, 0xe0, 0xed, 0xd7, -0x7d, 0xa2, 0xec, 0xfa, 0xda, 0x8f, 0x2f, 0x0e, 0x7e, 0x09, 0x02, 0x67, -0x89, 0xec, 0xff, 0xeb, 0x9d, 0x77, 0x02, 0x3b, 0xc8, 0xeb, 0xd8, 0x9a, -0xb1, 0x96, 0x5b, 0xee, 0xd8, 0xc4, 0xad, 0x77, 0xef, 0x65, 0x76, 0xec, -0x65, 0xce, 0x1c, 0xfd, 0x47, 0x66, 0x27, 0x0e, 0x93, 0x65, 0x16, 0x27, -0x3e, 0xe0, 0x61, 0x8c, 0xc5, 0x1a, 0xc1, 0x23, 0xc3, 0x68, 0x0a, 0x2e, -0x25, 0x4d, 0xc0, 0xb9, 0x10, 0x67, 0x4a, 0x60, 0x2b, 0xd8, 0xb0, 0x8c, -0xef, 0x5b, 0x26, 0xc7, 0x4e, 0xf3, 0xf6, 0xc0, 0x79, 0x04, 0x86, 0x44, -0xd9, 0xf5, 0xe0, 0x8f, 0xf6, 0xbc, 0x70, 0x29, 0xe0, 0x8b, 0x5e, 0xb1, -0x04, 0x7a, 0xe0, 0xcb, 0x6c, 0x7f, 0x4c, 0x7f, 0xbe, 0xfd, 0xb1, 0x3d, -0xf7, 0x2d, 0xe4, 0xec, 0xd6, 0x28, 0x9b, 0xb6, 0x7c, 0x1e, 0xeb, 0xc7, -0x54, 0xd7, 0xdf, 0x45, 0xd2, 0xc8, 0x68, 0x36, 0x3c, 0x9a, 0xad, 0x98, -0x56, 0x52, 0x26, 0x75, 0x1d, 0x08, 0x1d, 0x28, 0x55, 0x44, 0x4b, 0x88, -0x44, 0x88, 0xf8, 0xed, 0x98, 0x10, 0x34, 0x75, 0x48, 0x96, 0xe6, 0x43, -0xa0, 0x5a, 0x0d, 0x09, 0xa3, 0x76, 0x4e, 0x95, 0x5f, 0x25, 0x4f, 0x5e, -0x09, 0xf8, 0x2b, 0x24, 0x90, 0xcb, 0xf7, 0x77, 0xed, 0xec, 0x51, 0xa5, -0x26, 0x02, 0x6b, 0xaf, 0x29, 0xd1, 0xb1, 0xf1, 0x8f, 0x80, 0x94, 0xfa, -0xd8, 0x6b, 0x4c, 0x9e, 0x3c, 0x46, 0xab, 0x15, 0x93, 0xb9, 0x0a, 0x6a, -0x6b, 0xd8, 0x70, 0x25, 0x26, 0x5c, 0x85, 0x09, 0x3a, 0x51, 0xaf, 0x8c, -0x52, 0x40, 0x24, 0x40, 0xc5, 0xe6, 0x97, 0x9c, 0x38, 0x54, 0x04, 0x11, -0x87, 0x13, 0x30, 0x7e, 0xcc, 0xda, 0x75, 0x05, 0x8c, 0xf5, 0xf2, 0xb0, -0x51, 0x7a, 0xaf, 0xb4, 0x6f, 0x74, 0xc5, 0x04, 0x44, 0xd9, 0xee, 0xda, -0xcd, 0xda, 0x1b, 0x6e, 0xfb, 0x0c, 0x5e, 0x10, 0x03, 0x29, 0xc7, 0x5f, -0x7f, 0x86, 0x24, 0x29, 0x90, 0x69, 0x19, 0xfc, 0x1a, 0x61, 0x61, 0x15, -0x61, 0x69, 0x25, 0x51, 0xb1, 0x13, 0x2f, 0xac, 0x62, 0xfd, 0x12, 0x98, -0x18, 0xd5, 0x10, 0xc9, 0xbc, 0xfc, 0x52, 0x13, 0x45, 0x55, 0x72, 0x5f, -0xc7, 0x82, 0x5f, 0x64, 0xdd, 0xfa, 0x2a, 0x36, 0x08, 0xd0, 0x5c, 0xc7, -0xd6, 0x1f, 0x7c, 0xe3, 0xf1, 0xda, 0x95, 0x14, 0xfc, 0x4b, 0xd6, 0xc4, -0x0b, 0x99, 0xea, 0xfa, 0xd5, 0x79, 0x1f, 0xa7, 0x56, 0x83, 0x6b, 0x7a, -0xee, 0x05, 0x52, 0xa6, 0x47, 0xdf, 0xe5, 0xf4, 0x87, 0xc7, 0x50, 0xaf, -0x8a, 0x17, 0xd6, 0x08, 0x8b, 0x9d, 0x44, 0xe5, 0x6a, 0x9e, 0xc7, 0x68, -0x4a, 0x26, 0x09, 0x99, 0x5a, 0x54, 0xfd, 0xdc, 0x02, 0x78, 0x08, 0x20, -0x6a, 0x40, 0x0c, 0xa8, 0x45, 0xf1, 0xc0, 0x8b, 0x89, 0xca, 0x55, 0xd6, -0xad, 0x9b, 0x66, 0x68, 0x30, 0x41, 0x33, 0x87, 0x2a, 0xf7, 0x00, 0xfb, -0x97, 0xc2, 0x77, 0x59, 0x0b, 0x2c, 0x80, 0x5f, 0xbb, 0x8a, 0x1e, 0x11, -0xba, 0x45, 0x0d, 0x37, 0xf6, 0x6c, 0x21, 0x2c, 0x77, 0x02, 0x29, 0xc3, -0x6f, 0xff, 0x3b, 0xea, 0xd5, 0xf0, 0xe3, 0x95, 0xc4, 0xa5, 0x95, 0x14, -0x2a, 0x9d, 0xc4, 0xa5, 0x0a, 0x41, 0x14, 0x63, 0x8d, 0xa3, 0x7e, 0x66, -0x8a, 0x99, 0x89, 0x59, 0x54, 0x04, 0x35, 0x1e, 0x6a, 0x02, 0xc4, 0x84, -0x28, 0xf9, 0xab, 0xf1, 0x42, 0x8c, 0x1f, 0x63, 0xc3, 0x02, 0x36, 0xaa, -0x71, 0xed, 0xa6, 0x1a, 0xd6, 0x0f, 0x16, 0xe2, 0x60, 0xc7, 0x52, 0xe0, -0x97, 0x24, 0x00, 0x50, 0xeb, 0x5a, 0x89, 0x28, 0x77, 0x8a, 0x42, 0x18, -0x5a, 0xd6, 0x6f, 0xee, 0x05, 0x32, 0x9a, 0xf5, 0x71, 0x26, 0x46, 0x86, -0x09, 0x8a, 0xab, 0x88, 0x2b, 0x2b, 0x28, 0x54, 0x6b, 0xc4, 0xa5, 0x12, -0x41, 0xe0, 0x63, 0x24, 0x25, 0x9d, 0x3d, 0xcd, 0xd1, 0xf7, 0x47, 0x38, -0xfc, 0xde, 0x38, 0x59, 0xd2, 0xc8, 0x41, 0x99, 0x30, 0xef, 0x11, 0xf9, -0x05, 0x4c, 0x50, 0xc0, 0x86, 0x05, 0xbc, 0xa8, 0x80, 0x1f, 0x16, 0xf0, -0xe2, 0x0a, 0xd5, 0x95, 0x35, 0xaa, 0x1d, 0x31, 0xed, 0x26, 0x70, 0x6f, -0xdf, 0xb6, 0x9d, 0xdd, 0x57, 0x4d, 0x20, 0x88, 0x42, 0x44, 0xd8, 0x21, -0x6a, 0x58, 0xb7, 0xa1, 0x83, 0x35, 0x37, 0x7d, 0x1a, 0x48, 0x19, 0x79, -0xff, 0x15, 0xa2, 0xca, 0x2a, 0x0a, 0xd5, 0x1c, 0x7c, 0x54, 0x28, 0xe2, -0xf9, 0x1e, 0x2a, 0x4d, 0xd2, 0xfa, 0x28, 0x47, 0xdf, 0x1b, 0x66, 0xe2, -0xd4, 0x19, 0x66, 0xa6, 0xea, 0x0c, 0x1e, 0xaa, 0x83, 0x24, 0xa8, 0xf1, -0xc0, 0x8b, 0x30, 0x7e, 0x11, 0x2f, 0x28, 0x12, 0x44, 0x25, 0xc2, 0xb8, -0x44, 0x10, 0x17, 0x09, 0x0b, 0x45, 0xfc, 0x42, 0x95, 0xeb, 0xae, 0x2f, -0xe1, 0xf9, 0xde, 0x82, 0xfa, 0x7b, 0xae, 0x9a, 0x80, 0xab, 0x8f, 0xd6, -0x44, 0xe8, 0x51, 0x2c, 0xeb, 0xae, 0xeb, 0x06, 0x32, 0x20, 0x63, 0xf2, -0xe4, 0x71, 0xe2, 0x4a, 0x07, 0x85, 0x72, 0x89, 0x30, 0x8e, 0xf0, 0x3c, -0x20, 0x9d, 0x23, 0x9d, 0x3a, 0xc1, 0xe1, 0x5f, 0x0f, 0x72, 0xf4, 0x83, -0x31, 0x92, 0x66, 0x42, 0x9a, 0xa4, 0x8c, 0x8c, 0xce, 0x33, 0x38, 0x38, -0x8f, 0xc5, 0x61, 0xfd, 0x00, 0x2f, 0x88, 0xf0, 0xa3, 0x02, 0x7e, 0x5c, -0x20, 0x88, 0x22, 0xbc, 0x30, 0xc0, 0x7a, 0x7e, 0x7e, 0xcb, 0x77, 0x15, -0xb0, 0xde, 0x22, 0x81, 0x25, 0xfb, 0xa7, 0x4b, 0x12, 0x58, 0x70, 0x1f, -0x55, 0x43, 0x10, 0x7a, 0x40, 0x4a, 0xfd, 0xf4, 0x30, 0x7e, 0xe0, 0x11, -0xc6, 0x21, 0x7e, 0xe0, 0x61, 0x48, 0x71, 0xad, 0x19, 0x92, 0xa9, 0x61, -0x0e, 0xbd, 0x35, 0xc8, 0xe0, 0xfb, 0xa7, 0x68, 0x36, 0x9a, 0x38, 0xd1, -0x29, 0x11, 0x48, 0x93, 0x8c, 0xe1, 0xe1, 0x06, 0x47, 0x8e, 0xcc, 0xe1, -0xd1, 0xc2, 0xf7, 0x0d, 0x41, 0xe8, 0xe3, 0x07, 0x7e, 0x9e, 0x14, 0xa2, -0xa0, 0x19, 0xa0, 0xc4, 0xe1, 0x79, 0x4d, 0xad, 0xde, 0xbe, 0x6d, 0xa6, -0x76, 0x71, 0x64, 0xb9, 0x2c, 0x79, 0x0a, 0x89, 0x2c, 0xa4, 0x11, 0xca, -0xdc, 0xf4, 0x19, 0x40, 0x98, 0x3e, 0x39, 0x84, 0x67, 0x05, 0xab, 0x09, -0x9a, 0x26, 0x48, 0x3a, 0x47, 0x52, 0x1f, 0xe7, 0xe0, 0xdb, 0x27, 0x19, -0x1d, 0x9e, 0x22, 0x6d, 0x25, 0x0b, 0x95, 0xd3, 0x80, 0xb6, 0x1b, 0xbf, -0x59, 0xe6, 0x38, 0x76, 0x7c, 0x9e, 0x46, 0x0b, 0x36, 0x7f, 0xc2, 0x62, -0xc2, 0x00, 0xe3, 0x42, 0x70, 0x16, 0xc1, 0xa2, 0xae, 0x85, 0x24, 0x73, -0x34, 0xe6, 0x9b, 0xa8, 0xc8, 0xb9, 0x10, 0xee, 0x04, 0x5e, 0xe0, 0x12, -0xb2, 0x34, 0x01, 0xcd, 0x3b, 0x72, 0x2a, 0xca, 0x89, 0xa3, 0x27, 0xa9, -0x9f, 0x3a, 0x46, 0xe3, 0xcc, 0x87, 0x68, 0x73, 0x92, 0x2c, 0x31, 0xe0, -0x1a, 0x9c, 0x3e, 0x39, 0xc5, 0x7b, 0x07, 0x27, 0x99, 0xad, 0xcf, 0x23, -0x79, 0xd1, 0xbd, 0xd0, 0xbd, 0xdb, 0xa7, 0xca, 0x90, 0x2a, 0x3b, 0x54, -0x41, 0xc5, 0x31, 0x3a, 0x32, 0xc7, 0xd4, 0xb4, 0xe3, 0xa6, 0x9b, 0x12, -0xae, 0xd9, 0xd4, 0x80, 0xb4, 0x82, 0xe7, 0xf9, 0xa0, 0x29, 0xae, 0x31, -0xc9, 0xa9, 0xd1, 0x3a, 0xce, 0xb9, 0x73, 0x21, 0xf4, 0x5c, 0x1d, 0x01, -0x69, 0x67, 0xa3, 0x22, 0x0c, 0x1e, 0x69, 0x12, 0xfc, 0x70, 0x2f, 0x9d, -0x9d, 0x05, 0x9c, 0xcb, 0x98, 0x9f, 0xcf, 0x18, 0x1e, 0x6e, 0x32, 0x33, -0xd3, 0xc2, 0xa5, 0xe9, 0x42, 0xc5, 0xb4, 0x08, 0xfe, 0x81, 0x1f, 0xee, -0xd9, 0xff, 0xcd, 0x2f, 0xee, 0x7c, 0x5e, 0xa1, 0x47, 0x95, 0x1e, 0x55, -0x40, 0x85, 0xd9, 0x99, 0x06, 0xaf, 0xbf, 0x96, 0x32, 0x38, 0x38, 0xcb, -0xf5, 0xd7, 0x17, 0xa8, 0x56, 0x02, 0x54, 0x84, 0xa9, 0xa9, 0xf9, 0xc5, -0xd2, 0xf1, 0x02, 0x02, 0x97, 0x94, 0x25, 0x93, 0xb9, 0x6f, 0xff, 0x99, -0x79, 0x8e, 0x76, 0x30, 0x19, 0x63, 0xf2, 0x46, 0xad, 0xef, 0x63, 0x0c, -0x88, 0x08, 0x2e, 0x73, 0x88, 0x3b, 0xab, 0xb0, 0xdd, 0x25, 0xdc, 0xf7, -0xe0, 0x8f, 0xce, 0x36, 0x9f, 0xbe, 0x7e, 0xaf, 0xe9, 0x00, 0xfa, 0x17, -0x49, 0xb4, 0xc5, 0x5a, 0x8b, 0x17, 0xf8, 0x58, 0x6b, 0x51, 0x55, 0xc4, -0x39, 0x5c, 0xe6, 0xb8, 0x00, 0xd3, 0x8e, 0xbe, 0x03, 0x7a, 0xc9, 0x0b, -0x6d, 0x49, 0x02, 0x7f, 0xf7, 0xa7, 0xe6, 0x56, 0xa0, 0xff, 0xdc, 0xba, -0x40, 0x2f, 0x98, 0xe8, 0xd9, 0xf9, 0x90, 0xc2, 0xae, 0xbf, 0x7d, 0x46, -0x2f, 0x6a, 0xf2, 0xbe, 0x6d, 0x66, 0x37, 0x79, 0x55, 0x75, 0xd9, 0xc0, -0x3c, 0x47, 0xfa, 0xfb, 0x0e, 0xe8, 0x5d, 0x97, 0xfb, 0x87, 0x2b, 0xfa, -0x9a, 0xf5, 0x9b, 0x5f, 0x34, 0xb7, 0x02, 0x7d, 0x5c, 0x70, 0xac, 0xb5, -0x81, 0x4f, 0x01, 0xfd, 0x0a, 0xcf, 0x7f, 0xed, 0xc7, 0x97, 0xde, 0xa9, -0x05, 0xe9, 0xdb, 0x66, 0x3a, 0xc8, 0x53, 0xf3, 0x1d, 0x5c, 0xde, 0x3d, -0x9e, 0xec, 0x3b, 0xa0, 0x5f, 0x59, 0x6a, 0xbd, 0xdf, 0xe8, 0x7b, 0xe2, -0x6f, 0xe4, 0xae, 0x90, 0x07, 0x75, 0xfe, 0xd6, 0xd4, 0x43, 0xcf, 0xea, -0x9b, 0x97, 0x79, 0xe4, 0xb2, 0xd2, 0xb7, 0xcd, 0x6c, 0x6a, 0xaf, 0x77, -0x2e, 0x91, 0x01, 0xf2, 0x9d, 0x9f, 0xbe, 0x92, 0x35, 0x96, 0xfd, 0xa7, -0x06, 0xff, 0xd7, 0xf2, 0x5b, 0xff, 0x6b, 0x95, 0xff, 0x01, 0x3a, 0xbb, -0x29, 0xfe, 0x9c, 0xd4, 0x1a, 0x60, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, -0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_file_open.c b/Source/Core/DolphinWX/resources/toolbar_file_open.c deleted file mode 100644 index d2f8741931..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_file_open.c +++ /dev/null @@ -1,214 +0,0 @@ -static const unsigned char toolbar_file_open_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, 0x14, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x34, -0x2f, 0x30, 0x34, 0x79, 0x5e, 0xa3, 0xd5, 0x00, 0x00, 0x09, 0x40, 0x49, -0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x99, 0x6b, 0x6c, 0x5b, 0xe5, 0x19, -0xc7, 0x7f, 0xc7, 0x97, 0x24, 0x4d, 0xda, 0x24, 0xae, 0xe3, 0xd8, 0x0d, -0x2d, 0x71, 0xc5, 0x56, 0x21, 0x40, 0x34, 0xd0, 0x31, 0x09, 0x6d, 0x12, -0x01, 0xa1, 0x49, 0x9b, 0x18, 0xec, 0xc3, 0x24, 0x3e, 0x82, 0x98, 0x60, -0x1b, 0x91, 0xa6, 0xa1, 0x49, 0x1b, 0xbb, 0x68, 0x21, 0x9a, 0xa6, 0x4d, -0x1a, 0xdb, 0x90, 0x36, 0x36, 0xb4, 0x0f, 0x5b, 0x87, 0xd8, 0x97, 0x7d, -0x21, 0x6c, 0x93, 0x26, 0x31, 0x09, 0x8a, 0xd6, 0x01, 0x83, 0x96, 0xa6, -0xd5, 0x68, 0x97, 0x40, 0x49, 0xda, 0x38, 0x8d, 0x6f, 0xc7, 0xb1, 0x8f, -0xe3, 0xbb, 0xfd, 0xbe, 0xfb, 0xf0, 0x9e, 0x9b, 0xed, 0xe3, 0xd4, 0xe5, -0x22, 0x86, 0xc4, 0x23, 0xbd, 0x3a, 0xc7, 0xc7, 0xf6, 0xf1, 0xff, 0xff, -0x7f, 0x6e, 0xef, 0x73, 0xac, 0x49, 0x29, 0xf9, 0x28, 0x9b, 0xef, 0xc3, -0x06, 0xf0, 0x5e, 0xed, 0x63, 0x02, 0x1f, 0xb6, 0x7d, 0x4c, 0xe0, 0xc3, -0xb6, 0x40, 0x3f, 0x1f, 0xfa, 0xd7, 0xaf, 0xb5, 0xb8, 0x90, 0xc4, 0x85, -0x20, 0x2e, 0x25, 0xea, 0x5c, 0x12, 0x97, 0x92, 0xc3, 0x42, 0x30, 0x2e, -0x25, 0x4b, 0x42, 0xb2, 0xf0, 0x85, 0xef, 0xc8, 0xc5, 0x0f, 0x1a, 0x70, -0xa7, 0x69, 0x9d, 0x65, 0xf4, 0xf5, 0xa7, 0xb4, 0xfb, 0x25, 0xcc, 0x4a, -0x05, 0x70, 0xda, 0x04, 0x8a, 0x90, 0x20, 0x04, 0xd8, 0xe7, 0x12, 0xa4, -0x70, 0x9d, 0xab, 0xe3, 0xed, 0x77, 0x3d, 0x2a, 0x8f, 0xf5, 0xf3, 0xc3, -0x4f, 0x7f, 0x4f, 0x9b, 0x11, 0x92, 0x19, 0x21, 0x89, 0x9b, 0xf7, 0x39, -0xf6, 0xe0, 0xcf, 0xfa, 0xfb, 0x6e, 0x4f, 0x02, 0xff, 0xfe, 0xad, 0x76, -0x0a, 0x98, 0x01, 0x07, 0xa8, 0x34, 0xd7, 0x68, 0x6c, 0x9a, 0x91, 0xd0, -0x04, 0x23, 0xa1, 0x30, 0x43, 0x23, 0xc3, 0x8c, 0x47, 0x23, 0x20, 0xea, -0xa4, 0xd7, 0xde, 0xe1, 0xcc, 0x3f, 0x5f, 0xa5, 0x56, 0x6b, 0x20, 0x05, -0x4f, 0xdc, 0xf5, 0x5d, 0xf9, 0x48, 0xe7, 0x8f, 0xfc, 0xf9, 0x31, 0x6d, -0xd6, 0x14, 0x62, 0x46, 0x08, 0x66, 0x84, 0xe4, 0x36, 0x17, 0x69, 0xb7, -0x30, 0x0b, 0x5f, 0x7d, 0x5c, 0x3e, 0xf6, 0xae, 0x08, 0xbc, 0xfc, 0xa4, -0x76, 0x1f, 0x70, 0x54, 0x03, 0x24, 0xb0, 0xef, 0xc6, 0x59, 0xc6, 0xf6, -0x1d, 0x64, 0x38, 0x34, 0xc9, 0xd0, 0xc8, 0x08, 0x88, 0xba, 0x5a, 0xb2, -0xe1, 0x9c, 0x8b, 0x3a, 0x88, 0x06, 0x6f, 0xbd, 0xb1, 0xc4, 0xca, 0xa9, -0xb3, 0x08, 0xc9, 0x92, 0x94, 0x3c, 0x22, 0x4c, 0xa0, 0x52, 0x72, 0x58, -0x48, 0x66, 0xdc, 0x40, 0x2d, 0xe0, 0xe3, 0x63, 0x3e, 0xa2, 0x11, 0x08, -0xfa, 0x05, 0x2b, 0xab, 0x60, 0x6c, 0xdb, 0x9f, 0x39, 0xf8, 0xf5, 0x5f, -0xc8, 0x35, 0x4e, 0x6a, 0xdd, 0x68, 0x8f, 0x74, 0x37, 0x5d, 0x3b, 0x07, -0x84, 0x20, 0x8e, 0x06, 0x1a, 0x70, 0xed, 0xe7, 0x1f, 0x22, 0x1c, 0xbf, -0xde, 0x04, 0x6b, 0x2e, 0xcb, 0x3c, 0x3a, 0xf7, 0xde, 0x58, 0x04, 0xf3, -0xea, 0x8c, 0x94, 0xbc, 0x68, 0x7d, 0x44, 0xba, 0xbe, 0x32, 0x3c, 0x1c, -0x60, 0x72, 0x72, 0x80, 0xc9, 0x89, 0x00, 0xfb, 0xa7, 0x34, 0x06, 0xfc, -0xa6, 0x10, 0x52, 0x70, 0xd3, 0xf5, 0xf0, 0xb7, 0x17, 0x60, 0x23, 0x09, -0xc0, 0x7d, 0x9c, 0xd4, 0x16, 0x3c, 0xe5, 0x76, 0x93, 0x32, 0xc9, 0x38, -0x04, 0xa4, 0xfa, 0xc5, 0xe0, 0xe0, 0x2e, 0xc2, 0xd3, 0xd7, 0x2a, 0xf0, -0xb2, 0xe5, 0x2c, 0x84, 0xb9, 0x5c, 0x71, 0x65, 0xc2, 0x0c, 0xc7, 0x26, -0xec, 0x4b, 0xd6, 0xd5, 0xc0, 0x80, 0x9f, 0x89, 0xc8, 0x6e, 0xa6, 0xf6, -0xef, 0x21, 0x12, 0x09, 0x32, 0xb2, 0x4b, 0x9a, 0x62, 0xd4, 0xcd, 0x63, -0x3b, 0xb6, 0x1b, 0x0e, 0x41, 0x42, 0x11, 0x88, 0x7b, 0x61, 0xff, 0xf9, -0xef, 0x19, 0x37, 0xbd, 0xba, 0xf4, 0xed, 0x07, 0xc9, 0x73, 0x52, 0x83, -0x23, 0xb2, 0xcd, 0x03, 0x79, 0x34, 0xa8, 0x55, 0x2b, 0xea, 0x47, 0x10, -0x2a, 0x4b, 0x65, 0xd3, 0x45, 0xc4, 0xbc, 0x66, 0x91, 0x91, 0xc2, 0x26, -0x33, 0x1a, 0x1a, 0x65, 0xd7, 0xc8, 0x10, 0xe1, 0xe8, 0x18, 0x13, 0x91, -0xdd, 0x8c, 0x8d, 0x07, 0x5d, 0x80, 0xcd, 0xd0, 0x43, 0x76, 0x2c, 0xc7, -0xa6, 0x26, 0x6d, 0xaf, 0xc5, 0x01, 0x7e, 0xf5, 0x34, 0xb3, 0x66, 0xf8, -0xcd, 0x06, 0x02, 0x1c, 0x09, 0x8f, 0xb2, 0xbf, 0x56, 0x87, 0x7c, 0x89, -0xfc, 0x4f, 0x7f, 0xc7, 0xed, 0x8f, 0x3e, 0xc4, 0x52, 0xa7, 0x07, 0x96, -0xec, 0x7b, 0x8a, 0x9a, 0xa9, 0xb4, 0x30, 0x81, 0x37, 0x41, 0x34, 0xbd, -0xc9, 0x98, 0xde, 0xb9, 0xed, 0xee, 0xcf, 0x3a, 0xe1, 0x66, 0x03, 0xf6, -0xf0, 0x9a, 0x74, 0x13, 0x70, 0xdc, 0x30, 0x30, 0x60, 0xbf, 0x35, 0xfb, -0x9b, 0x67, 0x90, 0x7b, 0x86, 0x61, 0x78, 0x10, 0x76, 0x8f, 0x40, 0xd0, -0x0f, 0x43, 0xbb, 0x86, 0x08, 0x85, 0xc6, 0xb8, 0xb0, 0xb1, 0x3d, 0x7e, -0x66, 0xb9, 0xf4, 0x2c, 0x70, 0xb0, 0x9d, 0x80, 0xcb, 0xa5, 0x5b, 0x89, -0x15, 0x42, 0x53, 0xd3, 0x2e, 0x90, 0x6e, 0xf0, 0x1d, 0x47, 0x2c, 0x92, -0xb2, 0xa7, 0x77, 0x1c, 0xb0, 0x5e, 0x64, 0x94, 0x19, 0x45, 0x18, 0x1b, -0x81, 0x91, 0x5d, 0x30, 0x32, 0x04, 0x03, 0x83, 0x03, 0x84, 0x26, 0x22, -0x84, 0xc2, 0x21, 0xc2, 0x93, 0x61, 0x76, 0x0d, 0x05, 0xa8, 0x94, 0x8b, -0xb4, 0xb8, 0xc8, 0x99, 0xe5, 0x52, 0xfc, 0xc7, 0x4f, 0x71, 0xcf, 0xf7, -0xbf, 0xa6, 0x3d, 0x67, 0x13, 0xb8, 0xf3, 0x5b, 0xf2, 0xa5, 0xe7, 0x1f, -0x57, 0x49, 0x22, 0x5b, 0x0d, 0x68, 0xd5, 0x4c, 0x20, 0xd2, 0xa5, 0x7a, -0xd3, 0xe5, 0x0d, 0xf3, 0x9a, 0xfb, 0xbc, 0x87, 0x77, 0x9c, 0x6b, 0x0e, -0xc9, 0x46, 0x43, 0x90, 0x4c, 0x49, 0xf4, 0x1c, 0xa4, 0x33, 0xd0, 0x12, -0x70, 0x30, 0x1e, 0x25, 0x1c, 0xbd, 0x8a, 0xc9, 0xa9, 0x29, 0xc6, 0x43, -0x63, 0x20, 0xca, 0x14, 0x72, 0x9b, 0x5c, 0xba, 0xb0, 0x4a, 0x7a, 0x33, -0x4d, 0xb9, 0x54, 0xa5, 0xde, 0xb4, 0x83, 0x6f, 0x16, 0x78, 0xae, 0xad, -0x13, 0x5b, 0x5e, 0xc8, 0x25, 0xd6, 0xd8, 0x1b, 0x8b, 0x7a, 0x10, 0xe8, -0x24, 0xd1, 0xf0, 0x00, 0xdf, 0x91, 0xf8, 0x2e, 0xef, 0xe8, 0x7a, 0x8d, -0xe4, 0x66, 0x05, 0x5d, 0x6f, 0x62, 0x18, 0x82, 0xe0, 0xe0, 0x08, 0xb1, -0xe9, 0x9b, 0xb9, 0xfe, 0x93, 0xd3, 0x4c, 0x1e, 0xb8, 0x86, 0xa0, 0xaf, -0x4e, 0xa5, 0x78, 0x89, 0x42, 0xf6, 0x3c, 0xe7, 0xde, 0x39, 0x45, 0x31, -0x9f, 0xa6, 0xd5, 0x6c, 0x20, 0x24, 0xb4, 0x5a, 0xe0, 0xf3, 0x81, 0x51, -0xb2, 0x9d, 0x37, 0xd3, 0x16, 0x42, 0x76, 0x1e, 0xc0, 0x4c, 0xbd, 0x5a, -0xee, 0xc8, 0x03, 0xe1, 0x01, 0xb0, 0xe1, 0xe4, 0x45, 0x57, 0x7e, 0xa8, -0x55, 0x2e, 0x55, 0x49, 0x25, 0x0c, 0xf4, 0x4c, 0x19, 0x5d, 0xaf, 0xd2, -0x68, 0x48, 0xc2, 0x57, 0xdd, 0xc4, 0x81, 0x1b, 0x6f, 0x25, 0x3c, 0x75, -0x88, 0xd1, 0xbd, 0x53, 0x20, 0x4a, 0xe4, 0x36, 0x4e, 0x71, 0xfe, 0xf4, -0x3f, 0x30, 0xb2, 0x6f, 0x53, 0x29, 0xa6, 0x09, 0x04, 0xc0, 0xef, 0x57, -0x80, 0xfd, 0x7e, 0x47, 0x47, 0x21, 0x60, 0x33, 0x67, 0x27, 0x3b, 0xdd, -0x04, 0x04, 0x79, 0x80, 0x42, 0x26, 0xa3, 0x08, 0x58, 0xf1, 0x6b, 0xc5, -0x76, 0x57, 0xd8, 0x58, 0x1e, 0x50, 0x04, 0x1a, 0xb5, 0x1a, 0x7a, 0x7a, -0x0b, 0x3d, 0x65, 0x90, 0xda, 0x28, 0x50, 0x2e, 0x37, 0x18, 0x1e, 0x3b, -0x40, 0xf4, 0x9a, 0xbb, 0x39, 0xfc, 0xe9, 0x9b, 0x09, 0x4f, 0xdd, 0x40, -0x30, 0x18, 0xa0, 0x5c, 0x58, 0x43, 0x5f, 0x7f, 0x9d, 0x95, 0xd7, 0x9e, -0x41, 0xdf, 0x7c, 0x13, 0xd9, 0xaa, 0x10, 0xf0, 0x43, 0x20, 0x80, 0x0d, -0xde, 0xef, 0x53, 0x04, 0xac, 0x54, 0x11, 0x1a, 0x54, 0x6b, 0x50, 0xae, -0xda, 0xd7, 0x16, 0xbd, 0x3c, 0xb0, 0x06, 0x50, 0xab, 0xd5, 0xcc, 0x1c, -0xa0, 0x3d, 0x8c, 0x3c, 0x48, 0x18, 0xb9, 0x3c, 0x7a, 0x32, 0x47, 0x32, -0xa1, 0xa3, 0xa7, 0x0d, 0x82, 0x83, 0x63, 0x84, 0xa7, 0x6f, 0xe7, 0xe0, -0xad, 0x9f, 0x21, 0x7a, 0xcd, 0x9d, 0x0c, 0x8f, 0x46, 0x40, 0x54, 0x30, -0x52, 0xa7, 0x58, 0x3d, 0xf5, 0x27, 0x92, 0xe7, 0x5f, 0xc4, 0xc8, 0x9e, -0x07, 0x40, 0xd3, 0xd4, 0x0a, 0x98, 0x6a, 0xfb, 0x7c, 0x0a, 0xb8, 0xdf, -0x54, 0x5e, 0xd3, 0x1c, 0xe5, 0x01, 0x2e, 0xe9, 0xb8, 0x7b, 0xcd, 0xb1, -0x2e, 0x02, 0x2d, 0xa1, 0x08, 0x6c, 0x65, 0xf2, 0x66, 0x2f, 0xb0, 0x3c, -0xd0, 0x4d, 0x60, 0xfd, 0xed, 0x0d, 0x4e, 0xbf, 0x72, 0x0e, 0x80, 0xd1, -0xc8, 0x75, 0x84, 0xaf, 0xbe, 0x97, 0x43, 0x77, 0x7c, 0x91, 0xf0, 0xd5, -0xb3, 0xa0, 0x69, 0x34, 0xaa, 0x59, 0x92, 0xcb, 0x8b, 0xac, 0x5c, 0x3c, -0x4e, 0xf2, 0xfc, 0xf3, 0x34, 0x6b, 0x45, 0xbc, 0xcc, 0xa7, 0x81, 0xe6, -0x73, 0x08, 0xb8, 0x17, 0x38, 0x85, 0xaa, 0xd9, 0x82, 0x4c, 0xde, 0x56, -0x7f, 0xed, 0x87, 0x0f, 0x73, 0xda, 0xcb, 0x03, 0x79, 0xeb, 0xbc, 0x51, -0xdd, 0x26, 0x38, 0x10, 0xf0, 0x0c, 0x23, 0x23, 0x67, 0x70, 0xfa, 0x95, -0x73, 0x1c, 0xb8, 0xee, 0x2e, 0x0e, 0x7f, 0xee, 0x27, 0xe0, 0x1b, 0x04, -0x6d, 0x10, 0x23, 0xb3, 0xcc, 0xca, 0xf1, 0x05, 0x92, 0x6f, 0xfd, 0x1d, -0x23, 0x73, 0xd6, 0x13, 0xb0, 0x65, 0x96, 0xfa, 0x9a, 0x66, 0x92, 0xd0, -0xda, 0xc1, 0x5b, 0xea, 0x5b, 0x2b, 0x67, 0x28, 0x12, 0x12, 0xc0, 0x0c, -0x9f, 0xb6, 0x4e, 0x0c, 0x20, 0x84, 0xea, 0x6e, 0x00, 0xf9, 0x8c, 0x4e, -0x64, 0x5f, 0xc8, 0x24, 0x20, 0x5c, 0xc7, 0x16, 0xc9, 0xf5, 0x34, 0xa3, -0x91, 0x4f, 0x70, 0xf8, 0xce, 0x1f, 0x80, 0x6c, 0xd0, 0xa8, 0x6c, 0x73, -0xe2, 0xaf, 0xdf, 0x40, 0x4f, 0xbc, 0xbe, 0x23, 0x68, 0x4f, 0x12, 0xbe, -0xf6, 0xf0, 0xb1, 0xc0, 0x5b, 0x66, 0x6d, 0x04, 0xd7, 0x93, 0x2e, 0x42, -0x70, 0xd4, 0x7a, 0xdf, 0xb3, 0x8c, 0x02, 0xd4, 0xab, 0xd5, 0xee, 0x3c, -0xb0, 0x09, 0xe8, 0xc4, 0x0e, 0x7d, 0x19, 0xa4, 0x0a, 0xb3, 0x13, 0x7f, -0x99, 0x43, 0xdf, 0x78, 0xe3, 0xca, 0xc1, 0x9b, 0xea, 0x5b, 0xe0, 0x35, -0x9f, 0xe3, 0x0d, 0xc0, 0x9e, 0x37, 0xb6, 0xcb, 0x60, 0x94, 0x6d, 0x02, -0xf9, 0xf9, 0x39, 0x15, 0x3e, 0xd0, 0x31, 0x52, 0xde, 0xbb, 0x20, 0x5f, -0xb2, 0x06, 0x94, 0x9c, 0x95, 0x07, 0xa2, 0xe6, 0x1c, 0x5b, 0x35, 0xca, -0xc5, 0x6d, 0x8c, 0x7c, 0x99, 0x58, 0xfc, 0x16, 0x10, 0x55, 0xd6, 0xdf, -0x7c, 0xf6, 0xdd, 0x81, 0xc7, 0x01, 0xef, 0x73, 0x85, 0x8f, 0xe6, 0x8a, -0x7d, 0x6b, 0x68, 0xda, 0xd4, 0xcd, 0x6c, 0x54, 0xf9, 0x60, 0x87, 0x0f, -0x78, 0x8c, 0x94, 0x96, 0x17, 0xea, 0xd5, 0xba, 0xab, 0x17, 0x38, 0x79, -0x90, 0x4a, 0xe4, 0x18, 0xde, 0x13, 0x61, 0x74, 0xef, 0x3e, 0x10, 0x65, -0x56, 0x5e, 0x3b, 0x7a, 0xe5, 0xe0, 0x5d, 0xa1, 0xe3, 0xf7, 0x3b, 0x35, -0xbf, 0x4d, 0x7d, 0xb3, 0xfa, 0xb4, 0x04, 0x6c, 0x64, 0xda, 0xaa, 0x4f, -0xdb, 0xd8, 0xda, 0x35, 0xd4, 0x0b, 0x35, 0xdf, 0x92, 0xd5, 0x4b, 0x2e, -0xf5, 0x1d, 0x4f, 0xac, 0xaf, 0xe5, 0x89, 0x4e, 0xcf, 0x80, 0xac, 0xa0, -0x27, 0x4e, 0x50, 0x29, 0xa6, 0xfb, 0x03, 0xac, 0xb5, 0xc7, 0xba, 0x55, -0xf7, 0x2d, 0x02, 0x16, 0x09, 0x0d, 0x47, 0x33, 0x21, 0x20, 0xa5, 0x43, -0xa3, 0xe9, 0x54, 0xa3, 0xf9, 0x39, 0x9e, 0x73, 0xdf, 0xdf, 0xcb, 0x03, -0x79, 0x80, 0x5a, 0xb5, 0x69, 0xee, 0x2a, 0x9d, 0xdd, 0x63, 0xb9, 0xd4, -0xc0, 0x28, 0xd4, 0x98, 0xb9, 0xe3, 0x16, 0x10, 0x65, 0xd6, 0x97, 0x5f, -0xe8, 0x09, 0xba, 0x8b, 0x80, 0xeb, 0xdc, 0xe7, 0x77, 0x6a, 0x7d, 0xa7, -0xfa, 0x12, 0xd7, 0xf4, 0x26, 0x20, 0x91, 0x75, 0xc0, 0xd3, 0x11, 0x3e, -0xde, 0x04, 0x24, 0x6b, 0x12, 0xc8, 0xea, 0xf5, 0xae, 0x24, 0x4e, 0x5d, -0x2a, 0x31, 0xbc, 0x3b, 0xc4, 0x68, 0x68, 0x2f, 0x8d, 0x4a, 0x96, 0xc4, -0xca, 0xcb, 0x3b, 0x83, 0x76, 0x03, 0xf7, 0x75, 0x24, 0xad, 0x5f, 0x79, -0xc1, 0x56, 0xde, 0x1d, 0xfb, 0x42, 0xed, 0x7d, 0xca, 0x55, 0xc8, 0x15, -0xda, 0xe0, 0x75, 0x3d, 0xf5, 0xe8, 0x22, 0x60, 0x35, 0x33, 0x80, 0xa2, -0x51, 0x61, 0xcf, 0x6e, 0x1f, 0x96, 0x4f, 0xf5, 0x6c, 0x85, 0xe8, 0x81, -0x9b, 0x41, 0x94, 0x48, 0xac, 0xbc, 0x7a, 0x45, 0xa0, 0xbd, 0xc2, 0xc8, -0xef, 0xea, 0xc0, 0x16, 0x78, 0x29, 0x9c, 0xd8, 0xbf, 0x98, 0xea, 0x44, -0xc7, 0x62, 0xe7, 0x5c, 0xdc, 0x33, 0x84, 0x14, 0x81, 0x2a, 0x7b, 0x86, -0xfd, 0x20, 0x25, 0x8d, 0x86, 0x24, 0x99, 0x6c, 0xf0, 0xa9, 0x6b, 0x63, -0x20, 0xb6, 0x59, 0x3d, 0xfb, 0x72, 0x5f, 0xa0, 0xad, 0xba, 0xde, 0x59, -0x36, 0xed, 0xe5, 0x4a, 0x5a, 0xa4, 0x02, 0xde, 0x32, 0x49, 0xe4, 0xda, -0x9b, 0xf7, 0xe2, 0xfc, 0x1c, 0xed, 0xfe, 0xf0, 0x24, 0x20, 0x9d, 0x66, -0x56, 0x2c, 0xd6, 0x61, 0x52, 0x11, 0x48, 0x25, 0x5b, 0x0c, 0x0c, 0x0e, -0x10, 0x9b, 0x8a, 0x92, 0xbb, 0xf4, 0x5f, 0xea, 0xd5, 0x82, 0xda, 0xaf, -0xd0, 0x5b, 0xe9, 0xce, 0x4e, 0xdb, 0xf6, 0x9e, 0x0b, 0x3c, 0x66, 0x85, -0xb1, 0x42, 0xa7, 0xd5, 0x84, 0xcd, 0xac, 0xaa, 0xff, 0x6d, 0xea, 0x7b, -0x58, 0xcf, 0x32, 0x0a, 0x60, 0x18, 0x4d, 0x75, 0x37, 0x24, 0xa9, 0x34, -0xc4, 0xf6, 0x1f, 0x04, 0x61, 0x70, 0x69, 0xed, 0x3f, 0xf6, 0x66, 0xab, -0x5f, 0xd0, 0xee, 0x65, 0x3d, 0xfd, 0xb0, 0x92, 0xd3, 0x9d, 0xb4, 0xad, -0x16, 0xac, 0xa7, 0x60, 0x79, 0xbd, 0x0d, 0xd6, 0xda, 0xfc, 0x1c, 0x7f, -0xf4, 0x7a, 0xac, 0xd2, 0x55, 0x46, 0x1f, 0xfe, 0xa5, 0xd3, 0xcc, 0x0a, -0xdb, 0xca, 0xaf, 0x8d, 0x26, 0x64, 0xb2, 0x10, 0xdb, 0x17, 0xa6, 0x51, -0xdb, 0x22, 0x99, 0x58, 0xb5, 0x4b, 0xa1, 0xbf, 0x63, 0x1b, 0x1c, 0x70, -0x25, 0x67, 0x57, 0x89, 0x74, 0x77, 0x58, 0x13, 0x6c, 0xb3, 0xa9, 0xca, -0x64, 0xa9, 0xac, 0xea, 0xfd, 0xf1, 0x33, 0x5d, 0xe0, 0x01, 0x1e, 0xf3, -0x52, 0xdf, 0xd3, 0x03, 0x96, 0x17, 0x24, 0x90, 0x37, 0xd4, 0xeb, 0x54, -0x1a, 0x82, 0x03, 0x01, 0x26, 0xa3, 0xbb, 0x59, 0x5f, 0x7d, 0xdb, 0xde, -0xb3, 0xb8, 0x37, 0x5e, 0x9d, 0x8a, 0x43, 0x7b, 0x53, 0xb2, 0x8e, 0x56, -0x43, 0x6a, 0x36, 0x21, 0xb3, 0x05, 0xa9, 0x1c, 0xa4, 0xb6, 0x7a, 0xc1, -0x03, 0xe0, 0x58, 0x2f, 0xf5, 0x7b, 0x13, 0x90, 0x2c, 0x49, 0x98, 0x29, -0x6c, 0xab, 0xd7, 0xe9, 0x2c, 0x44, 0x63, 0x63, 0x20, 0x8a, 0x24, 0x2e, -0xac, 0xb7, 0x55, 0x0f, 0x37, 0x81, 0x4e, 0x73, 0xef, 0x26, 0xa5, 0x84, -0x46, 0x0b, 0xf4, 0xbc, 0x09, 0x3a, 0xe7, 0x4c, 0x55, 0x3b, 0xd8, 0x12, -0xf0, 0xa5, 0x9d, 0x3e, 0xe0, 0x49, 0xa0, 0x65, 0x56, 0x22, 0xcb, 0x03, -0x19, 0x1d, 0x6e, 0x3a, 0x32, 0x4c, 0x3e, 0x9b, 0xa1, 0x5e, 0xab, 0xb7, -0x4d, 0x4c, 0x6e, 0xc5, 0xc1, 0xde, 0xee, 0x3a, 0x93, 0x94, 0x84, 0x74, -0x0e, 0xd2, 0x5b, 0x0e, 0xe8, 0x3e, 0xff, 0x96, 0x3b, 0x0a, 0x7c, 0x73, -0x7e, 0x8e, 0x42, 0x2f, 0xf5, 0x7b, 0x12, 0x10, 0xae, 0x5e, 0x70, 0x71, -0x43, 0x25, 0xdc, 0xe4, 0x84, 0xc6, 0xb9, 0x73, 0xba, 0xb3, 0x5f, 0xe9, -0xd8, 0xf2, 0xba, 0x81, 0x0b, 0x09, 0x7a, 0xc1, 0x0c, 0x91, 0x2d, 0x15, -0xe3, 0x56, 0xa5, 0xb9, 0x8c, 0xad, 0xa1, 0xaa, 0xcd, 0x13, 0xf3, 0x73, -0x5c, 0x00, 0x3c, 0x9f, 0x87, 0x5e, 0x9e, 0x80, 0x74, 0x08, 0x54, 0xeb, -0x10, 0x0a, 0x05, 0x41, 0x94, 0x49, 0x6e, 0x96, 0xf0, 0xfb, 0x5d, 0x0d, -0xc7, 0x45, 0x44, 0x4a, 0x15, 0x1e, 0x99, 0xbc, 0x02, 0xdd, 0x6c, 0xf6, -0xad, 0xf6, 0x12, 0x6a, 0x3c, 0x3c, 0x6a, 0x6f, 0x93, 0x2f, 0x03, 0xfa, -0xf2, 0x04, 0x5c, 0x1e, 0x38, 0xb3, 0x02, 0xf1, 0x58, 0x8b, 0x2d, 0xbd, -0x68, 0x97, 0x58, 0x29, 0x41, 0x9a, 0xe0, 0xb7, 0x0c, 0xc8, 0x16, 0xda, -0x41, 0xf7, 0xa1, 0xf6, 0x12, 0x2a, 0x44, 0x16, 0xfb, 0x55, 0xfa, 0xca, -0x08, 0xa8, 0x91, 0x2d, 0x0f, 0x8c, 0x2f, 0xaf, 0x42, 0x36, 0x2b, 0x88, -0x4d, 0xd6, 0xd4, 0x03, 0x60, 0x01, 0x5b, 0x45, 0xd0, 0x0d, 0xa5, 0x76, -0xb3, 0xd5, 0x17, 0x60, 0x50, 0xa1, 0xb1, 0x88, 0xaa, 0x2a, 0xef, 0x09, -0xb4, 0xdb, 0xba, 0xfe, 0xa1, 0xb1, 0xec, 0x47, 0x5f, 0xd1, 0xee, 0x91, -0x5e, 0xdd, 0xaf, 0x3f, 0xb0, 0xa0, 0x04, 0x58, 0x44, 0x85, 0x87, 0xb3, -0x0d, 0x78, 0x1f, 0x40, 0xbb, 0xad, 0x27, 0x01, 0x80, 0x85, 0x07, 0xb4, -0x79, 0x76, 0x68, 0x22, 0x1e, 0x66, 0x81, 0x5e, 0x6c, 0xdb, 0xb7, 0xbf, -0xcf, 0xa0, 0xdd, 0xb6, 0x23, 0x01, 0x4e, 0x6a, 0x2c, 0x3c, 0xc9, 0x1f, -0x80, 0xfb, 0x77, 0xb8, 0xc7, 0x1a, 0x0a, 0xf4, 0x51, 0xf7, 0xac, 0xfa, -0x41, 0x82, 0x76, 0xdb, 0xce, 0x04, 0x4c, 0x5b, 0x78, 0x40, 0xbb, 0x8f, -0xf6, 0x3f, 0x1e, 0xf2, 0xa8, 0x44, 0xcc, 0xbf, 0x9b, 0xca, 0xf1, 0x7e, -0x5a, 0x5f, 0x04, 0xfe, 0x9f, 0xed, 0x23, 0xff, 0x47, 0xf7, 0x47, 0x9e, -0xc0, 0xff, 0x00, 0x3b, 0x1c, 0x36, 0x87, 0xb9, 0x4b, 0x27, 0xd9, 0x00, -0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_fullscreen.c b/Source/Core/DolphinWX/resources/toolbar_fullscreen.c deleted file mode 100644 index d810c8c884..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_fullscreen.c +++ /dev/null @@ -1,209 +0,0 @@ -static const unsigned char toolbar_fullscreen_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, -0x32, 0x2f, 0x30, 0x34, 0x1c, 0xf3, 0x42, 0xbb, 0x00, 0x00, 0x08, 0xfd, -0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x99, 0x6d, 0x8c, 0x5c, 0x55, -0x19, 0xc7, 0x7f, 0xe7, 0xdc, 0x3b, 0xb3, 0xd3, 0x7d, 0x9d, 0xdd, 0xae, -0xdb, 0x97, 0xa5, 0x20, 0x45, 0x5b, 0x88, 0x06, 0x96, 0xa2, 0x89, 0x01, -0x02, 0x09, 0x24, 0x46, 0x43, 0xd0, 0xf2, 0x45, 0xa3, 0x92, 0x40, 0x62, -0xf4, 0x03, 0x31, 0xa1, 0x26, 0x4a, 0x8c, 0x7e, 0x32, 0xc6, 0x17, 0x34, -0xc4, 0x7e, 0xd2, 0x4f, 0x06, 0x05, 0x85, 0xc4, 0x48, 0x42, 0x69, 0x08, -0x46, 0x01, 0x13, 0x10, 0x50, 0x69, 0xa5, 0xa5, 0x4b, 0xb1, 0x2d, 0x76, -0xdf, 0xcb, 0xbe, 0xbf, 0xce, 0xce, 0xdc, 0x3b, 0x33, 0xe7, 0x3c, 0x7e, -0x38, 0x77, 0x66, 0xee, 0xbd, 0x3b, 0xb3, 0x2d, 0x12, 0x68, 0x9a, 0xf4, -0x49, 0xce, 0x3e, 0xe7, 0x9e, 0x73, 0x77, 0xef, 0xf3, 0x3c, 0xff, 0xe7, -0xed, 0x9c, 0x55, 0x22, 0xc2, 0xa5, 0x4c, 0xfa, 0x62, 0x0b, 0xf0, 0x7e, -0xe9, 0xb2, 0x02, 0x17, 0x9b, 0x2e, 0x2b, 0x70, 0xb1, 0xe9, 0x92, 0x57, -0xc0, 0x6f, 0xb5, 0xf1, 0xb7, 0x47, 0x54, 0xde, 0x0a, 0x07, 0xc4, 0xf2, -0x45, 0x2b, 0x0c, 0x89, 0x80, 0xb5, 0x90, 0xe0, 0x02, 0x62, 0x23, 0x9e, -0x5e, 0xdf, 0x6c, 0xef, 0xc2, 0xd7, 0x8f, 0x59, 0xe1, 0x90, 0x58, 0x0e, -0x7e, 0xf7, 0x31, 0x59, 0x6e, 0x26, 0xa7, 0x6a, 0x56, 0x07, 0x5e, 0x7c, -0x44, 0xdd, 0x8f, 0xf0, 0x4b, 0x11, 0xf2, 0xff, 0xb7, 0x30, 0xb1, 0xe7, -0xf7, 0xa1, 0x40, 0x6d, 0x7d, 0x59, 0x84, 0x6f, 0x3f, 0xf4, 0xb8, 0xfc, -0x36, 0x2d, 0xeb, 0x06, 0x17, 0x7a, 0xfe, 0x17, 0xea, 0x7e, 0xb1, 0x3c, -0x6a, 0x85, 0x7c, 0xed, 0xe3, 0x22, 0x20, 0x00, 0xd1, 0x3c, 0x9a, 0x46, -0x3f, 0x5a, 0x50, 0x6c, 0xaf, 0xe5, 0xef, 0x5c, 0x78, 0x0d, 0xcd, 0x0b, -0x3c, 0xfa, 0xb3, 0x7b, 0xd5, 0xfd, 0xe9, 0x8d, 0x04, 0x02, 0x7f, 0x79, -0x58, 0xe5, 0x15, 0x8c, 0x00, 0xf9, 0xda, 0xdf, 0xcf, 0xe5, 0xe0, 0xca, -0x2b, 0x60, 0x6b, 0x3f, 0x64, 0x33, 0xce, 0x32, 0xd6, 0x82, 0x31, 0x49, -0xbe, 0x61, 0x6e, 0xc1, 0x9a, 0x88, 0xbf, 0xc7, 0x79, 0x18, 0xc2, 0xf2, -0x2a, 0xcc, 0x2f, 0xb9, 0x79, 0x1c, 0x09, 0x2b, 0x5c, 0xfd, 0xfd, 0x27, -0x1a, 0xee, 0x94, 0x88, 0x01, 0xb1, 0x3c, 0x28, 0xca, 0x09, 0x0f, 0xd0, -0xd5, 0x09, 0x37, 0xed, 0x83, 0x4c, 0xef, 0x6d, 0xb0, 0xed, 0x01, 0x74, -0xfe, 0x4e, 0xc4, 0x96, 0x40, 0x4a, 0x20, 0x01, 0x62, 0x4b, 0x88, 0x04, -0x60, 0x43, 0x44, 0x4a, 0x88, 0x0d, 0x62, 0xa3, 0x8c, 0x98, 0x10, 0x6b, -0x03, 0xc4, 0x86, 0x58, 0x13, 0x52, 0x5a, 0x1c, 0x41, 0x6c, 0x85, 0x6a, -0xb8, 0x4e, 0xb0, 0x3a, 0x87, 0xb5, 0x42, 0xa5, 0x58, 0x20, 0x2c, 0xae, -0x63, 0x05, 0xd6, 0xe7, 0x67, 0x00, 0xc8, 0x64, 0x60, 0x6b, 0xde, 0x7d, -0x7f, 0x74, 0x02, 0x4a, 0x41, 0x03, 0x09, 0xe0, 0x41, 0xe0, 0x87, 0x4d, -0x15, 0xb0, 0xc2, 0xfe, 0x1a, 0xac, 0xb9, 0x1c, 0x0c, 0xdd, 0x00, 0xde, -0xb6, 0x7b, 0xd1, 0xd7, 0x3c, 0x0e, 0x52, 0x74, 0x43, 0x69, 0x10, 0xe5, -0x14, 0x36, 0x05, 0xaa, 0x6b, 0xc3, 0x4e, 0xa8, 0xe2, 0x04, 0xd5, 0xe2, -0x39, 0xc4, 0x56, 0xa9, 0xac, 0x4f, 0x53, 0x29, 0xcd, 0x63, 0xad, 0x25, -0x5c, 0x39, 0x47, 0xb5, 0x1c, 0x24, 0x50, 0x69, 0x35, 0x4f, 0x93, 0xa7, -0xe1, 0xca, 0x41, 0xf8, 0xef, 0x18, 0x94, 0x2b, 0x75, 0x8f, 0xdb, 0xdf, -0x5a, 0x01, 0xcb, 0x90, 0x72, 0xb2, 0x31, 0xb8, 0x13, 0xfc, 0xfc, 0x2d, -0xf8, 0xbb, 0x7f, 0x0d, 0x12, 0x10, 0x14, 0x97, 0x78, 0xfd, 0xd0, 0x77, -0x78, 0xeb, 0xb5, 0x43, 0xac, 0xad, 0x94, 0x50, 0x8a, 0xc4, 0x80, 0x26, -0x73, 0x00, 0x15, 0x9b, 0xd7, 0x9e, 0x23, 0x1e, 0x63, 0xa0, 0x9c, 0xe5, -0xbb, 0x3b, 0xa1, 0xa7, 0xb3, 0x21, 0x93, 0x56, 0xd0, 0xdb, 0x03, 0xd3, -0x73, 0xf5, 0xa5, 0xa1, 0xb8, 0xcc, 0x49, 0x17, 0x8a, 0x05, 0x69, 0x5f, -0x2f, 0xe8, 0x6d, 0x5f, 0x8f, 0x84, 0x5f, 0xe3, 0x89, 0x1f, 0xdd, 0xc6, -0xfc, 0xbb, 0x93, 0x4e, 0x18, 0xed, 0x3e, 0xdc, 0x4a, 0x81, 0xda, 0x5e, -0x5c, 0xd8, 0xa6, 0x3c, 0x35, 0x37, 0x55, 0x58, 0x5a, 0x86, 0xf5, 0x22, -0x6c, 0xef, 0xa7, 0x6e, 0xf2, 0xae, 0x8e, 0x86, 0x02, 0xe9, 0xa4, 0x99, -0x46, 0x20, 0x61, 0x0d, 0xaf, 0xef, 0x0e, 0xc4, 0x86, 0xbc, 0x7e, 0xe8, -0x7b, 0x75, 0xe1, 0x3f, 0x7e, 0xd3, 0x0d, 0xdc, 0xbc, 0xff, 0x6e, 0x06, -0xae, 0x18, 0xac, 0xe3, 0x2f, 0x36, 0x16, 0xbd, 0x31, 0x9f, 0x90, 0xfa, -0x3c, 0x16, 0xa5, 0xd6, 0x22, 0xe9, 0x35, 0x63, 0x59, 0x98, 0x9b, 0xe5, -0x8d, 0xa3, 0xff, 0x62, 0x7c, 0x7c, 0x84, 0x6a, 0x15, 0xd6, 0xd6, 0xa1, -0xab, 0x43, 0xa1, 0xb4, 0x26, 0xe3, 0xbb, 0x9c, 0xda, 0xac, 0xf3, 0x4f, -0xc7, 0x40, 0xa4, 0x66, 0xa4, 0x8c, 0x84, 0x40, 0x95, 0xe1, 0xd7, 0x0e, -0x3b, 0xe1, 0xf7, 0x5d, 0xcf, 0xfe, 0x07, 0xbe, 0x09, 0x7a, 0x1f, 0xe8, -0x1b, 0x5d, 0x12, 0xf6, 0x03, 0x94, 0x94, 0x81, 0x30, 0x7a, 0x3f, 0x04, -0x29, 0x83, 0x84, 0x6e, 0x5d, 0xca, 0x48, 0xc4, 0xb1, 0x65, 0x90, 0x0a, -0x2a, 0xe2, 0x58, 0x37, 0xa4, 0x52, 0xa2, 0xbf, 0xbd, 0x83, 0x3b, 0x7b, -0xfb, 0x78, 0xf1, 0x85, 0xe7, 0x18, 0x1f, 0x1f, 0xa5, 0x58, 0x82, 0xee, -0x2e, 0x1f, 0x4f, 0x67, 0xb0, 0x52, 0x41, 0xa8, 0x6c, 0x94, 0xbe, 0x15, -0x02, 0x0a, 0x97, 0x12, 0xc5, 0x06, 0xa0, 0x7c, 0x0a, 0x6b, 0xce, 0xe7, -0x6f, 0xbe, 0xeb, 0xf3, 0xa0, 0x3e, 0x01, 0xfa, 0x93, 0x80, 0x05, 0x0c, -0x88, 0x71, 0x1c, 0x1b, 0x61, 0x2e, 0x14, 0x96, 0xa6, 0x38, 0xf2, 0xcc, -0xcf, 0x19, 0x7f, 0xeb, 0x25, 0xfc, 0x5c, 0x27, 0xd7, 0xdd, 0xfc, 0x05, -0x86, 0xee, 0xf8, 0x52, 0xea, 0xd3, 0x8d, 0x22, 0xa3, 0x3c, 0x0f, 0xe9, -0xea, 0x46, 0x99, 0x2a, 0x43, 0xd7, 0xdf, 0xc4, 0xe4, 0xc4, 0x28, 0xd6, -0x82, 0xf6, 0xb3, 0x78, 0xd9, 0x0e, 0x8c, 0x59, 0x07, 0x2a, 0xe7, 0x47, -0x20, 0x5e, 0x70, 0xea, 0x08, 0x48, 0xa5, 0xee, 0xdb, 0x1f, 0xd9, 0xb9, -0x1d, 0xf4, 0x6e, 0x90, 0x00, 0x50, 0x48, 0xf5, 0x38, 0x54, 0x4e, 0x3a, -0xcb, 0x46, 0x2e, 0x51, 0x2e, 0x16, 0x79, 0xf6, 0x57, 0x0f, 0x13, 0x06, -0x01, 0x22, 0x50, 0x2e, 0x16, 0x38, 0xf6, 0xd7, 0x27, 0x58, 0x9b, 0x1a, -0xe6, 0xd6, 0xcf, 0xde, 0x95, 0x72, 0x9f, 0x86, 0x0b, 0x49, 0x54, 0x7a, -0xfb, 0xfa, 0xb6, 0xa2, 0xa2, 0xf2, 0xaa, 0x74, 0x06, 0xaf, 0xad, 0x1d, -0x1d, 0x94, 0x9b, 0x0a, 0x0f, 0xa9, 0x4a, 0x9c, 0x70, 0x63, 0x03, 0x62, -0x43, 0x2a, 0xab, 0xc3, 0x8d, 0x2c, 0x62, 0x23, 0xab, 0x53, 0x42, 0xca, -0x47, 0x20, 0x3c, 0x06, 0x26, 0x8c, 0xf9, 0xb9, 0x70, 0xf4, 0xf9, 0xc3, -0x94, 0x23, 0xe1, 0x85, 0xc6, 0x38, 0x33, 0xfc, 0x26, 0x8b, 0xb3, 0xd3, -0x8d, 0x95, 0x44, 0x89, 0x8f, 0x59, 0x50, 0x04, 0xad, 0x5c, 0xf6, 0x51, -0x5e, 0x96, 0x4c, 0x5b, 0x27, 0xda, 0xcb, 0x36, 0x97, 0x3e, 0x8d, 0x80, -0xb5, 0xd4, 0x53, 0x82, 0x31, 0x20, 0x12, 0x62, 0xca, 0x0b, 0x8d, 0xac, -0x62, 0x0c, 0x48, 0x40, 0x25, 0x28, 0x70, 0xe2, 0xcf, 0x3f, 0x65, 0x69, -0x7a, 0x82, 0x81, 0x5d, 0xbb, 0xd9, 0xf3, 0xa9, 0x5b, 0xc8, 0xb6, 0xe5, -0xc0, 0x0a, 0xd3, 0x63, 0x23, 0xce, 0x5a, 0x71, 0x19, 0x23, 0x39, 0x47, -0xcf, 0x9c, 0xa1, 0xb7, 0xaf, 0x1f, 0xac, 0xb0, 0xb6, 0xb2, 0xc2, 0x91, -0x7f, 0xbc, 0xca, 0xda, 0xca, 0x2a, 0x7b, 0xf6, 0x5e, 0xcb, 0xde, 0x3d, -0x7b, 0xea, 0x2e, 0xa0, 0x23, 0xb3, 0x6a, 0x2f, 0x83, 0x97, 0xed, 0x44, -0xf9, 0x4b, 0x2d, 0x11, 0xd8, 0x18, 0xc4, 0x12, 0x53, 0xc0, 0x06, 0x04, -0x0b, 0x47, 0x1b, 0xa9, 0xd2, 0x18, 0x2a, 0xa5, 0x39, 0x5e, 0xfc, 0xcd, -0x37, 0x58, 0x3c, 0x77, 0x0a, 0x11, 0x98, 0x1e, 0x3d, 0xcb, 0xc4, 0xa9, -0xb7, 0xf8, 0xdc, 0x7d, 0xdf, 0x02, 0xb1, 0x14, 0x96, 0x97, 0x1a, 0xe9, -0x38, 0xa5, 0x48, 0xad, 0x27, 0x58, 0x98, 0x9d, 0xe5, 0xf0, 0x53, 0x7f, -0x24, 0x08, 0x42, 0x44, 0x60, 0x72, 0x72, 0x8a, 0xa9, 0xc9, 0x49, 0xee, -0xb8, 0xfd, 0x76, 0x17, 0x13, 0x91, 0x11, 0xb5, 0x9f, 0xc3, 0x6f, 0xeb, -0x40, 0xe9, 0x4c, 0x4b, 0x04, 0x12, 0x2e, 0x24, 0xb1, 0xee, 0xd1, 0x58, -0xe7, 0x42, 0xd6, 0x9a, 0xba, 0x02, 0x62, 0x2c, 0xa7, 0x5e, 0x79, 0x8c, -0x85, 0xa9, 0x53, 0x09, 0xeb, 0x2e, 0xce, 0xbc, 0xcb, 0xd9, 0x37, 0x8f, -0x82, 0xb5, 0x74, 0x74, 0xe7, 0x93, 0x96, 0x4f, 0x0c, 0x37, 0x39, 0xfa, -0xcf, 0x57, 0x09, 0x83, 0x30, 0xa1, 0xe0, 0xdb, 0x6f, 0x9f, 0x62, 0x7e, -0x6e, 0xbe, 0x8e, 0x80, 0xd6, 0xe0, 0x65, 0xdb, 0xf1, 0x32, 0xed, 0xa8, -0xd6, 0x5d, 0x7f, 0x2a, 0x06, 0x24, 0x19, 0x5b, 0x62, 0x03, 0x4a, 0x73, -0x6f, 0x02, 0x91, 0x67, 0x19, 0xc3, 0xcc, 0xd9, 0x23, 0x1b, 0x5b, 0x65, -0x81, 0xf1, 0xd3, 0x27, 0xc1, 0x58, 0x06, 0x06, 0xaf, 0xda, 0xe0, 0x3a, -0x35, 0xda, 0x31, 0xb8, 0x0b, 0xac, 0x65, 0x6a, 0x72, 0xb2, 0x11, 0x23, -0x31, 0x25, 0xce, 0x8e, 0x8c, 0xba, 0x6f, 0x45, 0x06, 0xf3, 0xb3, 0x9d, -0x68, 0x2f, 0x87, 0x6c, 0x72, 0xee, 0x3a, 0x6f, 0x10, 0x57, 0xc3, 0x42, -0xbd, 0xaa, 0x62, 0x0d, 0xd6, 0xda, 0x84, 0xe0, 0xb5, 0xb3, 0x42, 0x39, -0x28, 0x81, 0x35, 0x5c, 0x77, 0xe3, 0xa7, 0x13, 0xc2, 0xc7, 0x95, 0xe9, -0xec, 0xe8, 0x04, 0x6b, 0x09, 0x83, 0xb0, 0xb1, 0xc7, 0xc6, 0xae, 0xba, -0x16, 0xc4, 0x5e, 0xb6, 0x0b, 0x2f, 0xd3, 0x8e, 0x34, 0xea, 0xf6, 0xf9, -0x11, 0xa8, 0xbb, 0x90, 0x01, 0x6b, 0xcb, 0x94, 0x56, 0x26, 0x12, 0x31, -0xd0, 0x91, 0xef, 0x6f, 0x58, 0x3f, 0x76, 0x00, 0xd9, 0x75, 0xf5, 0x1e, -0x30, 0x96, 0x97, 0x9f, 0x3b, 0xec, 0x90, 0x6c, 0xe2, 0x42, 0x4f, 0x3d, -0xf9, 0x7b, 0xca, 0x41, 0x89, 0x1d, 0x3b, 0x07, 0x9b, 0xba, 0x58, 0xff, -0xd6, 0xad, 0x0e, 0x01, 0xed, 0x46, 0x26, 0xd7, 0x83, 0xf6, 0xb7, 0xa4, -0xc5, 0x6c, 0xad, 0x80, 0xa4, 0xba, 0x81, 0xca, 0xfa, 0x39, 0x4c, 0xd4, -0x25, 0xd6, 0x5c, 0x68, 0xf7, 0x0d, 0xb7, 0x26, 0xad, 0x1f, 0xcd, 0x07, -0x76, 0xee, 0xe2, 0xcc, 0xf0, 0x71, 0x16, 0x66, 0x67, 0x9a, 0x9f, 0xc2, -0x04, 0xc2, 0x20, 0xe4, 0x95, 0x97, 0x5e, 0x62, 0xef, 0xde, 0x6b, 0x37, -0x66, 0x29, 0x81, 0xc1, 0x9d, 0x3b, 0x12, 0x08, 0x64, 0xb6, 0xe4, 0xf1, -0x32, 0x9d, 0x88, 0xb4, 0x56, 0x60, 0xd3, 0x34, 0x5a, 0x2e, 0xcc, 0x62, -0x4d, 0xa3, 0x31, 0x13, 0x63, 0x78, 0xe7, 0xe8, 0xcb, 0xf5, 0x6c, 0x25, -0x34, 0xf8, 0x0b, 0xcf, 0x3c, 0xe5, 0x8c, 0x90, 0xf2, 0xff, 0xf8, 0x33, -0x02, 0x23, 0x67, 0x47, 0x98, 0x9b, 0x9d, 0xdf, 0x88, 0x10, 0xf0, 0xa7, -0xa7, 0x9f, 0xe5, 0x6b, 0x5f, 0xbe, 0x07, 0xad, 0xdd, 0xb3, 0xdf, 0xd6, -0x83, 0xf6, 0xdb, 0x11, 0x69, 0xed, 0x42, 0x9b, 0xa6, 0xd1, 0xd2, 0xf2, -0x78, 0x02, 0x81, 0xe9, 0xf1, 0x31, 0x4e, 0xff, 0xfb, 0xef, 0x1b, 0x84, -0x07, 0x58, 0x5b, 0x59, 0x69, 0x54, 0xf2, 0x16, 0x4a, 0x20, 0x10, 0x04, -0x21, 0xc5, 0x52, 0x98, 0xc8, 0xeb, 0xb5, 0x77, 0x66, 0xe7, 0x17, 0x38, -0xf9, 0x9f, 0x33, 0xf5, 0xc2, 0x99, 0xc9, 0xf5, 0xa2, 0xb4, 0xbf, 0x69, -0x10, 0x6f, 0x40, 0xa0, 0xa6, 0xab, 0x35, 0x50, 0x09, 0x0a, 0x18, 0xd3, -0x58, 0x3b, 0x79, 0xfc, 0x88, 0x4b, 0xb5, 0xb5, 0x0f, 0xcb, 0x46, 0x9e, -0x3e, 0x3f, 0x37, 0x43, 0x22, 0xde, 0xb6, 0xa7, 0xd7, 0x86, 0x4f, 0x9e, -0xa6, 0x63, 0x8b, 0xdb, 0xcb, 0xe4, 0x7a, 0xb0, 0x56, 0x36, 0x75, 0xa1, -0x64, 0x0c, 0x44, 0xfe, 0x6a, 0xc5, 0xc5, 0x40, 0x61, 0x7e, 0x14, 0x53, -0x73, 0x2b, 0x05, 0x85, 0xd5, 0xb5, 0x8d, 0xb7, 0x06, 0x31, 0x9e, 0x8e, -0x8b, 0xd6, 0xf5, 0xa0, 0xf5, 0x7b, 0xeb, 0xc5, 0x62, 0x2c, 0x8d, 0xf6, -0xa0, 0x74, 0x16, 0xa5, 0xde, 0x4b, 0x0c, 0x44, 0x64, 0x0c, 0x84, 0x85, -0x65, 0x8c, 0x81, 0x6c, 0x16, 0xaa, 0x15, 0x10, 0xab, 0x92, 0xd6, 0xab, -0x59, 0x3a, 0xcd, 0x63, 0x56, 0x4f, 0x3f, 0x9f, 0x0f, 0x95, 0x9d, 0xdb, -0xb3, 0x88, 0x71, 0x29, 0x34, 0xb3, 0xa5, 0x8f, 0x72, 0x50, 0x42, 0xea, -0x7d, 0xfe, 0x79, 0x10, 0xa8, 0x59, 0xdf, 0x4a, 0x4d, 0x81, 0x55, 0xac, -0x81, 0xbe, 0x1e, 0xb7, 0x3f, 0x33, 0x3b, 0xc3, 0xc0, 0xc0, 0x76, 0xba, -0xbb, 0xf3, 0xc9, 0x7b, 0x9c, 0x88, 0x67, 0xfc, 0x6c, 0xa2, 0x36, 0xc4, -0x11, 0xad, 0x09, 0x98, 0xcd, 0x66, 0x9b, 0x0a, 0xde, 0xd7, 0xdb, 0xc3, -0xbe, 0xeb, 0xb7, 0x81, 0xcc, 0xa1, 0x34, 0x6c, 0xfd, 0xe8, 0xed, 0x64, -0x73, 0xbd, 0x54, 0xc2, 0x22, 0xc6, 0x94, 0xdf, 0x3b, 0x02, 0x41, 0xe8, -0xae, 0x51, 0x00, 0x7a, 0xf3, 0xb0, 0x5a, 0x80, 0xb0, 0x0c, 0x33, 0x33, -0xd3, 0x0e, 0x5e, 0x2f, 0xea, 0x18, 0xb5, 0x83, 0x5b, 0x2b, 0x50, 0xaa, -0x4c, 0xae, 0xcd, 0xb5, 0x01, 0x35, 0x37, 0x88, 0xbf, 0xe3, 0x9e, 0xcb, -0x89, 0xa3, 0x68, 0x7d, 0x9f, 0x15, 0xaa, 0x95, 0x15, 0xb4, 0x82, 0x6c, -0xc7, 0x0e, 0xae, 0xf9, 0xcc, 0x83, 0x88, 0x68, 0xd6, 0x97, 0xce, 0x51, -0x2a, 0xac, 0x5d, 0x18, 0x02, 0xf1, 0x5e, 0x68, 0x79, 0xc5, 0xa1, 0x60, -0x8c, 0x73, 0x83, 0x5d, 0x3b, 0xa0, 0x3f, 0x0f, 0x99, 0x48, 0xe5, 0x7a, -0x75, 0x6e, 0xb0, 0xc6, 0x7a, 0x0b, 0x4a, 0xbf, 0x17, 0x3f, 0x37, 0x3b, -0x9f, 0xef, 0xa2, 0xff, 0x63, 0x77, 0x33, 0x74, 0xcf, 0x1f, 0xc8, 0xf5, -0x5c, 0xc9, 0xea, 0xdc, 0x18, 0x8b, 0x93, 0x27, 0x58, 0x5e, 0x5c, 0x68, -0xf9, 0x37, 0x5b, 0xa6, 0xd1, 0xd9, 0x05, 0x77, 0x2f, 0xe3, 0xc5, 0x54, -0xec, 0xe9, 0x56, 0xe4, 0x7b, 0x5c, 0xa7, 0xa5, 0xb4, 0x46, 0x29, 0x0f, -0xa5, 0xb5, 0xb3, 0x83, 0x72, 0xcf, 0x68, 0x1f, 0xa5, 0x7d, 0x77, 0x18, -0xc9, 0x6c, 0x41, 0xfb, 0x6d, 0x28, 0xdd, 0x86, 0x9f, 0xed, 0x40, 0x67, -0xb6, 0xa0, 0xfd, 0x76, 0xfc, 0x5c, 0x0f, 0x9e, 0xdf, 0x8e, 0x97, 0xe9, -0x20, 0x93, 0xeb, 0xc5, 0x6f, 0xeb, 0xc6, 0xf3, 0x3b, 0x68, 0xeb, 0xdc, -0x46, 0x5b, 0xfb, 0x00, 0xd6, 0x08, 0x8b, 0x13, 0x27, 0x98, 0x7a, 0xfb, -0x2f, 0x2c, 0x4c, 0x9e, 0x60, 0x69, 0xb9, 0x78, 0x81, 0x0a, 0x58, 0x8e, -0x11, 0x5d, 0x5b, 0x84, 0x21, 0x9c, 0x1d, 0x83, 0xab, 0xae, 0x68, 0x28, -0xa1, 0x14, 0x68, 0xdf, 0x43, 0x2b, 0x1f, 0xe5, 0xf9, 0x78, 0x7e, 0x16, -0xe5, 0x39, 0x81, 0xb5, 0x9f, 0x41, 0x7b, 0x59, 0xb4, 0xdf, 0x86, 0xf6, -0x73, 0x68, 0xaf, 0x0d, 0xe5, 0x65, 0xd1, 0x5e, 0x16, 0xa5, 0x6b, 0x6b, -0x6e, 0x5d, 0xfb, 0xed, 0xd1, 0x3c, 0xe7, 0xf2, 0xbc, 0x15, 0x4c, 0xb5, -0x4c, 0x69, 0x65, 0x9a, 0xb5, 0xb9, 0x71, 0xd6, 0x16, 0xc6, 0x59, 0x18, -0x7f, 0x83, 0xf9, 0xc9, 0xe3, 0x8c, 0x8d, 0xcd, 0x50, 0xad, 0x26, 0x82, -0xf8, 0xd8, 0x66, 0x08, 0x3c, 0x4d, 0xec, 0xde, 0xa5, 0x18, 0xc0, 0x3b, -0xa3, 0xee, 0x96, 0xac, 0xb3, 0xdd, 0x65, 0x23, 0x51, 0x0e, 0x24, 0x55, -0x05, 0x94, 0x8b, 0x56, 0xad, 0x0d, 0x56, 0x34, 0xca, 0x54, 0xf0, 0x8c, -0x46, 0x1b, 0x05, 0xda, 0x00, 0x21, 0x28, 0x0f, 0x88, 0x86, 0xf2, 0x80, -0x5a, 0x61, 0xf2, 0x41, 0xf9, 0x80, 0x46, 0x29, 0x1f, 0xa5, 0x32, 0xa0, -0x34, 0xa6, 0x5a, 0x61, 0x6d, 0x61, 0x8a, 0xe9, 0xf1, 0xd3, 0xcc, 0xcd, -0xcc, 0x51, 0xa9, 0x5a, 0x52, 0xf4, 0x74, 0x4b, 0x05, 0xc4, 0x72, 0x10, -0x38, 0x00, 0x8d, 0xeb, 0xc5, 0x72, 0x19, 0xce, 0xcd, 0xd6, 0xdf, 0x00, -0x29, 0x23, 0x94, 0x1b, 0x8f, 0xb5, 0x9d, 0x54, 0x51, 0xfb, 0x80, 0x68, -0x19, 0x38, 0x18, 0x5f, 0x48, 0x04, 0xf1, 0x43, 0x8f, 0xcb, 0x8a, 0x15, -0x0e, 0xd4, 0xd3, 0x69, 0xd4, 0xd8, 0x49, 0x34, 0xe2, 0xc5, 0x2a, 0x3d, -0x8f, 0xd7, 0x87, 0x0f, 0x90, 0x0e, 0xfc, 0xe0, 0x49, 0x59, 0x89, 0x2f, -0x34, 0xfd, 0xff, 0xc0, 0x4f, 0xbe, 0xaa, 0xee, 0xc3, 0x69, 0x9a, 0x8f, -0xaf, 0x7f, 0x08, 0x02, 0xb6, 0xa2, 0x65, 0x9c, 0xf0, 0xbf, 0x4b, 0x6f, -0x34, 0x55, 0x00, 0xe0, 0xc7, 0x5f, 0x51, 0x3d, 0x38, 0x77, 0xda, 0x4f, -0xea, 0x3e, 0xf2, 0x43, 0xa4, 0x63, 0x38, 0x9f, 0x3f, 0x98, 0xb6, 0x7c, -0x8d, 0x5a, 0x2a, 0x70, 0xa9, 0xd0, 0x25, 0xff, 0x4f, 0xbe, 0xcb, 0x0a, -0x5c, 0x6c, 0xba, 0xac, 0xc0, 0xc5, 0xa6, 0xff, 0x01, 0x9c, 0xeb, 0xc5, -0xd9, 0xf7, 0xbc, 0x76, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, -0x44, 0xae, 0x42, 0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_help.c b/Source/Core/DolphinWX/resources/toolbar_help.c deleted file mode 100644 index cc0ee5979c..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_help.c +++ /dev/null @@ -1,306 +0,0 @@ -static const unsigned char toolbar_help_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, 0x14, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x34, -0x2f, 0x30, 0x34, 0x79, 0x5e, 0xa3, 0xd5, 0x00, 0x00, 0x0d, 0x87, 0x49, -0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x79, 0x8c, 0x5e, 0xd5, 0x79, -0xc6, 0x7f, 0xef, 0x39, 0x77, 0xf9, 0x96, 0xd9, 0xbc, 0x60, 0xb0, 0x01, -0x63, 0xb3, 0x43, 0xb0, 0xec, 0xb6, 0x41, 0xcd, 0x62, 0xc0, 0x04, 0x04, -0xaa, 0x48, 0x30, 0x25, 0x8d, 0x02, 0x6e, 0xab, 0xd8, 0x21, 0xa4, 0x49, -0x93, 0x02, 0x8a, 0xd4, 0x26, 0x55, 0xdb, 0x64, 0xa0, 0x8b, 0x5b, 0x45, -0x6a, 0x9c, 0x45, 0x28, 0x49, 0x17, 0x4c, 0x5a, 0xfa, 0x47, 0x91, 0x5a, -0x20, 0x0d, 0x90, 0x88, 0x76, 0x6c, 0x52, 0xb6, 0x84, 0x80, 0x5d, 0x1b, -0x82, 0xeb, 0x05, 0x0f, 0xe3, 0x05, 0xc6, 0xc6, 0xf6, 0xd8, 0x33, 0xdf, -0x72, 0xef, 0x39, 0xe7, 0xed, 0x1f, 0xf7, 0x7e, 0x9f, 0xc7, 0xe3, 0x05, -0x1b, 0xa2, 0x46, 0x1c, 0xcd, 0xd1, 0x77, 0x46, 0x73, 0xe7, 0xdc, 0xe7, -0x39, 0xcf, 0xf3, 0xbe, 0xe7, 0x3d, 0x67, 0x46, 0x54, 0x95, 0x77, 0x73, -0x33, 0xbf, 0x6c, 0x00, 0xef, 0xb4, 0x45, 0xbf, 0xcc, 0x97, 0xff, 0xe3, -0xc7, 0x7a, 0xa4, 0x33, 0xfe, 0xe4, 0x83, 0xe3, 0x6f, 0xcb, 0x0a, 0xf2, -0x8b, 0xb2, 0xd0, 0x0f, 0x7f, 0x57, 0xe6, 0xa9, 0xb2, 0x24, 0xc0, 0x92, -0x10, 0x98, 0x17, 0x60, 0x61, 0x50, 0x06, 0x82, 0x82, 0x0f, 0x10, 0x94, -0xed, 0x41, 0x19, 0x0e, 0xca, 0x1a, 0xaf, 0xac, 0x77, 0xb6, 0xfe, 0xf0, -0x31, 0xa6, 0x51, 0x38, 0x35, 0x32, 0xef, 0x88, 0xc0, 0xd0, 0x72, 0x19, -0x50, 0xb8, 0x29, 0x28, 0x77, 0xaa, 0xb2, 0x28, 0x28, 0x1c, 0xab, 0xfb, -0xc9, 0xe3, 0xd0, 0x1d, 0x1f, 0xf0, 0xca, 0x23, 0x41, 0xe5, 0x9f, 0x4c, -0x52, 0x5b, 0x5b, 0x82, 0xef, 0x74, 0x00, 0x3d, 0x19, 0x22, 0x6f, 0x9b, -0xc0, 0x93, 0x9f, 0x94, 0x41, 0x2d, 0x80, 0x0f, 0x04, 0xa0, 0x12, 0x43, -0x4f, 0x05, 0xfa, 0x6b, 0x45, 0x60, 0xd5, 0x62, 0xd0, 0x50, 0xf4, 0xcc, -0xc1, 0x78, 0x1b, 0x0e, 0xb6, 0x60, 0x7f, 0x13, 0xf6, 0xb5, 0x21, 0xf3, -0x87, 0xc9, 0x78, 0xe5, 0x49, 0x45, 0xfe, 0x30, 0x4e, 0x6b, 0xeb, 0x4a, -0x02, 0xa1, 0x43, 0xe6, 0xad, 0x48, 0x9c, 0x72, 0x0c, 0x3c, 0x75, 0x9b, -0x2c, 0x01, 0xee, 0x33, 0xc2, 0x3c, 0x63, 0x60, 0x5a, 0x0f, 0xcc, 0x3e, -0xf7, 0x02, 0xaa, 0xf3, 0x3e, 0x80, 0x9d, 0x71, 0x09, 0x26, 0xe9, 0xc3, -0x24, 0x75, 0x70, 0x2d, 0xc8, 0x1b, 0xb8, 0x7d, 0xdb, 0x70, 0xfb, 0x87, -0xe9, 0xdd, 0xb3, 0x95, 0x81, 0xdd, 0x5b, 0x98, 0x93, 0xb5, 0x69, 0x67, -0xb0, 0xb7, 0x09, 0x5b, 0xc7, 0xa0, 0xe1, 0x04, 0x81, 0x2b, 0x83, 0xf2, -0x5c, 0xbb, 0xd5, 0xf8, 0xab, 0xb4, 0x52, 0xfb, 0x73, 0x40, 0x4a, 0x12, -0x1d, 0x22, 0xc7, 0x6d, 0xa7, 0xa4, 0xc0, 0xd3, 0xb7, 0xc9, 0xa0, 0x08, -0x5f, 0x01, 0x98, 0xd1, 0x0f, 0x67, 0x7f, 0xe0, 0x66, 0xd2, 0x4b, 0x6f, -0xc1, 0xf4, 0xce, 0x05, 0xd7, 0x80, 0xbc, 0x59, 0xf4, 0x13, 0x8c, 0x1b, -0x23, 0x1b, 0x18, 0xdb, 0xf6, 0x02, 0xd9, 0xc4, 0x04, 0xde, 0x0b, 0x23, -0x87, 0x60, 0xdb, 0x21, 0x68, 0x97, 0x16, 0x53, 0xe5, 0xc7, 0x62, 0xec, -0xc7, 0x2b, 0x69, 0xfa, 0x26, 0xe0, 0x81, 0x70, 0x22, 0x15, 0x4e, 0x5a, -0x81, 0xa7, 0x6e, 0x93, 0xfb, 0xac, 0xb0, 0x3c, 0x89, 0xe1, 0xbc, 0x85, -0x97, 0xd1, 0x7b, 0xdd, 0x57, 0x31, 0xfd, 0xe7, 0x96, 0xc0, 0x9a, 0x84, -0xfd, 0x9b, 0x71, 0x23, 0x6b, 0xf1, 0x6f, 0xac, 0x23, 0x1c, 0x1a, 0xc5, -0x4d, 0xec, 0x45, 0x3d, 0x84, 0x00, 0xa6, 0x76, 0x3a, 0xb6, 0x3a, 0x93, -0xa8, 0xf7, 0x74, 0x2a, 0x33, 0xe7, 0x52, 0x9b, 0x31, 0x87, 0x83, 0xaf, -0xbd, 0xc4, 0xde, 0xcd, 0x2f, 0x31, 0xa7, 0x0e, 0x03, 0x09, 0x6c, 0xdc, -0x0f, 0x07, 0x1d, 0x28, 0x5c, 0xe1, 0xbd, 0xff, 0x61, 0xb3, 0xd5, 0xbe, -0xbe, 0x5a, 0x49, 0xdf, 0xe4, 0xc8, 0xb8, 0x78, 0x7b, 0x0a, 0xfc, 0xf7, -0x6d, 0x72, 0x9f, 0x11, 0x96, 0xd7, 0x53, 0xb8, 0xe8, 0x23, 0x9f, 0xa1, -0xb2, 0xf8, 0xcb, 0x85, 0x45, 0x5c, 0x0b, 0xbf, 0xe9, 0x5f, 0x71, 0x9b, -0xfe, 0x99, 0xb0, 0x6f, 0x0b, 0x68, 0x01, 0xb8, 0xe3, 0xfd, 0x50, 0x12, -0x50, 0x5f, 0x8c, 0x7d, 0xf9, 0x99, 0xce, 0x98, 0x47, 0xdf, 0xec, 0xf3, -0xf0, 0xcd, 0x71, 0x46, 0x36, 0xbc, 0x80, 0xcb, 0x1d, 0xc1, 0xc3, 0x2b, -0x07, 0x61, 0x77, 0xab, 0x1b, 0xec, 0x1b, 0xac, 0xb5, 0xd7, 0xd5, 0xab, -0xe9, 0x5e, 0xc0, 0x1f, 0x4f, 0x85, 0xb7, 0x54, 0xe0, 0xc9, 0x15, 0x72, -0x9f, 0x31, 0x2c, 0xef, 0xab, 0xc3, 0x45, 0xbf, 0xfd, 0x35, 0xe2, 0x8b, -0x3f, 0x06, 0xae, 0x8d, 0xee, 0xf9, 0x1f, 0xdc, 0xd3, 0x5f, 0x44, 0x0f, -0x6c, 0x42, 0x14, 0x8c, 0x2d, 0x40, 0x1b, 0x0a, 0xe3, 0xa2, 0x20, 0x52, -0x74, 0x2d, 0x3f, 0xa5, 0xfc, 0x61, 0x63, 0xcf, 0x30, 0x87, 0x76, 0x0f, -0xd3, 0x7b, 0xc6, 0x7c, 0xce, 0xbe, 0xf4, 0x52, 0xb6, 0x6f, 0x78, 0x99, -0xe0, 0x3d, 0x17, 0xd4, 0xa1, 0xe9, 0x95, 0x7d, 0x19, 0x00, 0x0b, 0x72, -0xe7, 0xff, 0x0e, 0xf8, 0x2d, 0x4e, 0x10, 0x0b, 0x27, 0xdc, 0x89, 0x87, -0x96, 0xcb, 0x9d, 0x0a, 0xcb, 0x2b, 0x09, 0x5c, 0x78, 0xcb, 0xdf, 0x10, -0x5f, 0x70, 0x23, 0xb8, 0x26, 0x7e, 0xe3, 0x77, 0x71, 0x8f, 0xdd, 0x84, -0x1c, 0xdc, 0x84, 0xb1, 0x74, 0xbb, 0xd8, 0x02, 0xa4, 0x48, 0x31, 0x73, -0x67, 0x2c, 0x02, 0x48, 0x11, 0x99, 0x42, 0x49, 0x0a, 0xd8, 0xb7, 0xf3, -0x55, 0x76, 0x6d, 0xdb, 0xca, 0x9c, 0x73, 0xcf, 0x29, 0x7c, 0x22, 0x70, -0x49, 0x8f, 0x50, 0x39, 0x8c, 0xea, 0xc3, 0xfb, 0x0e, 0x36, 0xee, 0x00, -0xcc, 0xe4, 0x4d, 0x6f, 0x72, 0x3b, 0xae, 0x85, 0x9e, 0xf8, 0x84, 0x2c, -0x32, 0xc2, 0x8b, 0xb1, 0x85, 0x5f, 0xbb, 0xee, 0x46, 0x6a, 0x57, 0xff, -0x25, 0x20, 0xe4, 0x4f, 0xff, 0x09, 0x3a, 0xfc, 0x70, 0x01, 0xb8, 0x04, -0xa8, 0x0a, 0xad, 0x4c, 0xd8, 0x30, 0x92, 0xb0, 0x65, 0x34, 0x66, 0xcf, -0xb8, 0xa5, 0xed, 0x0e, 0xbf, 0x6f, 0x76, 0xaf, 0x63, 0x46, 0xea, 0x79, -0xcf, 0x8c, 0x36, 0x35, 0x13, 0x70, 0x5e, 0xc8, 0x1d, 0x38, 0x07, 0xce, -0x0b, 0x71, 0x52, 0xa5, 0xd2, 0xd3, 0xc3, 0xe8, 0xce, 0x3d, 0x10, 0x60, -0x2c, 0x83, 0xf5, 0x87, 0x14, 0x1f, 0xc0, 0x2b, 0x63, 0x22, 0x72, 0xf9, -0xf4, 0xde, 0xea, 0x96, 0x63, 0xd9, 0xe8, 0xb8, 0x16, 0x52, 0xe5, 0x3e, -0x05, 0x2e, 0x38, 0x6f, 0x36, 0xd5, 0xcb, 0xff, 0x00, 0x5c, 0x93, 0xec, -0x99, 0x7b, 0xd0, 0xe1, 0xff, 0xc0, 0xd8, 0x92, 0xbd, 0x14, 0x2b, 0xff, -0x93, 0x2d, 0x29, 0x4f, 0x6d, 0xae, 0x20, 0xe9, 0x00, 0x0b, 0xae, 0x5d, -0xc6, 0x95, 0xef, 0xbb, 0x81, 0xd3, 0xe7, 0x2f, 0x20, 0xad, 0xf7, 0x75, -0xe7, 0x7b, 0x6d, 0xe3, 0x53, 0x8c, 0x6e, 0xdb, 0xc0, 0xd6, 0xb5, 0x5f, -0xe7, 0x12, 0x36, 0x15, 0xef, 0x28, 0xde, 0x43, 0xa3, 0xd1, 0xc4, 0x05, -0x21, 0x4a, 0x53, 0xb2, 0x66, 0x46, 0x5f, 0xa4, 0xcc, 0x4a, 0x84, 0xdd, -0x6d, 0x05, 0xa5, 0xdf, 0x05, 0xfd, 0x33, 0x60, 0x39, 0xc7, 0xb0, 0xd1, -0x31, 0x15, 0x78, 0xfc, 0x77, 0xe4, 0x13, 0x46, 0x58, 0x3d, 0xbd, 0x07, -0x16, 0xde, 0x7a, 0x0f, 0xf1, 0xdc, 0x2b, 0x71, 0xaf, 0x3e, 0x4e, 0xfe, -0xfc, 0x5f, 0x23, 0x93, 0x2d, 0x63, 0xe0, 0xb1, 0x0d, 0x35, 0x36, 0xee, -0x48, 0xb8, 0x7c, 0xe9, 0x67, 0xb9, 0x62, 0xd9, 0x97, 0x48, 0x6a, 0x7d, -0x47, 0xcd, 0x37, 0xb5, 0xbd, 0xf2, 0xd8, 0xbd, 0x54, 0x1e, 0xff, 0x3c, -0xb9, 0x83, 0xdc, 0x09, 0xce, 0x17, 0x4a, 0x88, 0x58, 0x5c, 0xe6, 0x91, -0xa0, 0x64, 0x1e, 0x9e, 0x3d, 0x58, 0xaa, 0x10, 0x14, 0x55, 0x39, 0xff, -0x8f, 0x9f, 0x08, 0x5b, 0x4f, 0x4a, 0x81, 0x00, 0x83, 0x00, 0xe7, 0x5e, -0x7a, 0x19, 0xf1, 0x19, 0xbf, 0x4a, 0x18, 0xdb, 0x4e, 0xfb, 0x85, 0x6f, -0x22, 0x0a, 0x52, 0xe4, 0x6a, 0x34, 0xc0, 0xc6, 0x9d, 0x09, 0x1b, 0x77, -0x24, 0xdc, 0x70, 0xd7, 0xbd, 0x2c, 0xb8, 0xe6, 0xd6, 0x62, 0x55, 0x0f, -0x0e, 0x93, 0x3f, 0xbf, 0x0a, 0x37, 0xbc, 0x06, 0xbf, 0x6b, 0x1d, 0xc1, -0x83, 0xc6, 0x03, 0xd8, 0xb9, 0x4b, 0xc8, 0xdf, 0xfb, 0x05, 0xa6, 0x5f, -0x74, 0x05, 0x17, 0xff, 0xc6, 0xef, 0xb3, 0xf7, 0x8c, 0xb3, 0xd9, 0xff, -0xf7, 0x4b, 0xcb, 0x1c, 0x29, 0x28, 0xe0, 0x9c, 0x2f, 0xe6, 0x10, 0x43, -0x22, 0x81, 0x19, 0x91, 0x30, 0x9a, 0x29, 0x20, 0x04, 0xf4, 0x0e, 0xe0, -0xce, 0xa9, 0x58, 0x8f, 0x0a, 0xe2, 0xef, 0x2f, 0x93, 0xa5, 0xaa, 0xcc, -0x9b, 0x51, 0x87, 0xfa, 0xfc, 0x2b, 0xc0, 0xb5, 0x68, 0x3d, 0x7f, 0x2f, -0xda, 0x9e, 0xe8, 0x02, 0xef, 0xa4, 0xc5, 0x9f, 0x6d, 0x4f, 0x59, 0x70, -0xcd, 0xb2, 0x2e, 0x78, 0xff, 0xd2, 0xfd, 0xb4, 0x57, 0x2f, 0x22, 0xff, -0xe9, 0x2a, 0xc2, 0xee, 0x75, 0xc5, 0xb3, 0x0a, 0xa1, 0x79, 0x80, 0xec, -0xe5, 0x87, 0xf0, 0xab, 0xaf, 0xe4, 0x67, 0x0f, 0xae, 0x04, 0x60, 0xe6, -0xaf, 0x7c, 0x84, 0xde, 0x5f, 0x5f, 0x0e, 0xe5, 0x82, 0x04, 0x04, 0xc5, -0xa0, 0x65, 0x60, 0xa9, 0x18, 0x66, 0xc6, 0x9d, 0x0c, 0x00, 0x28, 0x4b, -0x8f, 0x15, 0xc8, 0x47, 0x11, 0x50, 0x58, 0xae, 0x0a, 0xa7, 0x0d, 0xd4, -0x48, 0xcf, 0x7e, 0x1f, 0x6e, 0xf7, 0x8b, 0xe4, 0x3b, 0x7f, 0xd2, 0x05, -0x1f, 0x26, 0xe5, 0xf8, 0x3d, 0xe3, 0x96, 0xcb, 0x97, 0x7e, 0xb6, 0x50, -0x6d, 0x6c, 0x98, 0x6d, 0xff, 0xf2, 0x29, 0x7c, 0xf3, 0x40, 0x17, 0x78, -0xa7, 0x33, 0x49, 0xb5, 0x3d, 0x8f, 0xde, 0xc3, 0xe8, 0xab, 0x1b, 0x01, -0x98, 0xf6, 0xa1, 0x3b, 0x8b, 0xdd, 0x97, 0x22, 0xd7, 0x86, 0x12, 0x78, -0x41, 0xc2, 0x30, 0x23, 0x12, 0x8c, 0x08, 0x22, 0x82, 0xc2, 0x39, 0x3b, -0xf6, 0x4e, 0x2c, 0x3a, 0x21, 0x81, 0x7f, 0xbb, 0x45, 0x06, 0x82, 0x72, -0x53, 0x1c, 0xc1, 0xf4, 0x39, 0xe7, 0x83, 0x6b, 0xd1, 0x7e, 0x75, 0xe8, -0x08, 0xe0, 0x93, 0xc7, 0x00, 0xb3, 0xe6, 0x5f, 0x06, 0xc0, 0xe6, 0xb5, -0x0f, 0xf0, 0x83, 0xad, 0x67, 0xf2, 0xa2, 0x5c, 0x7f, 0xd4, 0xf3, 0x53, -0x89, 0xfc, 0xef, 0xb3, 0x3f, 0x00, 0x20, 0x3d, 0x6b, 0x61, 0x37, 0x90, -0x15, 0x83, 0x88, 0x01, 0xb1, 0x88, 0xb1, 0x60, 0x2d, 0xd6, 0x1a, 0x7a, -0xad, 0xe9, 0x46, 0x6e, 0x80, 0xa5, 0x27, 0x24, 0xa0, 0xca, 0x55, 0xaa, -0xd0, 0x13, 0x43, 0x34, 0x7d, 0x3e, 0xda, 0xdc, 0x4f, 0x6b, 0xfb, 0xd3, -0x47, 0xee, 0xac, 0x93, 0xfa, 0xc5, 0xb3, 0xb2, 0xee, 0xef, 0xfa, 0x9e, -0xf9, 0x5c, 0x73, 0xfb, 0x4a, 0x16, 0xff, 0xd1, 0xe3, 0xa4, 0x1f, 0x5e, -0x7d, 0x18, 0xfc, 0x14, 0x22, 0x5b, 0xc6, 0x92, 0x23, 0x00, 0x84, 0x20, -0x85, 0x7d, 0xc4, 0xa0, 0x62, 0xc1, 0x46, 0x88, 0x8d, 0x11, 0xb1, 0x88, -0x58, 0x2a, 0x46, 0x90, 0x32, 0x46, 0x80, 0x85, 0x27, 0x24, 0x10, 0xca, -0x9a, 0xbe, 0x2f, 0x81, 0xa8, 0xe7, 0x34, 0xb2, 0xd7, 0x5f, 0x3a, 0xbc, -0x9a, 0x9e, 0xa3, 0x88, 0x7c, 0x70, 0x6e, 0x93, 0xad, 0x3f, 0x7e, 0x00, -0x80, 0x4b, 0x3f, 0x74, 0x2b, 0x17, 0xbe, 0xff, 0x06, 0x00, 0x24, 0x1d, -0xe8, 0xd6, 0x41, 0x9d, 0xdf, 0x69, 0x3b, 0xe1, 0x3f, 0x77, 0xd4, 0x99, -0x70, 0x86, 0x05, 0xd7, 0x2c, 0x03, 0xa0, 0x35, 0xb2, 0xbe, 0x78, 0x06, -0x5b, 0xd8, 0xc6, 0x44, 0x88, 0x8d, 0x90, 0x28, 0x46, 0xa2, 0x08, 0x31, -0x86, 0xde, 0xc8, 0x80, 0x74, 0xf3, 0xe7, 0xc0, 0x89, 0x15, 0x80, 0x25, -0x41, 0x21, 0x16, 0x48, 0xfa, 0x67, 0x93, 0x8d, 0x6e, 0x3e, 0xc2, 0x36, -0x1d, 0xe0, 0x9d, 0x20, 0x8e, 0x51, 0x4e, 0x7b, 0xe6, 0xf3, 0x34, 0xb7, -0x3d, 0x59, 0x58, 0xa2, 0xd6, 0x87, 0xb6, 0xc6, 0x68, 0xfc, 0xd7, 0xe0, -0x11, 0xe0, 0x37, 0xed, 0x4f, 0x78, 0x70, 0x4b, 0x1f, 0xa3, 0x3a, 0x93, -0x8f, 0xfe, 0xe9, 0x03, 0xf4, 0xcf, 0x3a, 0x1b, 0x80, 0x7d, 0x4f, 0xdd, -0x4f, 0xa0, 0x50, 0x00, 0xb1, 0x18, 0x6b, 0x31, 0x51, 0x8c, 0x89, 0x22, -0xc4, 0x94, 0x56, 0x12, 0x41, 0xb5, 0xcb, 0x60, 0xc9, 0x54, 0x02, 0x47, -0xa4, 0xd1, 0xa0, 0x0c, 0x08, 0x50, 0xb5, 0x80, 0x6b, 0x91, 0x1f, 0xd8, -0x49, 0x08, 0xe5, 0xf6, 0xaf, 0xe5, 0xce, 0xab, 0x47, 0x96, 0x06, 0x7e, -0xfc, 0x00, 0x7e, 0xf5, 0x55, 0x64, 0x67, 0x2c, 0xc2, 0x54, 0x06, 0xc8, -0xb6, 0xad, 0xe9, 0x06, 0xec, 0xae, 0xf1, 0x88, 0xe7, 0x5e, 0xaf, 0xb2, -0xaf, 0x65, 0x59, 0x70, 0xcd, 0x32, 0xae, 0xbd, 0x7d, 0x65, 0x77, 0x73, -0x6b, 0x8d, 0xac, 0xe7, 0xf5, 0x1f, 0x7d, 0x83, 0x10, 0x2c, 0x6a, 0x0d, -0x18, 0x8b, 0xd8, 0x08, 0x63, 0x23, 0xac, 0x08, 0x6a, 0x02, 0x2a, 0xbe, -0xfb, 0xa2, 0xe3, 0x95, 0x9c, 0x53, 0x09, 0x2c, 0x32, 0x02, 0x56, 0x80, -0xbc, 0x49, 0x6b, 0xcf, 0x08, 0xc6, 0x14, 0xd2, 0x50, 0x7e, 0xea, 0x94, -0xda, 0xa6, 0xd3, 0xfc, 0xce, 0x75, 0xdd, 0x20, 0x45, 0xe1, 0x85, 0xd1, -0x0a, 0x2f, 0xee, 0xa9, 0x30, 0x77, 0xc1, 0x62, 0x6e, 0xba, 0x7d, 0x65, -0x37, 0xd8, 0x01, 0xc6, 0xd7, 0x3d, 0xc2, 0xf0, 0x3f, 0xac, 0x28, 0x4e, -0x64, 0x08, 0x5a, 0x06, 0xae, 0xb1, 0x31, 0x36, 0x8a, 0x8b, 0x82, 0xd0, -0x7a, 0x10, 0xd3, 0xad, 0x9b, 0x8e, 0xc7, 0x60, 0x2a, 0x81, 0x62, 0xf5, -0x7c, 0xa1, 0x80, 0x86, 0xa2, 0x0c, 0xec, 0x2a, 0xd0, 0x01, 0x7e, 0x0c, -0x02, 0x9d, 0x97, 0xa8, 0xc2, 0x73, 0xaf, 0x57, 0x79, 0x79, 0x7f, 0xca, -0xe2, 0x65, 0x5f, 0x62, 0xf1, 0xad, 0x5f, 0xec, 0x3e, 0xd3, 0xda, 0xbc, -0x96, 0x3d, 0x8f, 0xdc, 0xcd, 0xd8, 0xcf, 0xd7, 0xd2, 0xf6, 0x42, 0x50, -0x43, 0x30, 0xa6, 0xb0, 0x4b, 0x09, 0xde, 0x46, 0x11, 0x26, 0x14, 0x72, -0x7b, 0x84, 0x56, 0x27, 0x8b, 0x9d, 0xa4, 0x02, 0x18, 0x81, 0xa0, 0x02, -0xae, 0x45, 0x50, 0x41, 0x3a, 0x16, 0x42, 0x8f, 0x28, 0x8f, 0x8f, 0x47, -0x60, 0x3c, 0x33, 0xbc, 0xbc, 0x3f, 0xe5, 0xda, 0xdb, 0x57, 0xf2, 0xde, -0x1b, 0x3f, 0xd3, 0x05, 0x3e, 0xfa, 0xbd, 0x15, 0xb4, 0x46, 0xb7, 0x93, -0x7b, 0xc1, 0x79, 0xc1, 0xa9, 0xe0, 0xd5, 0x10, 0x24, 0x22, 0xb2, 0x31, -0x51, 0x7c, 0x98, 0x80, 0x38, 0x87, 0x22, 0x18, 0x85, 0x86, 0x87, 0x70, -0xb8, 0xdc, 0x59, 0xf7, 0x96, 0x04, 0x44, 0x84, 0x56, 0x2e, 0xb4, 0xf6, -0x8e, 0x40, 0x30, 0x65, 0x81, 0xaf, 0xc5, 0x76, 0x2f, 0xe5, 0xa6, 0xdf, -0x21, 0x32, 0x65, 0x32, 0x55, 0x18, 0x3e, 0x14, 0xd3, 0x3f, 0x6b, 0x6e, -0x17, 0xfc, 0xf8, 0xb3, 0xf7, 0x33, 0x7a, 0xff, 0x0a, 0xbc, 0x07, 0x17, -0x84, 0x3c, 0x40, 0x1e, 0xc0, 0x63, 0x50, 0x13, 0x61, 0x6c, 0x8c, 0x89, -0x13, 0xa2, 0x24, 0x25, 0x8a, 0x13, 0x22, 0x31, 0xa8, 0x0f, 0x84, 0x72, -0x83, 0xd8, 0xe7, 0x94, 0x49, 0xf5, 0xda, 0x81, 0xa9, 0x04, 0xa6, 0xa6, -0xd1, 0x35, 0x8a, 0xd0, 0x74, 0x42, 0x36, 0xf6, 0x66, 0x91, 0xde, 0x88, -0x08, 0x6a, 0x09, 0x18, 0x82, 0x0a, 0x5e, 0x05, 0xef, 0xc1, 0xbb, 0xe2, -0x84, 0xd5, 0xed, 0xe5, 0xf7, 0x2d, 0x27, 0xdd, 0x74, 0x0a, 0xf0, 0xe6, -0xf7, 0xef, 0x26, 0x77, 0x90, 0x79, 0x21, 0xf3, 0x65, 0xf1, 0x86, 0x25, -0x48, 0x84, 0xda, 0x18, 0x1b, 0x57, 0x88, 0xd3, 0x94, 0x38, 0x49, 0x89, -0xe3, 0x18, 0x63, 0x2c, 0x52, 0xde, 0x4b, 0x4c, 0xe4, 0x5a, 0xac, 0xfe, -0xe1, 0x95, 0x5a, 0xf3, 0x56, 0x0a, 0x1c, 0x08, 0x0a, 0x07, 0x9c, 0x61, -0xfc, 0x8d, 0x5d, 0x24, 0xf5, 0x7e, 0xb2, 0x66, 0x83, 0xee, 0x8c, 0x21, -0xa0, 0xc1, 0x13, 0xca, 0xca, 0x65, 0x6a, 0x53, 0x85, 0x99, 0xb1, 0x27, -0xf4, 0x1c, 0xae, 0x48, 0x1b, 0x6f, 0x6c, 0xc7, 0x07, 0xc1, 0x05, 0xc8, -0xd5, 0x90, 0x63, 0x08, 0xc4, 0x60, 0x63, 0xa2, 0xa4, 0x4a, 0x5c, 0xa9, -0x92, 0xa4, 0x55, 0xe2, 0x24, 0xc5, 0x1a, 0x83, 0x66, 0x39, 0x1a, 0x02, -0x78, 0xcf, 0xee, 0xcc, 0xe3, 0x83, 0x3f, 0xa1, 0x85, 0xa6, 0x2a, 0xb0, -0xde, 0x2b, 0x8c, 0xe5, 0x42, 0x7b, 0xa2, 0x05, 0x2a, 0x88, 0x49, 0xc0, -0xa6, 0x60, 0x52, 0xd4, 0x24, 0x04, 0x49, 0x50, 0x8d, 0xf0, 0xc1, 0xe2, -0x82, 0xc1, 0x39, 0x21, 0x77, 0x42, 0x9e, 0x0b, 0xce, 0x09, 0xd3, 0xac, -0xe3, 0xcc, 0x1d, 0x3f, 0x22, 0x34, 0xc7, 0x68, 0x8d, 0xac, 0x27, 0x73, -0x42, 0x16, 0x0c, 0xb9, 0x5a, 0x1c, 0x11, 0x6a, 0x12, 0x24, 0x4e, 0x88, -0xd3, 0x1a, 0x49, 0xb5, 0x46, 0x5a, 0xad, 0x93, 0x56, 0xaa, 0xc4, 0x49, -0x82, 0x35, 0x16, 0x09, 0x8a, 0x3a, 0x4f, 0xc8, 0x3d, 0x3b, 0x32, 0x4f, -0xe8, 0x64, 0x96, 0x93, 0x51, 0x00, 0x31, 0x0f, 0x05, 0xe5, 0x2b, 0xfb, -0xbd, 0xe0, 0x82, 0x21, 0xcf, 0x3d, 0xd8, 0x42, 0xd6, 0xd0, 0x39, 0xb1, -0x93, 0xa3, 0xe4, 0xa8, 0x77, 0x04, 0x0d, 0x04, 0xf5, 0xc5, 0x61, 0xbe, -0xf4, 0x6c, 0x3b, 0x08, 0xaf, 0x3c, 0xff, 0x0c, 0x2f, 0xac, 0x98, 0xcd, -0x99, 0xa9, 0x47, 0x24, 0x2a, 0xfd, 0x6e, 0xc1, 0x94, 0x69, 0x32, 0xa9, -0x10, 0xa7, 0x15, 0xd2, 0x6a, 0xad, 0x00, 0x1f, 0xc7, 0x88, 0x2a, 0x21, -0xcf, 0x08, 0xb9, 0x23, 0x64, 0x39, 0x3b, 0xda, 0x39, 0x2d, 0xef, 0x08, -0x3e, 0x74, 0xb4, 0x7e, 0x68, 0x70, 0x48, 0xc7, 0x4e, 0xa8, 0xc0, 0xa7, -0x1f, 0xf6, 0xeb, 0x42, 0x60, 0x38, 0x04, 0x65, 0x57, 0x0b, 0x9c, 0x13, -0x90, 0x18, 0x89, 0x52, 0x4c, 0x5c, 0xc3, 0x26, 0x35, 0x4c, 0x5a, 0x47, -0x92, 0x1a, 0x44, 0x55, 0xd4, 0x54, 0x50, 0x5b, 0xc1, 0x4b, 0x42, 0x90, -0x18, 0x47, 0xcc, 0x4f, 0xc7, 0xea, 0x6c, 0xe3, 0x74, 0x7a, 0xaf, 0xbd, -0x8b, 0xfc, 0xaa, 0x2f, 0x20, 0xbd, 0xb3, 0x20, 0xae, 0x20, 0x49, 0x0d, -0x5b, 0xad, 0x11, 0xd7, 0x7a, 0xa9, 0xf6, 0xf4, 0x52, 0xeb, 0xe9, 0xa3, -0x5a, 0xef, 0x21, 0xad, 0x54, 0xb0, 0x36, 0x2a, 0xce, 0x19, 0xb9, 0xc3, -0xb7, 0x33, 0xf2, 0x56, 0xc6, 0xd6, 0xa6, 0xc3, 0xfb, 0x30, 0x39, 0x80, -0x57, 0x1f, 0xe5, 0xd9, 0xa3, 0x14, 0x00, 0x14, 0x79, 0xd8, 0x07, 0xbd, -0x63, 0x67, 0x5b, 0x99, 0xe3, 0x15, 0xab, 0x02, 0x12, 0x61, 0xe2, 0xb8, -0x48, 0x3d, 0x21, 0x20, 0x3e, 0xc7, 0x59, 0x87, 0xfa, 0x42, 0x09, 0xf1, -0x1e, 0x2d, 0x2f, 0x3c, 0xf7, 0xe5, 0xca, 0xb2, 0x7b, 0x1e, 0x60, 0xee, -0x65, 0x1f, 0x04, 0xe0, 0xd0, 0xe6, 0x1b, 0xd9, 0xfc, 0xcd, 0x8f, 0x23, -0x51, 0x5c, 0x64, 0x9a, 0x24, 0x25, 0x49, 0x8b, 0xc0, 0x8d, 0xa2, 0x18, -0x01, 0xd4, 0x39, 0x7c, 0x96, 0xe3, 0x5a, 0x2d, 0x42, 0xb3, 0xc5, 0xcf, -0x27, 0x32, 0x1a, 0x2e, 0x9f, 0x4c, 0x60, 0xfb, 0xe0, 0x90, 0x1e, 0xeb, -0x32, 0xf8, 0x68, 0x02, 0x62, 0xec, 0x2a, 0x1f, 0xc2, 0x1d, 0x2d, 0x17, -0x78, 0xad, 0x11, 0x38, 0x3f, 0x51, 0x54, 0x05, 0x31, 0x51, 0x51, 0xa7, -0x88, 0x10, 0x54, 0x91, 0xc4, 0x61, 0x5c, 0x8e, 0x71, 0x0e, 0xe7, 0x3c, -0x12, 0x3c, 0xa2, 0xca, 0x8c, 0xea, 0x44, 0x17, 0x3c, 0x40, 0xef, 0x05, -0xef, 0xa7, 0xd2, 0xdb, 0x8f, 0x4d, 0x12, 0xa2, 0x38, 0x21, 0x4e, 0xd2, -0x22, 0xe7, 0xdb, 0x08, 0x50, 0x42, 0x96, 0x13, 0xda, 0x19, 0xae, 0xd1, -0xc4, 0x35, 0x9a, 0x8c, 0x4c, 0xb4, 0xd8, 0xd5, 0xce, 0x70, 0xb9, 0x27, -0x84, 0xae, 0x7d, 0x06, 0x8f, 0x05, 0xfe, 0x28, 0x0b, 0x01, 0xfc, 0xde, -0xa7, 0x3f, 0xb5, 0xdd, 0x07, 0xfd, 0x5e, 0xe6, 0x3c, 0x23, 0x4d, 0xc7, -0xfe, 0x66, 0x8e, 0xcf, 0x5d, 0x71, 0xc5, 0x2c, 0x06, 0x13, 0xa7, 0x44, -0x95, 0x1a, 0x49, 0xbd, 0x8f, 0xb4, 0x77, 0x80, 0xb4, 0x6f, 0x1a, 0xd5, -0xfe, 0x69, 0x54, 0xfa, 0x8a, 0xbe, 0xf8, 0xc2, 0x39, 0xec, 0xdb, 0xfc, -0x5c, 0x77, 0xbe, 0xd6, 0x6b, 0x2f, 0xd2, 0x33, 0x30, 0x9d, 0x7a, 0xdf, -0x00, 0xb5, 0xde, 0x3e, 0x2a, 0xb5, 0x3a, 0x49, 0x92, 0x62, 0x44, 0xc0, -0xf9, 0xc2, 0x32, 0x13, 0x0d, 0xdc, 0xc4, 0x04, 0xaf, 0x8f, 0x37, 0x78, -0x79, 0xa2, 0x4d, 0x96, 0xe5, 0x78, 0xef, 0x3b, 0xab, 0xbf, 0x6e, 0x70, -0x48, 0xef, 0x3f, 0x1e, 0x81, 0x63, 0x1e, 0xea, 0xbf, 0x73, 0x73, 0xed, -0xdc, 0x3c, 0xcf, 0x5f, 0x48, 0xe2, 0xb8, 0xbf, 0xa7, 0x5a, 0x61, 0x61, -0x7f, 0x8d, 0xde, 0xde, 0x3a, 0x51, 0xbd, 0x4e, 0x94, 0x56, 0x31, 0x69, -0x82, 0xd8, 0x42, 0x3c, 0xa5, 0xd8, 0x29, 0x55, 0xb5, 0xbb, 0xe5, 0x9b, -0x4a, 0x2f, 0xd5, 0x4b, 0xaf, 0x47, 0x44, 0x68, 0x6e, 0x7a, 0x02, 0xc9, -0x5b, 0x88, 0x31, 0x48, 0x79, 0x07, 0xa3, 0xbe, 0x04, 0xde, 0x6c, 0x92, -0x8f, 0x4f, 0x90, 0x8f, 0x8f, 0xb3, 0xfb, 0xe0, 0x38, 0xeb, 0xc7, 0x9a, -0xb4, 0xda, 0x2d, 0xb2, 0xcc, 0xe1, 0x43, 0xd7, 0x3e, 0x8b, 0x06, 0x87, -0x74, 0xfd, 0x29, 0x11, 0xe0, 0xd1, 0xcf, 0xc9, 0x37, 0xee, 0xfd, 0xee, -0x5d, 0x22, 0xf2, 0xb7, 0x95, 0x24, 0xa1, 0xde, 0x25, 0xd1, 0x43, 0x5c, -0xab, 0x63, 0xab, 0x15, 0x6c, 0x92, 0x16, 0x35, 0xbb, 0xb5, 0x80, 0x14, -0x35, 0x48, 0x77, 0x77, 0x90, 0xf2, 0x6b, 0xf2, 0x99, 0x56, 0x09, 0xde, -0x13, 0x5c, 0x19, 0xa8, 0x8d, 0x06, 0x6e, 0xa2, 0x41, 0x3e, 0x3e, 0xce, -0xd6, 0x83, 0x0d, 0x36, 0x8f, 0x37, 0x69, 0xb5, 0x8b, 0xd5, 0x0f, 0x3e, -0x74, 0x72, 0xff, 0x5d, 0x83, 0x43, 0xfa, 0xf5, 0xe3, 0x81, 0x3f, 0x3e, -0x81, 0x92, 0xc4, 0xaa, 0x6f, 0x7d, 0xe7, 0x21, 0x6b, 0xed, 0x8d, 0x69, -0x9a, 0xd0, 0x53, 0xa9, 0xf0, 0x9e, 0xbe, 0x1a, 0x03, 0x3d, 0x75, 0xa2, -0x5a, 0x8d, 0xa8, 0x5a, 0xc1, 0xa6, 0x15, 0x4c, 0x1c, 0x23, 0xd6, 0x22, -0xc6, 0x94, 0xd5, 0x63, 0x59, 0xfe, 0x6a, 0x07, 0x77, 0xb1, 0xe2, 0xc1, -0x39, 0x7c, 0xee, 0xf0, 0xad, 0x16, 0x79, 0xb3, 0x85, 0x6b, 0x4c, 0x70, -0x68, 0xbc, 0xc1, 0xcb, 0x07, 0x9b, 0xec, 0x69, 0x36, 0x69, 0xb7, 0x32, -0x72, 0xe7, 0xbb, 0xd6, 0x51, 0x58, 0x3d, 0x38, 0xa4, 0x2b, 0x4e, 0x04, -0xfe, 0xc4, 0x04, 0x80, 0x6f, 0x7f, 0xb4, 0x77, 0x5a, 0xa3, 0xd1, 0x1c, -0xb2, 0xd6, 0x2e, 0x4c, 0xd2, 0x98, 0x6a, 0x9a, 0x72, 0x4e, 0xbd, 0xca, -0x59, 0x3d, 0x35, 0xd2, 0x5a, 0x15, 0x5b, 0xa9, 0x10, 0xa5, 0x29, 0x26, -0x4e, 0xca, 0x43, 0x88, 0xa1, 0xa8, 0xbf, 0x41, 0x83, 0xa2, 0x21, 0x10, -0x82, 0x27, 0xe4, 0x0e, 0x9f, 0x65, 0xf8, 0x76, 0x1b, 0xd7, 0x6a, 0xd1, -0x98, 0x68, 0x32, 0x3c, 0xd1, 0x62, 0x64, 0xa2, 0x45, 0xb3, 0xdd, 0x26, -0x6b, 0xe7, 0xe4, 0x9d, 0x9c, 0x7f, 0x0a, 0xe0, 0xdf, 0x92, 0x00, 0xc0, -0xbd, 0x37, 0xf7, 0x4e, 0x9b, 0x68, 0x34, 0x87, 0x22, 0x6b, 0x16, 0xc6, -0x51, 0x4c, 0x92, 0xc4, 0xf4, 0x54, 0x53, 0xce, 0xaa, 0x56, 0x99, 0x55, -0x4d, 0xa9, 0xa4, 0x29, 0x36, 0x2d, 0x09, 0x44, 0x51, 0x79, 0x30, 0x2f, -0x08, 0x04, 0xef, 0x8b, 0x14, 0x99, 0x67, 0xf8, 0x76, 0xc6, 0xfe, 0x56, -0xc6, 0x68, 0xb3, 0xcd, 0x8e, 0x46, 0xbb, 0x6b, 0x97, 0xdc, 0x39, 0x9c, -0x2f, 0x76, 0xdc, 0x12, 0xcb, 0x49, 0x83, 0x3f, 0x29, 0x02, 0x00, 0xdf, -0xfa, 0xcd, 0xde, 0x69, 0x8d, 0x46, 0xe3, 0xdf, 0x8d, 0x98, 0xab, 0xa2, -0xc8, 0x12, 0xc5, 0x31, 0x69, 0x5c, 0x90, 0x99, 0x9e, 0xc6, 0xf4, 0xc7, -0x31, 0xfd, 0x71, 0x44, 0x6a, 0x2d, 0xb1, 0x29, 0x3c, 0x9f, 0xab, 0xd2, -0xf6, 0x81, 0xf1, 0xdc, 0x73, 0x20, 0xcb, 0x79, 0xb3, 0xed, 0x68, 0xe4, -0x39, 0x59, 0x9e, 0x93, 0x67, 0x79, 0xd7, 0x2e, 0x3e, 0x04, 0x74, 0x52, -0xba, 0x1c, 0x1c, 0xd2, 0xbb, 0x4f, 0x16, 0xfc, 0x49, 0x13, 0x00, 0xe0, -0xd1, 0xcf, 0xc9, 0xca, 0xaf, 0x7d, 0x7b, 0x50, 0x84, 0x2f, 0x5b, 0x53, -0x5c, 0x79, 0xd8, 0x28, 0x22, 0xb2, 0x96, 0x28, 0xb2, 0x58, 0x6b, 0x31, -0xc6, 0x74, 0x83, 0x56, 0x55, 0xf1, 0x41, 0xf1, 0xde, 0xe3, 0xbc, 0xc7, -0x3b, 0x7f, 0x18, 0xb4, 0x0f, 0x84, 0x50, 0x06, 0x6a, 0x61, 0x99, 0xed, -0xc0, 0xf2, 0xc1, 0x21, 0x5d, 0x7b, 0x2a, 0xe0, 0x4f, 0x8d, 0x40, 0xd9, -0xfe, 0xe2, 0x5a, 0xbb, 0x48, 0x55, 0x57, 0x19, 0x23, 0x57, 0x19, 0x63, -0x30, 0x62, 0x30, 0x46, 0x8a, 0x34, 0x49, 0x71, 0x09, 0x05, 0x9d, 0x8b, -0x5b, 0x2d, 0x80, 0x86, 0x40, 0x08, 0xda, 0x05, 0xad, 0xda, 0xb5, 0xcb, -0x01, 0x60, 0xd5, 0xa9, 0xae, 0xfa, 0x3b, 0x22, 0xd0, 0x69, 0x83, 0x57, -0xcb, 0x55, 0x46, 0x64, 0x85, 0x18, 0x59, 0x2a, 0x22, 0x03, 0x66, 0x0a, -0x01, 0x80, 0xa0, 0xa1, 0x4b, 0xa2, 0x58, 0xec, 0x2e, 0xf0, 0x75, 0xc0, -0x2a, 0x8e, 0x53, 0xa0, 0xfd, 0xbf, 0x10, 0x98, 0xdc, 0x06, 0xaf, 0x96, -0xa5, 0xc0, 0x22, 0x8a, 0x6b, 0x8f, 0x79, 0x65, 0xef, 0xb4, 0x03, 0x14, -0x80, 0xb7, 0x53, 0x94, 0xc3, 0x6b, 0x06, 0x87, 0x74, 0xf8, 0x1d, 0xbf, -0xb4, 0x6c, 0xbf, 0xb0, 0xbf, 0xd4, 0xff, 0xb2, 0xda, 0xbb, 0xfe, 0x9f, -0x3d, 0xde, 0xf5, 0x04, 0xfe, 0x0f, 0x54, 0x13, 0xec, 0xcc, 0x99, 0x7c, -0x3d, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, -0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_plugin_dsp.c b/Source/Core/DolphinWX/resources/toolbar_plugin_dsp.c deleted file mode 100644 index 0f4f24f4e7..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_plugin_dsp.c +++ /dev/null @@ -1,316 +0,0 @@ -static const unsigned char toolbar_plugin_dsp_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, 0x0e, 0x01, -0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x7b, 0x70, 0x5c, 0xd5, -0x7d, 0xc7, 0x3f, 0xe7, 0xde, 0xdd, 0x95, 0xb4, 0xbb, 0xd2, 0x4a, 0xb6, -0x2c, 0xc9, 0xef, 0xb5, 0xc0, 0x74, 0xc0, 0xd8, 0x56, 0xcc, 0x18, 0x4c, -0x93, 0x60, 0xd9, 0xbc, 0xfa, 0x4a, 0x6c, 0x92, 0x29, 0x01, 0x6d, 0x82, -0xe5, 0x96, 0x92, 0xa1, 0x0f, 0x70, 0x28, 0x90, 0x09, 0xc2, 0xb5, 0x5d, -0x10, 0xd3, 0x16, 0x06, 0x1b, 0x48, 0x4a, 0x81, 0x38, 0x36, 0x29, 0x52, -0x5c, 0xc1, 0xd4, 0x40, 0x26, 0x6d, 0x02, 0xd8, 0x96, 0x5d, 0x52, 0x0c, -0x64, 0x40, 0xb6, 0x6c, 0x17, 0xe3, 0x58, 0x92, 0x1d, 0xc9, 0x96, 0x56, -0x5e, 0x69, 0xb5, 0x2b, 0x69, 0x77, 0xa5, 0xbd, 0xe7, 0xf4, 0x8f, 0xfb, -0xd8, 0xab, 0xb5, 0x64, 0x4c, 0xa0, 0x93, 0xe9, 0x6f, 0xe7, 0xce, 0x9e, -0xbd, 0xf7, 0x3c, 0xbe, 0xdf, 0xf3, 0x7b, 0x9c, 0xdf, 0x39, 0x77, 0x85, -0x52, 0x8a, 0xff, 0xcf, 0xe2, 0xb9, 0xd8, 0x8a, 0x91, 0xba, 0xc6, 0x5a, -0xc0, 0xbe, 0x42, 0x40, 0x1c, 0xd8, 0xdc, 0xd4, 0xdc, 0xb0, 0x3f, 0xbf, -0xee, 0x03, 0x0f, 0xfc, 0x6b, 0x58, 0x29, 0x55, 0xab, 0x94, 0x0c, 0x4b, -0xa9, 0x6a, 0x95, 0x92, 0x28, 0xa5, 0x50, 0x4a, 0x22, 0xa5, 0x8a, 0x2b, -0x25, 0xdb, 0xa4, 0x54, 0xad, 0xcf, 0x3e, 0xfb, 0x97, 0xad, 0x9f, 0x95, -0x80, 0xb8, 0x90, 0x06, 0x22, 0x75, 0x8d, 0x61, 0x60, 0x33, 0xb0, 0x06, -0x28, 0xb5, 0x6e, 0x77, 0x01, 0xf5, 0xf9, 0xc0, 0x1f, 0x7a, 0x68, 0x57, -0x8d, 0x52, 0xaa, 0x5e, 0x4a, 0xb9, 0xc6, 0x02, 0xee, 0x06, 0x8d, 0x4d, -0x42, 0xca, 0xf3, 0xc8, 0x3c, 0x25, 0xa5, 0xda, 0xf6, 0xc2, 0x0b, 0xf7, -0xc4, 0x3f, 0x37, 0x02, 0x91, 0xba, 0xc6, 0x52, 0x60, 0x1b, 0xb0, 0x2e, -0xef, 0xd1, 0xe6, 0xa6, 0xe6, 0x86, 0x2d, 0xee, 0x1b, 0x1b, 0x37, 0xbe, -0x5c, 0xaf, 0x94, 0xba, 0x57, 0x4a, 0x59, 0x93, 0x0f, 0x78, 0x32, 0xe0, -0x79, 0x04, 0xec, 0xe7, 0x71, 0x29, 0xe5, 0xfa, 0x1f, 0xfe, 0x70, 0xc3, -0xab, 0x9f, 0x99, 0x40, 0xa4, 0xae, 0x71, 0x2d, 0xb0, 0x83, 0xdc, 0x8c, -0x03, 0xb4, 0x61, 0xce, 0xfa, 0x21, 0x87, 0xc9, 0xe6, 0x7f, 0xaf, 0x97, -0x52, 0x6d, 0x52, 0x4a, 0x86, 0x4d, 0x40, 0x26, 0x38, 0xbf, 0x3f, 0x88, -0xdf, 0x1f, 0xc4, 0xeb, 0xf5, 0xe1, 0xf5, 0xfa, 0x26, 0x00, 0xcd, 0x66, -0xc7, 0x49, 0xa7, 0x53, 0x24, 0x93, 0x09, 0x12, 0x89, 0x41, 0xb2, 0xd9, -0x6c, 0x3e, 0xc1, 0xf5, 0xdb, 0xb7, 0x7f, 0x67, 0xe7, 0x6f, 0x4d, 0x20, -0x52, 0xd7, 0x58, 0x6f, 0x81, 0x77, 0xcb, 0x4e, 0x60, 0x43, 0x53, 0x73, -0xc3, 0x10, 0xc0, 0x23, 0x8f, 0xbc, 0x5e, 0x23, 0xa5, 0xdc, 0xaa, 0x94, -0xac, 0x35, 0x07, 0x56, 0x78, 0x3c, 0x1e, 0xca, 0xca, 0x66, 0xe0, 0xf7, -0x07, 0x29, 0x2b, 0x29, 0x64, 0xe6, 0xf4, 0x00, 0xe5, 0xa1, 0x22, 0x0a, -0xbd, 0x1e, 0x8a, 0xbc, 0x1e, 0x0c, 0x43, 0x21, 0xb3, 0x8a, 0xe8, 0x60, -0x92, 0xc1, 0xc4, 0x28, 0x9d, 0x7d, 0x31, 0x06, 0x92, 0xc3, 0xc4, 0x07, -0x63, 0xf4, 0x9f, 0x8b, 0x5a, 0x24, 0x1d, 0x22, 0xb7, 0xec, 0xd8, 0xf1, -0xb7, 0x17, 0xad, 0x09, 0x87, 0x80, 0x65, 0x36, 0x9d, 0x79, 0x33, 0xbf, -0xa1, 0xa9, 0xb9, 0xe1, 0x29, 0xfb, 0xc7, 0xa3, 0x8f, 0xfe, 0x74, 0x83, -0x52, 0x72, 0xab, 0x3d, 0xa3, 0xba, 0xee, 0x65, 0xda, 0xb4, 0x19, 0x14, -0x17, 0x97, 0x32, 0x7f, 0x76, 0x31, 0x97, 0x57, 0x97, 0x51, 0xe4, 0xf3, -0x20, 0x0d, 0x85, 0xb2, 0x40, 0x4b, 0x43, 0x21, 0xb3, 0xd2, 0x22, 0x21, -0x91, 0x86, 0xc2, 0x30, 0x24, 0xfd, 0x83, 0xc3, 0xb4, 0x75, 0x76, 0x33, -0x98, 0x48, 0xd0, 0x7d, 0xe6, 0x34, 0xa3, 0xa9, 0x51, 0x9b, 0x40, 0x5c, -0x29, 0xb5, 0x60, 0xe7, 0xce, 0xfb, 0x2f, 0xca, 0x27, 0xdc, 0x51, 0xc8, -0xed, 0xa8, 0x60, 0x9a, 0xcc, 0x8b, 0xd6, 0xac, 0x97, 0x0a, 0xc1, 0x0e, -0xa5, 0x58, 0x6b, 0xf2, 0x55, 0x94, 0x95, 0xcd, 0x60, 0xda, 0xb4, 0x4a, -0x16, 0xcc, 0x0b, 0x71, 0xc5, 0xc2, 0x52, 0xfc, 0x85, 0x3a, 0xd2, 0x00, -0x99, 0x55, 0x08, 0x05, 0x3d, 0x7d, 0x49, 0xba, 0x7b, 0x87, 0x88, 0x0d, -0xa5, 0x18, 0x4c, 0x8c, 0x3a, 0xb3, 0x2c, 0xa5, 0xc4, 0xef, 0xf3, 0x50, -0x51, 0x12, 0x64, 0xf1, 0xbc, 0x59, 0xf4, 0x0f, 0x95, 0x50, 0xe8, 0xf3, -0x72, 0xf4, 0xf8, 0x31, 0xb2, 0x46, 0x16, 0x0b, 0xc3, 0x3a, 0xe0, 0xa9, -0x48, 0x5d, 0x63, 0x69, 0x53, 0x73, 0xc3, 0x05, 0x89, 0xb8, 0x09, 0x84, -0x5d, 0xe5, 0x36, 0x1b, 0x3c, 0x80, 0x52, 0x6a, 0x9f, 0x52, 0xd4, 0x00, -0x68, 0x9a, 0x46, 0x55, 0x55, 0x98, 0x8a, 0x8a, 0xe9, 0x2c, 0xaf, 0x99, -0x4e, 0xf9, 0xb4, 0x02, 0x94, 0x02, 0x95, 0x55, 0x8c, 0x67, 0x0d, 0x8e, -0x9f, 0x1c, 0xe0, 0xa3, 0x93, 0x31, 0x0e, 0x1f, 0xfd, 0x25, 0xfd, 0xe7, -0xba, 0xf1, 0x79, 0x0b, 0xf1, 0x79, 0x0b, 0x98, 0x37, 0xf7, 0x0a, 0xfc, -0xfe, 0x10, 0x42, 0x40, 0x7a, 0x6c, 0x9c, 0x33, 0x03, 0x43, 0xf4, 0xc7, -0x93, 0xcc, 0x28, 0x0e, 0x30, 0x3d, 0x58, 0xcc, 0xdc, 0x99, 0xb3, 0xe9, -0xec, 0x3e, 0xe5, 0x68, 0x1e, 0x78, 0x0a, 0x98, 0x1f, 0xa9, 0x6b, 0xfc, -0x10, 0xb8, 0xa5, 0xa9, 0xb9, 0xa1, 0xed, 0x93, 0x08, 0xd4, 0xba, 0xca, -0x8e, 0x0d, 0x6e, 0xd9, 0xb2, 0x7b, 0x0d, 0x98, 0xe0, 0x01, 0xc2, 0xe1, -0xcb, 0x99, 0x3d, 0xab, 0x94, 0x6b, 0xaf, 0x99, 0x8e, 0xd7, 0xa3, 0xa1, -0x14, 0x8c, 0xa7, 0x0c, 0x3e, 0x3a, 0x11, 0xe7, 0xa3, 0x5f, 0xc7, 0xe8, -0xee, 0xe9, 0xe2, 0x3f, 0x7e, 0xfe, 0x1c, 0x89, 0xe4, 0xc0, 0x84, 0x81, -0xde, 0x79, 0xef, 0xa7, 0xd4, 0x2c, 0xb9, 0x9e, 0x9a, 0x25, 0xab, 0x01, -0x10, 0x42, 0xe0, 0xd1, 0x35, 0x52, 0x63, 0xe3, 0x78, 0x75, 0x9d, 0xf9, -0x55, 0xb3, 0x38, 0x13, 0xed, 0x25, 0x95, 0x4e, 0x01, 0x84, 0xef, 0xb8, -0xe3, 0x9f, 0xd6, 0x34, 0x35, 0x37, 0xbc, 0x16, 0xa9, 0x6b, 0x6c, 0x03, -0xf6, 0x45, 0xea, 0x1a, 0x57, 0x4d, 0x46, 0x62, 0xaa, 0x85, 0xcc, 0xa9, -0x28, 0xa5, 0x5a, 0x2b, 0x84, 0x59, 0x0e, 0x85, 0xca, 0x99, 0x3b, 0xbb, -0x8c, 0x2f, 0x7f, 0xb1, 0x1c, 0xa1, 0x0b, 0x40, 0xd1, 0x7b, 0x36, 0xcd, -0xc1, 0xf7, 0xfa, 0x18, 0x1e, 0x19, 0xa3, 0x2f, 0x7a, 0x9a, 0xdd, 0xaf, -0x6f, 0x23, 0x93, 0x49, 0x71, 0xe3, 0xf5, 0xb5, 0xdc, 0x74, 0xe3, 0x6a, -0x96, 0x2c, 0x5e, 0xc4, 0xe1, 0xf6, 0xa3, 0xbc, 0xf1, 0xe6, 0x5e, 0xde, -0xdc, 0xb3, 0x07, 0x80, 0x9a, 0xc5, 0xab, 0x40, 0x81, 0x26, 0x04, 0x1e, -0x4d, 0xc3, 0xa7, 0xe9, 0x68, 0x42, 0x30, 0xa7, 0x72, 0x26, 0x27, 0x4e, -0x75, 0x00, 0xca, 0x9e, 0xd0, 0xd7, 0x30, 0x83, 0xc8, 0x5a, 0x60, 0x2b, -0xb0, 0x2a, 0x1f, 0xa8, 0xe6, 0x2a, 0xd7, 0xb8, 0xca, 0x5d, 0x76, 0x41, -0x29, 0x59, 0x23, 0xa5, 0x19, 0x6d, 0xfc, 0xfe, 0x20, 0x73, 0x67, 0x17, -0x81, 0x00, 0x04, 0x1c, 0x3f, 0x91, 0x60, 0xdf, 0x81, 0x33, 0x8c, 0x8c, -0x8e, 0x03, 0x8a, 0x03, 0x6f, 0xbf, 0x4c, 0x26, 0x93, 0xe2, 0xbe, 0x0d, -0x7f, 0xc5, 0x83, 0xf7, 0xdf, 0xcb, 0xb2, 0x65, 0x4b, 0xf1, 0xfa, 0xbc, -0x2c, 0x5b, 0xb6, 0x94, 0x07, 0xef, 0xbf, 0x97, 0x6f, 0xdf, 0x59, 0x4f, -0xdb, 0xe1, 0x3d, 0x9c, 0xed, 0x3d, 0x89, 0x34, 0x41, 0xa2, 0x09, 0x81, -0xcf, 0xa3, 0x53, 0xe8, 0xf1, 0x52, 0x35, 0xbd, 0xdc, 0x1a, 0x13, 0x2c, -0xd0, 0x34, 0x35, 0x37, 0xbc, 0x86, 0xb9, 0xea, 0xd7, 0x5a, 0x0b, 0xeb, -0x94, 0x04, 0x1c, 0x07, 0x76, 0xc7, 0x7b, 0xa5, 0x54, 0x8d, 0x19, 0xab, -0x25, 0x05, 0x05, 0x85, 0x54, 0x55, 0x16, 0xa1, 0x24, 0x74, 0x74, 0x24, -0xf9, 0xe0, 0x83, 0x18, 0xf6, 0x1a, 0x10, 0xed, 0x3f, 0x4d, 0x77, 0xcf, -0xc7, 0x5c, 0xbb, 0x62, 0x39, 0x7f, 0x70, 0xf3, 0xf5, 0x78, 0x3c, 0x3a, -0x99, 0xcc, 0x18, 0xef, 0xbe, 0xfb, 0x2b, 0x62, 0xb1, 0x01, 0x3c, 0x1e, -0x9d, 0xaf, 0x7f, 0xfd, 0xab, 0x54, 0x56, 0xcc, 0xe0, 0xd8, 0xf1, 0x83, -0xd8, 0x21, 0xd8, 0x24, 0xa1, 0xe1, 0xd3, 0x75, 0x42, 0xfe, 0x00, 0x01, -0x7f, 0xc0, 0x1e, 0x39, 0xfc, 0xcd, 0x6f, 0xfe, 0x83, 0x0d, 0xb8, 0xd5, -0xfa, 0xbe, 0xf7, 0x42, 0x04, 0x26, 0x15, 0x1b, 0xa0, 0x52, 0x8a, 0x60, -0xd0, 0x8f, 0x57, 0x17, 0x28, 0x43, 0x71, 0xfc, 0x78, 0x9c, 0x5c, 0x8e, -0xa3, 0x38, 0xd9, 0x61, 0x72, 0xbe, 0xe1, 0xfa, 0x5a, 0x34, 0x4d, 0x23, -0x95, 0x4a, 0xf3, 0xe7, 0x7f, 0xf1, 0xd7, 0x7c, 0xef, 0xe1, 0xbf, 0xe7, -0xd6, 0xdb, 0xd7, 0x73, 0xb8, 0xfd, 0x18, 0x9a, 0xa6, 0xb1, 0x62, 0xc5, -0x72, 0xfa, 0xa2, 0x9d, 0x48, 0xa5, 0x90, 0x56, 0x5b, 0x21, 0xc0, 0xa3, -0x6b, 0x78, 0x75, 0x9d, 0xe9, 0x25, 0x21, 0x40, 0xd9, 0x5a, 0x58, 0x9a, -0x47, 0x60, 0xed, 0xa7, 0x22, 0xf0, 0xd0, 0x43, 0xbb, 0x56, 0xe6, 0x96, -0x7e, 0x45, 0x49, 0xc0, 0x63, 0xc6, 0x77, 0x03, 0x06, 0x06, 0xd3, 0x4e, -0x58, 0x54, 0x4a, 0xd2, 0xdd, 0xf3, 0x31, 0x00, 0xc1, 0x60, 0x00, 0x81, -0xe0, 0x64, 0x47, 0x27, 0x67, 0x7b, 0xfb, 0x9c, 0xbe, 0x0e, 0x1d, 0x6e, -0x47, 0x58, 0x9f, 0xb1, 0xb1, 0xb4, 0x6b, 0x62, 0x00, 0x05, 0xba, 0x66, -0x6a, 0x61, 0x5a, 0xa8, 0x94, 0xdc, 0xda, 0xaa, 0x6c, 0xb3, 0xb6, 0x09, -0x84, 0xf3, 0xcd, 0xe8, 0x82, 0x04, 0xdc, 0x29, 0x82, 0xae, 0x7b, 0x4c, -0xc0, 0x06, 0x44, 0xa3, 0xa3, 0x0e, 0x70, 0xb7, 0x16, 0x00, 0x86, 0x87, -0x47, 0x50, 0x4a, 0x71, 0x49, 0x75, 0x98, 0x99, 0x55, 0x95, 0x4e, 0x5f, -0x4b, 0x97, 0x2c, 0x46, 0x29, 0xc5, 0xe1, 0xf6, 0xa3, 0x56, 0xdf, 0x12, -0x69, 0xb5, 0x05, 0xd3, 0x17, 0x74, 0x4d, 0x23, 0x58, 0x58, 0x64, 0x8f, -0x8e, 0x1d, 0xba, 0xdd, 0x26, 0x0d, 0xac, 0x74, 0x63, 0xbc, 0x60, 0x3a, -0xad, 0x94, 0xc4, 0xf4, 0x58, 0xf0, 0x78, 0xbc, 0x26, 0x68, 0xc3, 0x5c, -0x5d, 0xdd, 0xc0, 0x95, 0x52, 0xcc, 0x9e, 0xb5, 0x90, 0x9e, 0x33, 0x27, -0xd8, 0xfd, 0xda, 0xcf, 0xf8, 0xd2, 0x17, 0x57, 0x50, 0x58, 0x58, 0xc8, -0xf6, 0xe7, 0x9f, 0xa6, 0xed, 0xf0, 0x51, 0x2e, 0xad, 0x0e, 0x53, 0x5e, -0x5e, 0x4e, 0xcb, 0x2b, 0xbb, 0xe9, 0xe8, 0xec, 0x22, 0x18, 0x28, 0x35, -0x4d, 0x48, 0x82, 0x72, 0x39, 0xb3, 0x47, 0xd3, 0x08, 0x05, 0x82, 0xe4, -0x4c, 0x48, 0xe5, 0xe7, 0x63, 0x35, 0xd6, 0xe5, 0xac, 0x51, 0x93, 0x69, -0xc0, 0x59, 0xf9, 0x72, 0xd9, 0xa2, 0x79, 0x95, 0x97, 0x16, 0x22, 0x0d, -0x45, 0x6c, 0x20, 0x85, 0x94, 0xc6, 0x04, 0x13, 0xfa, 0xbd, 0xcb, 0x96, -0x03, 0x70, 0xe4, 0xc8, 0x31, 0x1e, 0x7f, 0xe2, 0x69, 0x06, 0x87, 0x12, -0xf8, 0x7c, 0x05, 0x5c, 0xb3, 0xfc, 0x2a, 0x7c, 0xbe, 0x02, 0x7e, 0xf4, -0x62, 0x13, 0xff, 0xf2, 0xbc, 0x99, 0x66, 0x5d, 0xf5, 0x85, 0x9b, 0xcd, -0xc5, 0x0f, 0xe9, 0xf8, 0x80, 0x86, 0x40, 0x17, 0x1a, 0xba, 0x26, 0xd0, -0x35, 0x1d, 0x57, 0x28, 0xcd, 0xc7, 0xe5, 0x8e, 0x96, 0x13, 0x34, 0x10, -0xc7, 0x8c, 0x44, 0x0e, 0x6b, 0xc7, 0x46, 0x2d, 0x32, 0xd2, 0x30, 0x73, -0x99, 0x4c, 0x26, 0x6b, 0x01, 0xc7, 0x9a, 0x2d, 0x45, 0xc0, 0x5f, 0xca, -0xaa, 0xeb, 0x6e, 0x67, 0xdf, 0x81, 0x9f, 0xf0, 0xd6, 0xde, 0xfd, 0xbc, -0x73, 0xf0, 0x7d, 0xaa, 0xab, 0xc3, 0x00, 0xb4, 0x1f, 0x39, 0xe6, 0x0c, -0x72, 0xed, 0x35, 0x6b, 0x99, 0x3d, 0xeb, 0x32, 0xa7, 0x6f, 0xdb, 0x07, -0x84, 0x10, 0x26, 0x78, 0xa1, 0x51, 0x1c, 0x08, 0x10, 0x8b, 0xc7, 0x1d, -0xf3, 0xb2, 0xa4, 0xd5, 0x22, 0x34, 0x25, 0x81, 0xb6, 0x3c, 0xc6, 0x96, -0x09, 0x01, 0x88, 0x5c, 0x2e, 0x63, 0x27, 0x68, 0x52, 0x62, 0xab, 0xda, -0x36, 0xa3, 0x85, 0x97, 0x5e, 0x45, 0x20, 0x10, 0xe2, 0x9d, 0x77, 0x5f, -0x27, 0x36, 0x70, 0xc6, 0x01, 0xee, 0xf3, 0x15, 0x32, 0x77, 0xce, 0xe5, -0x2c, 0x59, 0xb4, 0x92, 0xa2, 0xa2, 0x12, 0xab, 0x5f, 0x13, 0xbd, 0xb0, -0x4c, 0x48, 0x60, 0x9a, 0x91, 0x26, 0xac, 0x45, 0x86, 0x29, 0x37, 0x5a, -0x6e, 0xb3, 0xba, 0xb0, 0x0f, 0x48, 0x69, 0xaa, 0x17, 0x94, 0xe5, 0xc0, -0x39, 0xf0, 0x39, 0x02, 0x39, 0x07, 0x56, 0x4a, 0x51, 0x59, 0x11, 0x66, -0xcd, 0x9f, 0xfc, 0x0d, 0xc9, 0xe1, 0x41, 0x92, 0xc9, 0x01, 0xbc, 0xde, -0x02, 0x4a, 0x43, 0x95, 0x8e, 0x19, 0xda, 0x3b, 0x35, 0xab, 0x57, 0x07, -0xa6, 0x10, 0x20, 0x94, 0x49, 0x20, 0xa7, 0x1d, 0xc5, 0x6d, 0xb7, 0x3d, -0xb2, 0x72, 0xd7, 0xae, 0x8d, 0xfb, 0x71, 0x65, 0x07, 0x91, 0xba, 0xc6, -0x95, 0xf6, 0x8e, 0xf0, 0x13, 0x9c, 0x58, 0xc5, 0x27, 0x33, 0x21, 0x69, -0x48, 0xa4, 0x34, 0x1c, 0xd0, 0xf9, 0x9a, 0x50, 0x4a, 0x72, 0xee, 0x5c, -0x0f, 0xa7, 0xbb, 0x8f, 0x31, 0x3c, 0x3c, 0xe8, 0xd4, 0x2b, 0x2b, 0xad, -0x64, 0xf6, 0xac, 0xcb, 0x98, 0x51, 0x3e, 0xcf, 0xb9, 0xa7, 0xa4, 0x34, -0x17, 0x76, 0x21, 0xd0, 0x04, 0x68, 0x9a, 0xc0, 0x5f, 0x58, 0x48, 0xcc, -0xd5, 0xa7, 0x25, 0x93, 0x66, 0xa5, 0x6e, 0x27, 0x76, 0x33, 0x2c, 0x05, -0xd8, 0xba, 0x75, 0xfd, 0x21, 0x3b, 0xda, 0x8c, 0x8d, 0x65, 0xe8, 0x8d, -0x25, 0xcd, 0x9c, 0x5e, 0xda, 0x97, 0x31, 0xa1, 0xac, 0x94, 0xe4, 0xd4, -0xe9, 0x23, 0xbc, 0xb2, 0xfb, 0x71, 0xf6, 0x1d, 0x68, 0xe2, 0x64, 0xc7, -0x87, 0xf4, 0x45, 0xbb, 0xe8, 0x8b, 0x76, 0x11, 0xed, 0x3f, 0xc5, 0xf1, -0x13, 0xef, 0xb1, 0x77, 0xff, 0x4b, 0xec, 0x3b, 0xf0, 0x12, 0xc3, 0x23, -0x39, 0x1b, 0x17, 0x42, 0x59, 0x24, 0x4c, 0xe3, 0x29, 0xf4, 0x15, 0x38, -0x13, 0x33, 0x85, 0x38, 0x7e, 0x90, 0xef, 0xc4, 0xb6, 0x2c, 0x05, 0xf6, -0xbb, 0x67, 0x78, 0x7c, 0x3c, 0x93, 0x67, 0x46, 0x86, 0x5b, 0x53, 0x80, -0xe2, 0xc3, 0x43, 0x7b, 0x38, 0xd4, 0xbe, 0x0f, 0x80, 0x40, 0x20, 0xc0, -0x4d, 0x37, 0xac, 0xe2, 0xf7, 0xaf, 0xbd, 0x9a, 0xea, 0xea, 0x30, 0x7d, -0x7d, 0x51, 0x4e, 0x76, 0x74, 0xf1, 0xe6, 0x5b, 0xfb, 0x38, 0xdc, 0x7e, -0x94, 0x5f, 0xec, 0xd9, 0xce, 0x1f, 0xaf, 0xbe, 0x83, 0x72, 0xff, 0xa5, -0x08, 0x4c, 0xd3, 0x31, 0x94, 0x49, 0xc4, 0x6d, 0x42, 0x53, 0x1c, 0x3a, -0x38, 0x7e, 0xe0, 0x26, 0xd0, 0x35, 0x59, 0x4d, 0xf7, 0x5a, 0xa0, 0xa4, -0x81, 0x34, 0xa4, 0xf9, 0x2d, 0x6d, 0x07, 0x37, 0x07, 0x3b, 0xd4, 0xbe, -0xd7, 0x01, 0xbf, 0x64, 0xf1, 0x22, 0x36, 0xfd, 0xdd, 0x77, 0x29, 0x29, -0x2e, 0x46, 0x08, 0x81, 0x00, 0x42, 0xa1, 0x12, 0x16, 0x5e, 0x7a, 0x09, -0x37, 0xdd, 0xb8, 0x8a, 0x5f, 0xbc, 0xb1, 0x97, 0x27, 0xb7, 0xfd, 0x80, -0xb7, 0xde, 0x7e, 0x99, 0xf0, 0xd7, 0x36, 0xa0, 0x89, 0x90, 0xe3, 0xc4, -0x00, 0xa3, 0xe9, 0x14, 0xf9, 0xb3, 0xdf, 0xd4, 0xdc, 0xb0, 0x3f, 0x52, -0xd7, 0x78, 0x1e, 0x3e, 0xb7, 0x09, 0xb9, 0x09, 0x84, 0xed, 0x82, 0x94, -0xaa, 0xcd, 0x36, 0x93, 0x74, 0x26, 0x8b, 0xcc, 0x2a, 0x8a, 0x0b, 0x0b, -0x26, 0x98, 0xd0, 0xd9, 0xde, 0x0e, 0x07, 0x7c, 0x75, 0x75, 0x98, 0x27, -0xfe, 0xf1, 0x11, 0x42, 0x25, 0x25, 0xe8, 0xba, 0x8e, 0x47, 0xd7, 0xd1, -0x3d, 0x1e, 0xeb, 0x5b, 0x47, 0xd7, 0x74, 0x6e, 0xbe, 0x69, 0x35, 0x77, -0xdd, 0x59, 0xcf, 0xf0, 0x48, 0x9c, 0x5f, 0x7e, 0xb8, 0x07, 0x5d, 0x13, -0x08, 0xcb, 0x79, 0x0d, 0x29, 0x19, 0x4d, 0xa7, 0x2e, 0x34, 0xfb, 0x9f, -0x8e, 0x80, 0xe9, 0xc8, 0x66, 0x67, 0x67, 0xfa, 0xfb, 0x31, 0x0c, 0x89, -0x2e, 0xb4, 0x09, 0xf6, 0x7f, 0xf8, 0xc8, 0x3e, 0xa7, 0xe1, 0xe6, 0x87, -0xbf, 0x8b, 0xa6, 0x69, 0xe8, 0x9a, 0x86, 0x6e, 0x81, 0xf6, 0xe8, 0xba, -0x59, 0xd6, 0x75, 0x74, 0x5d, 0x43, 0xd7, 0x74, 0xbe, 0x76, 0xcb, 0x57, -0xa8, 0xac, 0x98, 0x41, 0xfb, 0xc7, 0xbf, 0x22, 0x33, 0x96, 0x46, 0x58, -0xa1, 0x53, 0x2a, 0x75, 0x31, 0xe0, 0x1d, 0x7c, 0x0e, 0x81, 0xa6, 0xe6, -0x86, 0x53, 0x93, 0x55, 0x50, 0x4a, 0x76, 0xe5, 0x8e, 0x3e, 0x0c, 0x27, -0x0a, 0xd9, 0xeb, 0x42, 0x6c, 0xe0, 0x0c, 0x7d, 0x51, 0x93, 0xfb, 0x0d, -0xd7, 0xd7, 0x52, 0x35, 0xb3, 0x12, 0xa1, 0x09, 0x33, 0x23, 0x1d, 0x4d, -0xd1, 0xb0, 0xf1, 0x51, 0xbe, 0x54, 0xfb, 0x87, 0x7c, 0x79, 0xd5, 0x1f, -0xf1, 0xfd, 0x7f, 0x7e, 0x01, 0x4d, 0xd3, 0xcc, 0xe7, 0x42, 0xb0, 0x62, -0xc5, 0x72, 0xd2, 0x63, 0x29, 0x3a, 0xba, 0x4f, 0x58, 0xe1, 0x13, 0x2b, -0x18, 0x7c, 0xe2, 0xc4, 0x9f, 0x4f, 0xc0, 0x92, 0xd6, 0xfc, 0x0a, 0x52, -0xaa, 0x2e, 0x3b, 0x34, 0xa6, 0xd3, 0x29, 0x06, 0x12, 0x23, 0xe8, 0x42, -0x38, 0x26, 0x64, 0x83, 0x07, 0xd3, 0xf6, 0x6d, 0x87, 0x14, 0x9a, 0xc6, -0x33, 0x3f, 0x78, 0x9e, 0x03, 0xff, 0xf5, 0xdf, 0xce, 0xf3, 0x97, 0x5f, -0x79, 0x95, 0x9d, 0x3f, 0xfe, 0x89, 0xe9, 0x17, 0x42, 0x50, 0x55, 0x51, -0x01, 0x40, 0x4f, 0xff, 0x6f, 0x10, 0x02, 0xc7, 0x84, 0x52, 0xe9, 0x51, -0x37, 0xa6, 0x0b, 0x6e, 0xea, 0xf3, 0x09, 0xd8, 0xa1, 0xb4, 0xd6, 0xbe, -0xa1, 0x94, 0x6a, 0xb3, 0x77, 0x64, 0xd9, 0x6c, 0x96, 0x74, 0x66, 0x8c, -0xe2, 0x82, 0x02, 0x27, 0x6c, 0x0e, 0x8f, 0xe4, 0xfa, 0xaf, 0xac, 0xac, -0xb0, 0xfd, 0x1d, 0x01, 0xfc, 0xec, 0x3f, 0xdf, 0x38, 0x6f, 0xc0, 0xb6, -0x43, 0xed, 0x4e, 0x39, 0x10, 0x34, 0x37, 0x2f, 0x42, 0x68, 0x96, 0x01, -0x59, 0x04, 0x32, 0x19, 0xa7, 0x4e, 0x4b, 0xcb, 0xa6, 0x43, 0x90, 0x0b, -0xed, 0x17, 0x4b, 0xc0, 0x69, 0x90, 0x33, 0x21, 0x49, 0x2a, 0x35, 0x42, -0xdf, 0x60, 0x02, 0x69, 0x48, 0x8a, 0xbc, 0x66, 0x7a, 0x1d, 0x8f, 0xf7, -0xe6, 0x5a, 0x9b, 0x19, 0x1a, 0xca, 0x24, 0xce, 0xc2, 0x85, 0x97, 0x9c, -0x37, 0x60, 0x30, 0x18, 0xb0, 0xea, 0x28, 0x4e, 0x76, 0x74, 0x02, 0xa0, -0x5b, 0x1a, 0x31, 0xa4, 0x24, 0x3d, 0x36, 0x36, 0x19, 0x4e, 0xc8, 0x6d, -0x6e, 0x2e, 0x8e, 0x80, 0xdd, 0xe0, 0xf9, 0xe7, 0xef, 0x39, 0x64, 0x3b, -0x55, 0x26, 0x93, 0x66, 0x38, 0x95, 0xc6, 0xc8, 0x4a, 0x0a, 0x3c, 0x5e, -0xa4, 0x34, 0x28, 0x9f, 0x3e, 0xd7, 0x69, 0x70, 0xb8, 0xfd, 0xa8, 0xe9, -0x84, 0x96, 0xc6, 0xfe, 0x6c, 0x5d, 0xe4, 0x3c, 0xf0, 0xf5, 0xdf, 0xba, -0xdd, 0x49, 0xc5, 0xdf, 0x39, 0xf8, 0x3e, 0x00, 0xc5, 0xfe, 0x20, 0x00, -0x86, 0x94, 0xc4, 0x92, 0x09, 0x77, 0x93, 0xae, 0x29, 0xc8, 0x38, 0xf7, -0x27, 0x10, 0xb0, 0x36, 0x0e, 0xb6, 0x4d, 0xd4, 0xda, 0xf7, 0xa5, 0x94, -0x6d, 0x52, 0x4a, 0xb2, 0xd9, 0x2c, 0x67, 0x62, 0x31, 0x0c, 0x4b, 0x03, -0x4a, 0x29, 0xfc, 0x45, 0x25, 0x4e, 0xfb, 0x37, 0xf7, 0xb4, 0xa2, 0x64, -0x6e, 0xa5, 0xbe, 0x76, 0xc5, 0xd5, 0xfc, 0xe8, 0x85, 0xef, 0xb3, 0xbe, -0x3e, 0xc2, 0xfa, 0x75, 0x11, 0xb6, 0x3f, 0xf7, 0x34, 0xe1, 0x05, 0xf3, -0x91, 0x52, 0xf1, 0xe3, 0x97, 0xfe, 0x8d, 0x68, 0xb4, 0x1f, 0x80, 0x6b, -0x2e, 0xbf, 0xda, 0x5c, 0xed, 0xb3, 0x59, 0xfa, 0xe3, 0x83, 0xbf, 0x3d, -0x01, 0x4b, 0xec, 0x33, 0x21, 0x87, 0x80, 0x52, 0xaa, 0xcd, 0xd6, 0xc2, -0xc0, 0x50, 0x9c, 0xf1, 0xb1, 0x2c, 0xd3, 0xfc, 0x7e, 0x7c, 0x9a, 0xce, -0xfc, 0x59, 0x0b, 0x9d, 0x86, 0xd1, 0x68, 0x3f, 0x8f, 0x3f, 0xf9, 0x0c, -0x86, 0x94, 0x18, 0x86, 0x81, 0x61, 0x18, 0x84, 0xc3, 0xf3, 0xb8, 0x23, -0xf2, 0x0d, 0xbe, 0x15, 0xf9, 0x06, 0xe5, 0xe5, 0xe5, 0x48, 0x43, 0xf2, -0xf3, 0x37, 0xf6, 0xd0, 0xd4, 0xdc, 0x02, 0xc0, 0x95, 0x0b, 0x16, 0x51, -0x35, 0xad, 0x92, 0xac, 0x94, 0x64, 0xb2, 0xe3, 0xc4, 0xa7, 0xd6, 0xc0, -0x84, 0x34, 0xda, 0x96, 0xc9, 0x92, 0xb9, 0x56, 0xa0, 0x3e, 0x8f, 0x80, -0x7d, 0x8f, 0x74, 0x3a, 0x45, 0xdf, 0x50, 0x82, 0xb2, 0x22, 0x3f, 0xc1, -0x02, 0x1f, 0xa2, 0xb0, 0x80, 0x65, 0x8b, 0xae, 0xe3, 0x83, 0xa3, 0x07, -0x00, 0xd8, 0xb3, 0x77, 0x3f, 0x23, 0x23, 0xa3, 0xdc, 0x7d, 0xd7, 0x7a, -0x66, 0xce, 0xac, 0x42, 0x48, 0xe1, 0x64, 0xc7, 0x67, 0x7b, 0xfb, 0x78, -0xf6, 0xb9, 0xed, 0x8e, 0xe9, 0x04, 0x0a, 0x03, 0x7c, 0xfb, 0x2b, 0x77, -0x9a, 0xe6, 0x39, 0x3e, 0x4e, 0x6a, 0x6c, 0x9c, 0xd8, 0xd4, 0x1a, 0x70, -0x3b, 0xb1, 0x13, 0x39, 0xce, 0x23, 0xd0, 0xd4, 0xdc, 0xf0, 0x62, 0xa4, -0xae, 0x71, 0x1b, 0x50, 0x6a, 0xa7, 0xad, 0x4a, 0xc9, 0x56, 0xfb, 0x79, -0x32, 0x99, 0x60, 0x60, 0x38, 0xc1, 0x82, 0xf2, 0x6a, 0x4a, 0x8b, 0xfc, -0x78, 0x75, 0x9d, 0xda, 0x65, 0xab, 0xe9, 0x3e, 0x7b, 0x82, 0xe8, 0xc0, -0x59, 0x00, 0x0e, 0xbe, 0xfb, 0x3e, 0x07, 0xdf, 0x7d, 0x9f, 0xc5, 0x57, -0x5e, 0xc1, 0x92, 0x25, 0x8b, 0xe8, 0xeb, 0xeb, 0xa7, 0xa3, 0xa3, 0x8b, -0x8e, 0xce, 0x1c, 0x9e, 0x40, 0x61, 0x80, 0x27, 0xee, 0x7e, 0x8c, 0x79, -0x15, 0xf3, 0x18, 0x4a, 0x8d, 0x32, 0x32, 0x96, 0xa1, 0xab, 0xef, 0x2c, -0x59, 0xc3, 0x70, 0xc3, 0x69, 0x75, 0x95, 0xdd, 0x1a, 0x70, 0x7c, 0x75, -0xaa, 0x4d, 0xbd, 0x6d, 0x46, 0x6b, 0x01, 0x76, 0xee, 0x7c, 0xe0, 0x94, -0x94, 0xaa, 0x4b, 0x4a, 0x45, 0xd6, 0x30, 0xf8, 0xb8, 0xa7, 0x9b, 0xac, -0x21, 0x99, 0x53, 0x36, 0x8d, 0xe9, 0xc1, 0x20, 0xf3, 0xcb, 0x2b, 0xb9, -0xef, 0xb6, 0x07, 0xb9, 0x74, 0xce, 0x65, 0x13, 0x3a, 0x69, 0x3f, 0x72, -0x8c, 0xa6, 0xe6, 0x97, 0x79, 0x6b, 0x4f, 0xeb, 0x04, 0xf0, 0xd5, 0x33, -0x17, 0xf0, 0xc4, 0xdd, 0x8f, 0x11, 0xae, 0x0a, 0x93, 0x1a, 0x1f, 0x23, -0x91, 0x4a, 0x91, 0x18, 0x1d, 0xa5, 0x3b, 0xda, 0x4b, 0x9e, 0xb8, 0x83, -0x8a, 0x9b, 0x80, 0xa3, 0x81, 0xa9, 0x08, 0x6c, 0x76, 0x13, 0x00, 0x50, -0x4a, 0xbd, 0x6a, 0xfb, 0xc1, 0xb9, 0xc1, 0x73, 0x9c, 0x1d, 0x1c, 0x20, -0xe4, 0x2f, 0xc2, 0xab, 0xe9, 0x14, 0x79, 0x7d, 0x54, 0x86, 0xca, 0xd8, -0xb8, 0xee, 0x61, 0xee, 0xfa, 0xea, 0x5d, 0xcc, 0xaf, 0x9a, 0x3f, 0x69, -0xa7, 0x2b, 0xae, 0xb8, 0x9a, 0xfb, 0xfe, 0xf4, 0x1e, 0x9e, 0xb9, 0xe7, -0x49, 0x66, 0xcf, 0x98, 0x43, 0x22, 0x35, 0x4a, 0x6c, 0x78, 0x98, 0x73, -0xc3, 0x49, 0x8e, 0xf7, 0xfc, 0x86, 0x9e, 0x68, 0x9f, 0xbb, 0x7a, 0x57, -0x4b, 0xcb, 0xa6, 0x21, 0x70, 0x42, 0x7a, 0xd8, 0x7e, 0xe0, 0x3e, 0xa5, -0x98, 0x74, 0x43, 0xd3, 0xd4, 0xdc, 0x70, 0x2a, 0x52, 0xd7, 0xb8, 0x19, -0xd8, 0x1c, 0xa9, 0x6b, 0x5c, 0xd7, 0xd4, 0xdc, 0xf0, 0xa2, 0x52, 0x72, -0x27, 0xe6, 0xa9, 0x31, 0xf1, 0x44, 0x92, 0xb7, 0xff, 0xe7, 0x08, 0xab, -0x97, 0xd4, 0x90, 0x19, 0x1f, 0x47, 0xd7, 0x34, 0x84, 0x10, 0x78, 0x85, -0xe0, 0xba, 0xa5, 0xd7, 0xb1, 0xea, 0x0b, 0xb5, 0xa4, 0x33, 0x29, 0x4e, -0xf7, 0x9d, 0x46, 0x58, 0x49, 0xfe, 0x95, 0xe1, 0x45, 0x28, 0xcc, 0xf0, -0x9a, 0x48, 0xa5, 0x48, 0x8f, 0x8f, 0x91, 0x4c, 0xa7, 0x19, 0x1c, 0x1d, -0xe1, 0xc3, 0x93, 0x1f, 0xf3, 0x51, 0xe7, 0xc9, 0x7c, 0x18, 0xee, 0x97, -0x1c, 0xee, 0xa3, 0x94, 0x56, 0x77, 0xa5, 0x29, 0x77, 0x64, 0x4d, 0xcd, -0x0d, 0x5b, 0xac, 0xf4, 0xb5, 0x1e, 0x78, 0xf1, 0xa5, 0x97, 0xbe, 0x77, -0x28, 0x12, 0x79, 0xac, 0x55, 0x29, 0x6a, 0x41, 0x71, 0xe2, 0x74, 0x27, -0xbd, 0xb1, 0x28, 0xe1, 0xaa, 0xd9, 0x84, 0x2b, 0x67, 0x32, 0xbd, 0xb8, -0x98, 0x02, 0x8f, 0x17, 0xaf, 0x47, 0xc7, 0xa3, 0xe9, 0xe8, 0x9a, 0xc6, -0x9c, 0xca, 0xb0, 0x99, 0x65, 0x02, 0x03, 0x23, 0x49, 0xb2, 0x86, 0x64, -0xdc, 0xc8, 0x92, 0x1e, 0x1f, 0x27, 0x91, 0x1a, 0xe5, 0xd7, 0x67, 0x7a, -0x38, 0x7e, 0xaa, 0x8b, 0xc4, 0x48, 0x72, 0x32, 0x08, 0x6e, 0xa0, 0xee, -0x13, 0xb9, 0x09, 0x27, 0xd4, 0x17, 0x7c, 0x4b, 0x09, 0x10, 0xa9, 0x6b, -0x0c, 0x59, 0x84, 0x86, 0x6e, 0xbf, 0xfd, 0xd1, 0x95, 0xf9, 0x33, 0x60, -0xb7, 0xf7, 0x7a, 0x3c, 0x84, 0x82, 0xc5, 0x94, 0x15, 0x97, 0x50, 0xe0, -0xf5, 0xa1, 0x09, 0x41, 0x45, 0xd9, 0x34, 0xa7, 0x5e, 0xdf, 0x60, 0x0c, -0x29, 0x15, 0xc3, 0xa9, 0x11, 0x06, 0x12, 0x49, 0x86, 0x86, 0x27, 0x84, -0xcb, 0x7c, 0xe9, 0x6a, 0x69, 0xd9, 0xb4, 0xc0, 0x1a, 0xbf, 0x14, 0x70, -0x87, 0xa6, 0x5a, 0xf7, 0x1b, 0xd2, 0x4f, 0x24, 0x90, 0x2f, 0xb7, 0xdd, -0xf6, 0xc8, 0x0e, 0xac, 0x90, 0x9a, 0xdf, 0xf6, 0x73, 0x7c, 0x69, 0xbe, -0xb6, 0xa5, 0x65, 0xd3, 0x6b, 0x00, 0x91, 0xba, 0xc6, 0xdd, 0xe4, 0x34, -0xd0, 0xd5, 0xd4, 0xdc, 0xb0, 0xc0, 0x5d, 0xf1, 0x13, 0x0f, 0x77, 0xf3, -0x65, 0xd7, 0xae, 0x8d, 0xeb, 0xa5, 0x94, 0x9b, 0xa5, 0x94, 0x5d, 0xee, -0x93, 0xb9, 0xcf, 0x09, 0x7c, 0x1c, 0xa8, 0x77, 0x81, 0xdf, 0xc1, 0x44, -0xf3, 0xd9, 0x90, 0xdf, 0xe0, 0x53, 0x6b, 0xc0, 0x2d, 0xb7, 0xde, 0xba, -0x65, 0x0d, 0xb9, 0xb7, 0xf7, 0x93, 0xae, 0x94, 0x17, 0x29, 0x71, 0x4c, -0xa7, 0xdd, 0xdc, 0xd2, 0xb2, 0xe9, 0x94, 0x75, 0x80, 0xbb, 0x83, 0x89, -0xe7, 0x54, 0xdb, 0x9a, 0x9a, 0x1b, 0xbe, 0x93, 0xdf, 0xf0, 0x33, 0x11, -0x70, 0xcb, 0xad, 0xb7, 0x6e, 0x09, 0x91, 0x3b, 0xbb, 0x2c, 0x75, 0x0d, -0x6e, 0xff, 0x76, 0x83, 0xb5, 0x1d, 0xb1, 0xd5, 0x2a, 0xb7, 0xb6, 0xb4, -0x6c, 0x1a, 0xb2, 0xec, 0x7d, 0x03, 0xe6, 0x7b, 0x80, 0x52, 0x57, 0xfd, -0x0d, 0xee, 0x77, 0x76, 0xff, 0x27, 0x04, 0x3e, 0x8b, 0x5c, 0x00, 0xf8, -0xab, 0x98, 0xff, 0x0e, 0x38, 0x35, 0x55, 0xdb, 0xdf, 0x39, 0x01, 0xeb, -0xe5, 0xba, 0xfd, 0x97, 0x86, 0x2e, 0xeb, 0x6a, 0x9d, 0xec, 0x4f, 0x24, -0x93, 0xc9, 0xef, 0x9c, 0xc0, 0x67, 0x95, 0xff, 0x05, 0x96, 0xea, 0xa2, -0x83, 0x62, 0xef, 0x6d, 0x06, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, -0x44, 0xae, 0x42, 0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_plugin_gfx.c b/Source/Core/DolphinWX/resources/toolbar_plugin_gfx.c deleted file mode 100644 index 1ba72127ab..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_plugin_gfx.c +++ /dev/null @@ -1,291 +0,0 @@ -static const unsigned char toolbar_plugin_gfx_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, 0x14, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x35, -0x2f, 0x30, 0x34, 0xc1, 0xe2, 0xc4, 0xb0, 0x00, 0x00, 0x0c, 0xd7, 0x49, -0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x7b, 0x70, 0x1d, 0xd7, 0x5d, -0xc7, 0x3f, 0xe7, 0xec, 0xbd, 0x7b, 0xaf, 0x74, 0xaf, 0xa4, 0x6b, 0x59, -0x96, 0xec, 0xc4, 0x0f, 0xc5, 0x8e, 0x49, 0x5a, 0x3b, 0xb1, 0xf2, 0x98, -0x42, 0xc0, 0xc5, 0x8a, 0x69, 0x71, 0xa0, 0xc4, 0x0e, 0x30, 0xc3, 0xa4, -0x9d, 0x0e, 0x86, 0x36, 0x81, 0x32, 0xb4, 0x83, 0x0b, 0x03, 0xc3, 0xc0, -0x80, 0x31, 0x1d, 0x9e, 0xd3, 0x69, 0x5d, 0x86, 0x76, 0x32, 0xcc, 0xa4, -0xb8, 0x33, 0xa4, 0x11, 0x7f, 0xd0, 0xa4, 0xa1, 0x21, 0x93, 0x26, 0xae, -0x95, 0x07, 0x4d, 0x6c, 0x9c, 0xc6, 0x76, 0x1c, 0x27, 0x76, 0x6d, 0x49, -0x96, 0x65, 0x57, 0x2f, 0x4b, 0xf7, 0xa1, 0x7b, 0x75, 0x1f, 0xbb, 0xe7, -0xc7, 0x1f, 0xfb, 0xd0, 0xde, 0x87, 0x12, 0x3b, 0x0d, 0xd3, 0xe1, 0x37, -0x3a, 0xda, 0x3d, 0xab, 0xdd, 0xb3, 0xdf, 0xef, 0xef, 0x75, 0x7e, 0xe7, -0xac, 0x94, 0x88, 0xf0, 0xff, 0x59, 0xf4, 0x4f, 0x1a, 0xc0, 0x8f, 0x2b, -0xb1, 0xff, 0x8b, 0x41, 0x3f, 0xfa, 0xdb, 0xff, 0xd0, 0x8f, 0xd0, 0xef, -0xf5, 0x24, 0xf8, 0x81, 0xc0, 0xda, 0x22, 0xd1, 0xfe, 0xd8, 0xe1, 0x7f, -0xfb, 0xf3, 0xb1, 0xf7, 0xfa, 0x2e, 0xf5, 0x5e, 0x5d, 0x68, 0xd7, 0x43, -0x5f, 0xec, 0x47, 0x18, 0x10, 0x18, 0x00, 0x06, 0x40, 0x32, 0x08, 0x3b, -0x9a, 0x40, 0x2f, 0xa1, 0xf7, 0xf1, 0x2e, 0xd3, 0x17, 0xc9, 0x0a, 0x9c, -0x44, 0xe4, 0x04, 0x30, 0x86, 0xc8, 0x93, 0xdf, 0x7b, 0xfc, 0x2f, 0xdf, -0x95, 0xd8, 0x35, 0x13, 0xd8, 0xf5, 0xf0, 0x97, 0xfa, 0x81, 0x41, 0x90, -0x07, 0x80, 0x1d, 0x40, 0x86, 0xba, 0x47, 0x5b, 0x83, 0x6e, 0xd2, 0x7e, -0x00, 0xbc, 0xce, 0x1a, 0x21, 0x89, 0x46, 0x4b, 0x8d, 0x89, 0xc8, 0xb7, -0x81, 0x83, 0x47, 0x86, 0xf6, 0xb7, 0x24, 0xf3, 0xae, 0x04, 0xee, 0xfb, -0x9d, 0x2f, 0x0d, 0x82, 0xda, 0x07, 0xec, 0x09, 0x81, 0x46, 0x61, 0x0b, -0x2c, 0xc6, 0x6c, 0x16, 0x63, 0x36, 0x65, 0xcb, 0x3b, 0x82, 0xe0, 0xa6, -0x3a, 0x58, 0xd4, 0x31, 0x0f, 0x94, 0x18, 0x30, 0x42, 0xdc, 0x8e, 0x23, -0x8e, 0x8b, 0x53, 0xad, 0xb0, 0x02, 0x97, 0xb8, 0x18, 0x28, 0x97, 0xb0, -0x0b, 0x59, 0x92, 0xae, 0x43, 0xd2, 0xa9, 0x79, 0xf7, 0xab, 0xa5, 0xd7, -0x88, 0x08, 0x88, 0x01, 0xe1, 0x1b, 0xc0, 0xbe, 0x23, 0x43, 0xfb, 0xb3, -0xd7, 0x44, 0xe0, 0xbe, 0xdf, 0xfd, 0xf2, 0x00, 0xf0, 0x65, 0x60, 0x10, -0x54, 0x78, 0xdd, 0xd1, 0x9a, 0xb9, 0x64, 0x07, 0x73, 0xc9, 0x4e, 0x16, -0xda, 0xd2, 0x14, 0x12, 0x29, 0xaa, 0x68, 0xd6, 0xa4, 0x6d, 0xfa, 0xda, -0xe2, 0xf4, 0xb6, 0xdb, 0xf4, 0xb4, 0xc5, 0x71, 0x8d, 0xa1, 0x3b, 0x19, -0x27, 0x93, 0x88, 0xe3, 0xb8, 0x86, 0x9a, 0x2b, 0x38, 0xc6, 0xe0, 0xb8, -0xc6, 0xef, 0xbb, 0x5c, 0xce, 0x2e, 0x50, 0xaa, 0x54, 0x29, 0x55, 0x6b, -0xcc, 0xe4, 0x17, 0xa8, 0x54, 0xab, 0xa4, 0x4d, 0x8d, 0x54, 0x21, 0x47, -0xe7, 0xc2, 0x3c, 0x49, 0x71, 0x3d, 0x42, 0x46, 0xc0, 0x75, 0x41, 0x64, -0x0c, 0xe1, 0x8e, 0x28, 0x89, 0x96, 0x41, 0xfc, 0x4b, 0x9f, 0x39, 0x38, -0xa0, 0x94, 0x3a, 0x02, 0x64, 0x02, 0xf0, 0x97, 0x53, 0xdd, 0x4c, 0xb5, -0xaf, 0x60, 0x3a, 0xb5, 0x82, 0x4c, 0x9b, 0xcd, 0xcf, 0xad, 0xed, 0xe2, -0x9e, 0x1b, 0x3b, 0xb8, 0x39, 0xd3, 0xc6, 0xa6, 0x4c, 0x1b, 0xb6, 0x56, -0x54, 0x5c, 0xa8, 0x38, 0x86, 0x8a, 0x2b, 0x94, 0x1d, 0xa1, 0xea, 0x1a, -0x26, 0xf2, 0x65, 0x7e, 0x54, 0x28, 0x23, 0x18, 0x04, 0x85, 0x31, 0x0a, -0xad, 0x15, 0xda, 0x68, 0xd6, 0x74, 0xa6, 0x71, 0x5c, 0x17, 0x4b, 0x69, -0x32, 0x1b, 0xd7, 0x51, 0x73, 0x0c, 0x0b, 0xd5, 0x2a, 0x57, 0x72, 0x79, -0x26, 0xf3, 0x39, 0xe2, 0xd5, 0x0a, 0xa9, 0xcb, 0x23, 0x24, 0x2a, 0x55, -0x70, 0x14, 0xd4, 0x9c, 0x7e, 0x44, 0xfe, 0x00, 0x38, 0xf0, 0x8e, 0x04, -0xd0, 0x6a, 0x3f, 0x4a, 0x65, 0xd0, 0x9a, 0xbc, 0xdd, 0xc6, 0xc9, 0x95, -0x1b, 0x58, 0x8c, 0xb7, 0xf1, 0xab, 0xb7, 0xac, 0xe2, 0x23, 0xeb, 0xbb, -0xd9, 0xb9, 0xbe, 0x0b, 0x01, 0x6a, 0x06, 0x1c, 0x03, 0x6f, 0xce, 0x95, -0x19, 0xcf, 0x57, 0x39, 0x3b, 0x5f, 0xe2, 0xf5, 0xc9, 0x05, 0xc4, 0xb8, -0xbc, 0x31, 0x5d, 0x00, 0x71, 0xc1, 0x18, 0x30, 0xfe, 0xf1, 0x1a, 0xfa, -0xab, 0x3b, 0xd3, 0xa4, 0xdb, 0x12, 0x74, 0xa5, 0xda, 0x59, 0xd9, 0xd7, -0xcb, 0x42, 0xdf, 0x2a, 0xca, 0xe7, 0xdf, 0x22, 0x31, 0x37, 0x87, 0x32, -0x02, 0xe2, 0xec, 0x8b, 0x12, 0x68, 0x72, 0xa1, 0xfb, 0xfe, 0xf0, 0x91, -0x15, 0xba, 0xe6, 0xcc, 0x89, 0x65, 0x31, 0x9d, 0xee, 0xe2, 0x74, 0xcf, -0x7a, 0x36, 0x76, 0xa7, 0xf9, 0xb3, 0xbb, 0x6f, 0x62, 0x55, 0xbb, 0x8d, -0x06, 0x0c, 0x70, 0x78, 0x22, 0xc7, 0x2b, 0x93, 0x05, 0x4e, 0xcd, 0x96, -0x28, 0x56, 0x8d, 0x67, 0x6a, 0xd7, 0x20, 0x01, 0x18, 0x63, 0x3c, 0xdf, -0x0d, 0xc1, 0x2d, 0x73, 0x6e, 0xdc, 0xb0, 0xff, 0xb7, 0xfa, 0x3b, 0xec, -0x4d, 0xbf, 0x49, 0xb5, 0x54, 0xe5, 0xb1, 0xea, 0x36, 0xfe, 0x7e, 0xdd, -0x27, 0x68, 0xb3, 0xe3, 0xac, 0x8d, 0xb7, 0xd3, 0x3b, 0x72, 0x96, 0xf2, -0xcc, 0x55, 0x54, 0xa9, 0x02, 0x22, 0x77, 0x1c, 0x19, 0xda, 0x7f, 0xa2, -0xa5, 0x05, 0x74, 0xcd, 0xdd, 0x23, 0x31, 0x0b, 0x49, 0xc4, 0xb9, 0xd4, -0xd3, 0xc7, 0x1d, 0x6b, 0x57, 0xf0, 0xa9, 0x5b, 0xd7, 0x53, 0x16, 0xf8, -0x61, 0xbe, 0xc6, 0x8b, 0x33, 0x39, 0x86, 0xa7, 0xb2, 0x2c, 0x56, 0x5d, -0x0f, 0x4b, 0x4c, 0x88, 0x6b, 0x41, 0x5c, 0x41, 0x1c, 0xff, 0x68, 0x40, -0x1c, 0x01, 0x63, 0x10, 0x25, 0x80, 0xf1, 0x02, 0x39, 0x68, 0xc6, 0xf8, -0x6a, 0x10, 0x94, 0x12, 0xd0, 0x70, 0xa0, 0xf2, 0x14, 0xfb, 0x3e, 0x30, -0x43, 0xf2, 0xc3, 0x7b, 0x11, 0x6d, 0xf3, 0xfb, 0x87, 0xff, 0x0b, 0x33, -0x3a, 0xc4, 0x57, 0xb6, 0x3d, 0xc4, 0x48, 0xb1, 0x48, 0x2c, 0xa6, 0x49, -0xc5, 0x62, 0xa0, 0xab, 0xe0, 0xca, 0x1e, 0xa0, 0x35, 0x01, 0xd1, 0xea, -0x5e, 0x62, 0x16, 0x65, 0x11, 0x4a, 0xed, 0x09, 0xb6, 0xac, 0xca, 0xf0, -0xa3, 0x8a, 0xcb, 0xac, 0xe3, 0xf0, 0xf4, 0xec, 0x2c, 0xf9, 0x9a, 0x8b, -0x49, 0x2a, 0xe2, 0x31, 0x0b, 0x71, 0x05, 0x63, 0x0c, 0xe2, 0xe2, 0x01, -0x77, 0x41, 0x5c, 0xe5, 0x13, 0x50, 0x88, 0xab, 0x11, 0x03, 0xf8, 0xe4, -0x30, 0x0a, 0x31, 0x0a, 0x44, 0xa1, 0xc4, 0xf2, 0x08, 0x68, 0x0b, 0xa5, -0x84, 0x5f, 0x9f, 0x7d, 0x95, 0xc4, 0x8e, 0x3f, 0xc2, 0x9d, 0x9f, 0xa1, -0xf8, 0xbd, 0xa7, 0x28, 0x5d, 0x99, 0xe3, 0x97, 0x27, 0x2b, 0x7c, 0x6d, -0xfb, 0xe7, 0x10, 0x23, 0x14, 0x3a, 0x3a, 0x49, 0xcd, 0xe7, 0x40, 0x6b, -0x70, 0xcd, 0x60, 0xe0, 0x46, 0xcd, 0x16, 0x10, 0x76, 0x1b, 0xad, 0x99, -0x75, 0x05, 0xad, 0x84, 0xa3, 0xf3, 0x59, 0x72, 0x06, 0x4e, 0x95, 0x17, -0x28, 0x8a, 0x8b, 0xb6, 0x04, 0xa5, 0x41, 0x34, 0x20, 0x0a, 0x31, 0x1a, -0x31, 0x3e, 0x78, 0xc7, 0x07, 0xef, 0xf7, 0x31, 0xca, 0x27, 0xa4, 0xc0, -0xd5, 0x88, 0x58, 0x60, 0x0c, 0xca, 0xcf, 0x91, 0x4a, 0x83, 0x52, 0xa0, -0x2c, 0xa8, 0x9d, 0xa9, 0x21, 0x02, 0x73, 0xff, 0xf1, 0x18, 0x4e, 0xa1, -0x48, 0x39, 0x5b, 0xa6, 0x56, 0xb6, 0x50, 0x71, 0x0b, 0xa5, 0x15, 0x39, -0x51, 0xac, 0x56, 0x61, 0x36, 0x1c, 0x68, 0x19, 0xc4, 0x1f, 0xfb, 0xec, -0x57, 0x07, 0xb0, 0x74, 0x06, 0xd7, 0x50, 0x34, 0x16, 0x66, 0xb1, 0xc2, -0xa5, 0xd9, 0x39, 0x2e, 0x17, 0xf2, 0xa4, 0x6a, 0x15, 0x8c, 0x9d, 0xc0, -0xd5, 0x16, 0x61, 0x5a, 0x55, 0x0a, 0x14, 0x28, 0xa5, 0x3d, 0x57, 0x88, -0x03, 0x68, 0x3f, 0xf7, 0x2b, 0x30, 0x1a, 0x31, 0xde, 0x1c, 0x20, 0x81, -0xef, 0x07, 0x8f, 0x29, 0x9f, 0x80, 0xd6, 0xa8, 0x98, 0xe2, 0xdb, 0x6b, -0x06, 0xe9, 0x7b, 0xe2, 0x09, 0x4a, 0xe3, 0x57, 0x71, 0x1d, 0x97, 0xea, -0x42, 0x95, 0x67, 0x3e, 0xf0, 0x6b, 0x98, 0x72, 0x0d, 0xb7, 0x5c, 0xa3, -0x54, 0x75, 0x90, 0xaa, 0x83, 0xf6, 0x26, 0xbb, 0xcc, 0xbd, 0x0f, 0x1e, -0xc8, 0x1c, 0x19, 0xda, 0x9f, 0xad, 0xb7, 0x80, 0x62, 0x07, 0x02, 0x6e, -0x71, 0x91, 0xb6, 0x8a, 0xc3, 0xe6, 0x33, 0x79, 0xda, 0x94, 0x40, 0xdc, -0x42, 0xb4, 0xf6, 0x6f, 0xf1, 0xb4, 0x57, 0x6c, 0x4f, 0x53, 0xb1, 0x6d, -0xca, 0x6d, 0xed, 0x54, 0x92, 0x6d, 0x94, 0x52, 0x69, 0x94, 0x56, 0x28, -0x4b, 0xa3, 0x2c, 0xe5, 0x9f, 0x2b, 0x88, 0x29, 0x14, 0xca, 0x23, 0x16, -0x68, 0x3c, 0x20, 0xae, 0x75, 0x68, 0x85, 0x47, 0x76, 0xee, 0x43, 0x9e, -0x3f, 0xc8, 0x2f, 0xe6, 0x14, 0xc6, 0xd5, 0x3c, 0x7b, 0xeb, 0x03, 0x3c, -0x72, 0xcf, 0xef, 0x51, 0x9b, 0x2b, 0x60, 0xe6, 0x8b, 0xac, 0x9e, 0x9c, -0xc2, 0xcd, 0x17, 0xd1, 0x56, 0x58, 0x7f, 0x6e, 0x03, 0x5e, 0x68, 0x70, -0x21, 0x35, 0xa0, 0x94, 0x60, 0x4a, 0x8b, 0xac, 0xc8, 0xe6, 0x21, 0x1e, -0x43, 0x2c, 0xcd, 0xe6, 0x2d, 0x37, 0x31, 0x31, 0x3e, 0xc5, 0x62, 0xa9, -0xec, 0xfb, 0x99, 0x22, 0xa5, 0xf2, 0xa4, 0x2c, 0xed, 0xf9, 0xa4, 0xa5, -0x21, 0x66, 0xb1, 0x90, 0x4a, 0x53, 0x4c, 0x77, 0x50, 0x4a, 0xa7, 0x29, -0xa6, 0xda, 0xd1, 0xbe, 0x76, 0x95, 0xf6, 0x49, 0x59, 0x1a, 0xb4, 0x02, -0x4b, 0xa3, 0x14, 0x60, 0x5c, 0x44, 0x29, 0xc4, 0x2f, 0x21, 0xbe, 0x76, -0xcf, 0x67, 0xf8, 0xe7, 0xbb, 0x1f, 0xc6, 0xd4, 0x5c, 0x4c, 0xa5, 0x46, -0x7c, 0x62, 0x9a, 0xbe, 0xe9, 0x59, 0xba, 0xa7, 0x67, 0x51, 0xc5, 0x32, -0x52, 0x73, 0x20, 0x95, 0xf4, 0x18, 0xfb, 0xd9, 0xb3, 0xd1, 0x02, 0x83, -0x88, 0xc2, 0x8a, 0xc7, 0xf8, 0xfc, 0x5f, 0x7c, 0x8a, 0xbb, 0xee, 0xdc, -0x44, 0x0a, 0x21, 0x2e, 0xa0, 0xc4, 0x9b, 0xd6, 0x45, 0x84, 0x33, 0xa3, -0x53, 0xe4, 0x0b, 0x8b, 0x9c, 0x7c, 0x73, 0x8c, 0xd1, 0xf1, 0x49, 0x2e, -0x4f, 0x4c, 0x31, 0x3f, 0x97, 0x27, 0x9d, 0x2b, 0x92, 0x8e, 0xcf, 0x42, -0x2c, 0x06, 0x96, 0x66, 0x21, 0x9d, 0xa6, 0x9c, 0x4c, 0xb2, 0xd0, 0xde, -0x86, 0x93, 0xb0, 0x29, 0xdb, 0x89, 0x25, 0x0b, 0x29, 0x15, 0xba, 0xa2, -0x57, 0x2e, 0x08, 0xba, 0xe6, 0x90, 0x58, 0x2c, 0xd3, 0x56, 0x58, 0xa0, -0x7b, 0x7e, 0x1e, 0xbb, 0x58, 0x82, 0x72, 0x0d, 0x55, 0xad, 0x61, 0x5b, -0x36, 0xc6, 0x56, 0xd1, 0x4a, 0x66, 0xb0, 0xc9, 0x02, 0x0a, 0xfa, 0x51, -0xd0, 0xd9, 0xb3, 0x92, 0x2d, 0xdb, 0x6e, 0x66, 0x95, 0x18, 0xda, 0x83, -0xf7, 0xf8, 0xa4, 0x45, 0xe0, 0xa7, 0x37, 0xf6, 0x62, 0x44, 0xd8, 0x79, -0xdb, 0x3a, 0xc4, 0x08, 0x65, 0x03, 0x63, 0x93, 0x39, 0x4e, 0x8f, 0x4c, -0xf1, 0xc6, 0xdb, 0x17, 0x19, 0x1f, 0x9f, 0xe2, 0xd2, 0xe8, 0xb8, 0x47, -0x28, 0x66, 0xd1, 0x13, 0xd3, 0x60, 0x59, 0x60, 0x69, 0xdc, 0x58, 0x8c, -0x45, 0xdb, 0xf6, 0x2c, 0x01, 0x60, 0x04, 0x8c, 0xd0, 0x56, 0x2e, 0x63, -0xd5, 0x6a, 0xe0, 0xb8, 0x50, 0x73, 0x51, 0x35, 0x07, 0x5c, 0x97, 0x1b, -0xfa, 0x56, 0xf2, 0xf3, 0x1f, 0xbe, 0x93, 0xe4, 0x96, 0x9d, 0x3c, 0xfe, -0xc5, 0x2f, 0x44, 0x8a, 0xc2, 0x86, 0x20, 0xfe, 0xd8, 0xe7, 0xbe, 0xba, -0x03, 0xa5, 0x50, 0x02, 0xab, 0xd7, 0x74, 0x63, 0x0c, 0xb4, 0x5b, 0x9e, -0xbf, 0x56, 0x50, 0xe4, 0x5d, 0x61, 0xc1, 0xd5, 0xb8, 0x46, 0x70, 0xfd, -0xfa, 0xca, 0x16, 0x83, 0x12, 0x21, 0xa5, 0x5c, 0x36, 0xf5, 0x75, 0xb2, -0xb9, 0x2f, 0xcd, 0x9e, 0x9f, 0xd9, 0x88, 0x18, 0x61, 0xbe, 0xa6, 0x79, -0xe5, 0xcc, 0x04, 0x17, 0x2e, 0x4e, 0x73, 0x71, 0x62, 0x86, 0xf9, 0x6c, -0x8e, 0x2b, 0xe3, 0xe3, 0x58, 0x5a, 0x93, 0x56, 0xa5, 0x06, 0x02, 0x06, -0x5c, 0x83, 0x72, 0x0d, 0x76, 0x3c, 0xc6, 0xa6, 0x8d, 0xeb, 0xd8, 0xba, -0xa9, 0x8f, 0xdb, 0x37, 0xf7, 0xb1, 0xee, 0xc6, 0x1e, 0xb2, 0x4e, 0x92, -0x93, 0x25, 0x9a, 0x64, 0xa4, 0xc1, 0x85, 0xfa, 0x11, 0x40, 0x09, 0x37, -0xdd, 0x74, 0x03, 0x49, 0xdf, 0x5d, 0x00, 0x2e, 0xe4, 0xab, 0x9c, 0xbf, -0x7c, 0x95, 0x2b, 0x57, 0x66, 0xb9, 0x7c, 0xe5, 0x2a, 0xd9, 0xf9, 0x02, -0x22, 0xc2, 0x27, 0xf7, 0xee, 0xc1, 0x35, 0xe0, 0x9a, 0x18, 0xae, 0x81, -0x18, 0x42, 0x12, 0x97, 0x0e, 0xed, 0xd0, 0xae, 0x5d, 0x76, 0xdd, 0xd6, -0x87, 0x6c, 0xed, 0xf5, 0xd2, 0xaa, 0x08, 0xb9, 0x9a, 0x45, 0xd5, 0x85, -0x37, 0xdf, 0x1e, 0xa7, 0x58, 0xb3, 0x30, 0x22, 0xb4, 0x5b, 0x0e, 0x16, -0x82, 0xad, 0x5c, 0x6e, 0xbf, 0xa5, 0x2f, 0x74, 0x53, 0x63, 0x4c, 0x08, -0xac, 0x68, 0x6c, 0x94, 0x82, 0x74, 0x57, 0x86, 0x85, 0xec, 0x7c, 0x70, -0x79, 0xa0, 0x3e, 0x06, 0x44, 0xfa, 0x51, 0x20, 0x28, 0x12, 0x09, 0x9b, -0x38, 0xde, 0x40, 0x87, 0x8f, 0x9d, 0xe3, 0x9f, 0x86, 0x86, 0xeb, 0xa9, -0x0b, 0x24, 0x93, 0x76, 0x60, 0x7d, 0x44, 0x20, 0x97, 0xcd, 0xf3, 0xcc, -0x53, 0x87, 0xd9, 0xbe, 0x73, 0x3b, 0xdd, 0xab, 0x56, 0xe1, 0xfa, 0x55, -0x42, 0x87, 0xe5, 0xd0, 0x69, 0xd5, 0x48, 0x69, 0x87, 0x94, 0xe5, 0x90, -0x8e, 0xd7, 0xd8, 0xbe, 0xb5, 0x0f, 0xe3, 0x03, 0x15, 0xbf, 0xda, 0x34, -0xa1, 0xc2, 0x04, 0x47, 0x14, 0x73, 0x4e, 0x3b, 0x39, 0xb7, 0x8d, 0xab, -0x4e, 0x3b, 0x55, 0x62, 0x68, 0x1d, 0x21, 0xe0, 0x29, 0x36, 0x53, 0x47, -0xc0, 0x57, 0x3e, 0x20, 0xf4, 0xae, 0xee, 0xc1, 0x12, 0xc1, 0x18, 0x21, -0xdd, 0x95, 0xf6, 0xca, 0x59, 0x55, 0x4f, 0x60, 0x71, 0xb1, 0xcc, 0xfc, -0x7c, 0x81, 0x8e, 0xce, 0x0e, 0x8c, 0xc0, 0x33, 0x4f, 0x1d, 0x66, 0xe2, -0xe2, 0x04, 0x4f, 0x7c, 0xf3, 0x09, 0xee, 0xfe, 0xd9, 0x0f, 0xb1, 0xe5, -0xce, 0x01, 0x0c, 0x30, 0x5f, 0x8b, 0x31, 0x5b, 0x8e, 0xf9, 0x96, 0xf2, -0x5a, 0x4a, 0x3b, 0x58, 0x18, 0x04, 0xe8, 0x8e, 0x57, 0xbc, 0x09, 0xac, -0x66, 0xa3, 0x80, 0xb2, 0xb1, 0xa8, 0x48, 0x6c, 0x69, 0xae, 0x50, 0xfe, -0xc2, 0x3d, 0x48, 0xbf, 0x0d, 0x12, 0xb5, 0xc0, 0xa0, 0x28, 0x8f, 0x84, -0x31, 0x90, 0x10, 0x83, 0x11, 0xc3, 0xfa, 0x0d, 0x37, 0x34, 0x05, 0x4e, -0xb0, 0xda, 0xca, 0xce, 0xe7, 0x49, 0xa5, 0x3b, 0x38, 0x7e, 0xf4, 0x24, -0x13, 0x17, 0x27, 0x40, 0xa0, 0x52, 0x2e, 0xf3, 0xf2, 0xe1, 0x17, 0x18, -0x39, 0x77, 0x81, 0x5f, 0xd8, 0xfd, 0x2b, 0x58, 0xf1, 0x44, 0xb0, 0xd8, -0x0a, 0x5b, 0xae, 0x16, 0x0b, 0x87, 0x9c, 0xab, 0xda, 0xe1, 0xb0, 0x4a, -0x79, 0xa1, 0x11, 0x1c, 0xb5, 0x5e, 0x22, 0xe1, 0xfd, 0x5d, 0x35, 0x2c, -0xa7, 0xa2, 0xbb, 0x12, 0xc1, 0x92, 0xce, 0x18, 0x86, 0x9f, 0x3f, 0xca, -0x42, 0xa9, 0xec, 0x65, 0x18, 0x17, 0xfa, 0x56, 0xaf, 0xf4, 0xfc, 0x38, -0x68, 0xbe, 0xb9, 0x9f, 0x7e, 0xf2, 0x79, 0x5e, 0x7e, 0xe1, 0x28, 0xc3, -0xcf, 0xbe, 0xe8, 0xcf, 0xbe, 0xbe, 0x1b, 0x08, 0x5c, 0x19, 0xbf, 0xc4, -0xd0, 0xbf, 0x7c, 0x9d, 0x42, 0x2e, 0x1f, 0xba, 0x59, 0xb4, 0x35, 0x4a, -0x98, 0xec, 0x7c, 0xe0, 0x3a, 0x32, 0xc5, 0x04, 0xad, 0x85, 0x01, 0x96, -0x08, 0x88, 0x0f, 0x5e, 0x44, 0x18, 0x1b, 0x99, 0xe0, 0x8f, 0xff, 0xee, -0x31, 0x5e, 0x3d, 0x35, 0xca, 0xf8, 0x4c, 0x81, 0x45, 0xaf, 0x84, 0x6d, -0x6a, 0xb9, 0xf9, 0x1c, 0xdf, 0x7f, 0xe1, 0xe8, 0x12, 0x70, 0x24, 0x5c, -0xe3, 0x8a, 0x08, 0xdd, 0xab, 0x7a, 0x48, 0xa5, 0x3b, 0xf1, 0x57, 0x94, -0xcb, 0x82, 0x0f, 0x18, 0x04, 0x9a, 0xb7, 0x94, 0x3f, 0x37, 0x7a, 0xf3, -0x23, 0x31, 0x2f, 0x03, 0x53, 0x58, 0xf2, 0xff, 0x50, 0x22, 0x59, 0xa8, -0x7e, 0xf4, 0x85, 0x52, 0x85, 0x7f, 0x3c, 0xf4, 0xdd, 0x88, 0x7e, 0x1a, -0x45, 0x1a, 0x4e, 0x83, 0x05, 0xb9, 0xf7, 0xcb, 0xb6, 0x13, 0xec, 0xbc, -0x7f, 0x77, 0x5d, 0xa0, 0x07, 0xe7, 0x4d, 0xd8, 0x1b, 0xdc, 0x46, 0x5b, -0x1e, 0xf8, 0x60, 0xa2, 0x57, 0x78, 0xcf, 0xe5, 0xe6, 0xe6, 0xa2, 0x8f, -0x0d, 0xd7, 0x13, 0x88, 0xa4, 0xcd, 0xe5, 0x20, 0xb7, 0x22, 0x20, 0xf5, -0xbf, 0xc2, 0xf3, 0xed, 0xbb, 0x76, 0x11, 0xb3, 0x13, 0xb8, 0xe6, 0x1a, -0xc0, 0xb3, 0x04, 0x3e, 0xaa, 0xf9, 0x80, 0x00, 0x80, 0x32, 0xb4, 0x34, -0xdf, 0x52, 0x16, 0x0a, 0xed, 0xeb, 0x6d, 0x09, 0xbc, 0xf3, 0x5e, 0x45, -0xab, 0xa0, 0xf6, 0x4e, 0x82, 0xbd, 0x1e, 0x63, 0x24, 0x5c, 0x98, 0x4d, -0x5e, 0xba, 0x44, 0x21, 0x97, 0x63, 0xfd, 0x2d, 0x5b, 0x5b, 0x82, 0x57, -0x81, 0xbf, 0xfb, 0xee, 0x12, 0x8b, 0xf9, 0x16, 0xb0, 0x7c, 0xbf, 0x17, -0x28, 0x16, 0x8a, 0x2d, 0x91, 0xd4, 0x59, 0x20, 0x24, 0x42, 0xa3, 0x05, -0x84, 0xa6, 0x3c, 0x1a, 0xed, 0x45, 0x08, 0x04, 0x7f, 0xfa, 0xef, 0x67, -0x9f, 0xa1, 0xbd, 0xa3, 0x8b, 0xf9, 0x99, 0xa9, 0xd0, 0x2a, 0x6b, 0xfa, -0x37, 0x13, 0x4f, 0x24, 0xbc, 0x91, 0x1a, 0xdc, 0x26, 0xf4, 0xf7, 0x18, -0xc4, 0x7d, 0x22, 0x81, 0xfb, 0x88, 0x40, 0xa9, 0xb8, 0xd0, 0x88, 0xbd, -0x7e, 0x45, 0x26, 0x22, 0xc3, 0xc0, 0xe0, 0xd2, 0x7e, 0x4c, 0x13, 0x0b, -0x00, 0x6e, 0xbd, 0x7d, 0x0b, 0xfd, 0x3f, 0xb5, 0x09, 0xdb, 0x4e, 0x32, -0x7a, 0xee, 0x3c, 0x67, 0x4f, 0x9d, 0xa6, 0x5a, 0xa9, 0xd4, 0x11, 0x10, -0xbc, 0x74, 0x5a, 0x59, 0x2c, 0x87, 0x83, 0x09, 0x90, 0x9b, 0x9d, 0x66, -0xd5, 0xda, 0x75, 0x4b, 0xd9, 0x46, 0xd5, 0x6b, 0x3e, 0x1e, 0x03, 0x3b, -0xe6, 0x13, 0xd1, 0x9e, 0x65, 0xc0, 0x9b, 0x3b, 0xae, 0x4e, 0xcd, 0x34, -0x42, 0xc9, 0xd6, 0x11, 0x08, 0x10, 0x87, 0x16, 0x88, 0x6c, 0x2e, 0x01, -0x24, 0x92, 0x09, 0x76, 0x7f, 0xfc, 0x37, 0x58, 0xd9, 0xd7, 0x1b, 0x06, -0x65, 0xef, 0x8d, 0x6b, 0xd9, 0xf4, 0xc1, 0x0f, 0xf2, 0xf4, 0xe3, 0xff, -0xee, 0x93, 0x90, 0x3a, 0x77, 0x6a, 0xdc, 0xa9, 0xcb, 0x5e, 0x9d, 0xa2, -0x6f, 0xdd, 0xba, 0x66, 0xf0, 0xda, 0x03, 0x1f, 0x36, 0xab, 0x3e, 0x78, -0x05, 0x98, 0xbe, 0x32, 0xd9, 0xd2, 0x02, 0xd1, 0x34, 0x3a, 0x2c, 0x91, -0x14, 0x19, 0xcd, 0xf7, 0x22, 0xc2, 0xd6, 0xbb, 0xee, 0x60, 0x45, 0x6f, -0xaf, 0xb7, 0x90, 0x97, 0xa5, 0x1a, 0x6c, 0x45, 0x4f, 0x2f, 0x1f, 0x1a, -0xbc, 0xb7, 0x2e, 0xbd, 0x46, 0x9f, 0x8b, 0x5e, 0xcf, 0xce, 0x4c, 0xd5, -0xf9, 0x79, 0xa0, 0x71, 0x3b, 0xee, 0xb5, 0x44, 0xdc, 0xb7, 0x40, 0x2c, -0x12, 0xc4, 0xfe, 0x04, 0x31, 0xfa, 0xd6, 0xd9, 0x3a, 0xed, 0x3f, 0x3a, -0xb4, 0x3f, 0x57, 0x47, 0x00, 0x91, 0x13, 0x2c, 0xf3, 0x62, 0x44, 0xd8, -0x72, 0xd7, 0xdd, 0x1e, 0xf0, 0xc0, 0x58, 0xbe, 0x81, 0x8c, 0xc0, 0xa6, -0x2d, 0x5b, 0x5b, 0x80, 0xf6, 0xee, 0xf0, 0xae, 0x79, 0xb1, 0x55, 0xca, -0x67, 0x89, 0x5b, 0xf5, 0xc0, 0x13, 0x91, 0x66, 0xfb, 0xa4, 0x42, 0xff, -0xf7, 0x5d, 0x78, 0xa1, 0xb0, 0xc8, 0xdc, 0xcc, 0x6c, 0x93, 0xf6, 0xeb, -0x08, 0x7c, 0xf7, 0xeb, 0x7f, 0x92, 0x13, 0x9f, 0x44, 0x48, 0x24, 0x62, -0x85, 0x78, 0x22, 0x11, 0xe2, 0x0a, 0x48, 0x08, 0x2c, 0x4d, 0xa1, 0x61, -0x16, 0x6b, 0x6d, 0x01, 0x3b, 0xe9, 0x05, 0x6f, 0x14, 0x74, 0x72, 0x19, -0xf0, 0x96, 0x5f, 0xff, 0x04, 0x0a, 0x3a, 0xf1, 0xea, 0xeb, 0x8d, 0xee, -0xf3, 0x64, 0x70, 0x52, 0xbf, 0x22, 0xf3, 0x02, 0x79, 0x40, 0x44, 0x9a, -0xe2, 0x77, 0x76, 0x72, 0x8a, 0x95, 0xab, 0xfb, 0xfc, 0x82, 0x6f, 0x89, -0xbd, 0x01, 0xaa, 0x95, 0x72, 0x64, 0x26, 0xae, 0x1b, 0x90, 0xc1, 0xfb, -0xef, 0xe7, 0x86, 0xfe, 0xf5, 0x74, 0x65, 0xba, 0xea, 0x4b, 0x03, 0x2b, -0x5c, 0x89, 0x86, 0x29, 0x33, 0xcc, 0x3a, 0xd4, 0xbb, 0xe9, 0xe9, 0xe3, -0x4d, 0x04, 0x86, 0x9b, 0x2c, 0xe0, 0xe1, 0x97, 0x43, 0x12, 0xb5, 0x40, -0x60, 0x05, 0x23, 0xbc, 0xf6, 0xd2, 0x4b, 0x21, 0xbe, 0x20, 0x0d, 0x82, -0x67, 0xe6, 0x33, 0xc7, 0xff, 0x67, 0xd9, 0x18, 0xd8, 0x72, 0xe7, 0x6d, -0xac, 0x5c, 0xd9, 0xb5, 0xe4, 0xe3, 0x41, 0xf3, 0xdd, 0x28, 0x6e, 0xd5, -0x83, 0x07, 0x90, 0xa0, 0x72, 0x75, 0xe1, 0xd8, 0xcb, 0x3f, 0x68, 0x74, -0x9f, 0xb1, 0x47, 0x87, 0xf6, 0x9f, 0x6c, 0x49, 0xe0, 0xf9, 0x6f, 0xfc, -0x69, 0xf0, 0x81, 0xa1, 0x29, 0x0e, 0x2e, 0x9e, 0x3b, 0xc7, 0x2b, 0xcf, -0x3d, 0x17, 0x6a, 0xd8, 0x5f, 0x9b, 0x73, 0xe6, 0xf8, 0x31, 0x5e, 0x7b, -0xf1, 0xa5, 0x65, 0x03, 0xf7, 0xf4, 0xd1, 0x63, 0x21, 0xe0, 0x68, 0x96, -0x89, 0x45, 0x81, 0xab, 0x40, 0x81, 0x1e, 0x70, 0xc7, 0x80, 0xe3, 0xc0, -0xcc, 0x74, 0x8e, 0xe7, 0xbe, 0xf5, 0x9f, 0x8d, 0xda, 0x0f, 0xdd, 0x67, -0x23, 0xad, 0x76, 0xe6, 0x44, 0x0e, 0x02, 0x87, 0x82, 0xdc, 0x1d, 0xf1, -0x06, 0xde, 0x38, 0x7a, 0x8c, 0xb1, 0xb7, 0xcf, 0xd2, 0xb3, 0xba, 0x0f, -0xbb, 0x2d, 0xc9, 0x95, 0xb1, 0x8b, 0x14, 0xb2, 0xb9, 0xfa, 0x9b, 0xa2, -0x15, 0x05, 0x70, 0xe4, 0x3b, 0xcf, 0x72, 0xe1, 0xad, 0xb7, 0xd9, 0xfd, -0xe0, 0x6e, 0x56, 0xf4, 0x64, 0xea, 0xca, 0xe5, 0x30, 0x53, 0xfb, 0xae, -0x12, 0x25, 0x30, 0x7a, 0xfe, 0x32, 0xdf, 0xfa, 0xd7, 0x6f, 0x36, 0xc2, -0x03, 0x38, 0x18, 0xed, 0x34, 0x6d, 0xee, 0x8e, 0x00, 0x0f, 0x7f, 0xf2, -0x6f, 0x5e, 0x67, 0x99, 0x58, 0x68, 0xe0, 0xd4, 0x7c, 0xa5, 0xf1, 0xa2, -0x3f, 0xfe, 0x86, 0x9b, 0xfb, 0xd9, 0xfb, 0xd9, 0xdf, 0xac, 0xaf, 0xef, -0x23, 0x63, 0x18, 0x81, 0x4a, 0xc5, 0x61, 0xe4, 0x87, 0xe3, 0xfc, 0xe0, -0xfb, 0xc7, 0x39, 0x7f, 0xfa, 0xad, 0x96, 0xe0, 0x1f, 0x1d, 0xda, 0xff, -0xf9, 0xa0, 0xd3, 0xd2, 0x02, 0xde, 0x3b, 0xe5, 0xb7, 0x80, 0x61, 0x05, -0x99, 0xeb, 0xfa, 0x86, 0x16, 0xb9, 0x57, 0x22, 0xd7, 0x92, 0x6d, 0x49, -0x3e, 0xfa, 0xc0, 0x2e, 0xaf, 0x98, 0x93, 0x7a, 0xe0, 0x73, 0x57, 0xf3, -0x4c, 0x5c, 0xbc, 0xcc, 0xe8, 0xd9, 0x0b, 0x9c, 0x3a, 0xfa, 0xda, 0x3b, -0x8d, 0x3e, 0x06, 0xfc, 0x55, 0x14, 0x3c, 0x2c, 0x63, 0x01, 0x80, 0x87, -0x3e, 0xf1, 0x85, 0x6d, 0x78, 0xd1, 0x9e, 0x59, 0xae, 0x88, 0x6f, 0xba, -0xba, 0xcc, 0x7d, 0x1f, 0xd9, 0x73, 0x1f, 0xeb, 0x37, 0x7b, 0xaf, 0x9c, -0x9d, 0x9c, 0x61, 0x71, 0xb1, 0xcc, 0xd8, 0xd9, 0x0b, 0x4c, 0x8c, 0x8e, -0xb1, 0x58, 0x6c, 0xb1, 0xdd, 0xd0, 0x2c, 0x59, 0x60, 0x30, 0x1a, 0xbc, -0xcb, 0x12, 0xa8, 0x23, 0xf1, 0xf1, 0xbf, 0xde, 0x00, 0x1c, 0xc2, 0xdb, -0x44, 0xe2, 0xba, 0xac, 0xf1, 0xfe, 0xc9, 0x21, 0x60, 0x5f, 0x30, 0xf3, -0xc2, 0x12, 0x78, 0x78, 0x87, 0x6f, 0x64, 0x23, 0x91, 0xf3, 0x4f, 0x3f, -0x78, 0x60, 0x2f, 0x9e, 0xf9, 0xfa, 0xdf, 0x77, 0x78, 0xad, 0xe5, 0x04, -0x1e, 0xf0, 0x43, 0x51, 0xe0, 0x50, 0x0f, 0x1e, 0xde, 0xe5, 0x2b, 0xe5, -0x48, 0x43, 0xdf, 0x27, 0xb2, 0x8f, 0xc8, 0xf6, 0xf6, 0xfb, 0x28, 0x27, -0xf0, 0x52, 0xe4, 0xa1, 0x47, 0x87, 0xf6, 0x5f, 0x6c, 0x75, 0x43, 0x23, -0x78, 0xb8, 0xc6, 0xef, 0xc4, 0x2d, 0x88, 0x6c, 0xc3, 0x73, 0xab, 0x07, -0xf0, 0xc8, 0x64, 0xae, 0x07, 0x29, 0x9e, 0x4f, 0x9f, 0xf0, 0xdb, 0x30, -0x30, 0xdc, 0xa8, 0xe9, 0x40, 0x5a, 0x81, 0x8e, 0xca, 0x75, 0x7f, 0xa9, -0x6f, 0x24, 0x03, 0xf0, 0xe9, 0x07, 0x0f, 0x6c, 0xc0, 0x73, 0xaf, 0xa0, -0xb5, 0x92, 0x61, 0xff, 0x78, 0x62, 0x39, 0xb0, 0x81, 0xbc, 0x1b, 0xe8, -0xa8, 0xbc, 0xe7, 0x7f, 0x35, 0x08, 0xa4, 0x15, 0xa1, 0xeb, 0x95, 0xeb, -0x01, 0xdc, 0x28, 0x3f, 0x36, 0x81, 0x9f, 0xb4, 0xfc, 0x2f, 0x83, 0x5f, -0xe1, 0x0b, 0x7d, 0x74, 0xae, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, -0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_plugin_pad.c b/Source/Core/DolphinWX/resources/toolbar_plugin_pad.c deleted file mode 100644 index 0c21d7c26f..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_plugin_pad.c +++ /dev/null @@ -1,239 +0,0 @@ -static const unsigned char toolbar_plugin_pad_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/DolphinWX/resources/toolbar_plugin_wiimote.c b/Source/Core/DolphinWX/resources/toolbar_plugin_wiimote.c deleted file mode 100644 index 03188b6dff..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_plugin_wiimote.c +++ /dev/null @@ -1,174 +0,0 @@ -static const unsigned char toolbar_plugin_wiimote_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, 0x05, 0x49, 0x44, 0x41, 0x54, -0x78, 0x9C, 0xD5, 0x9A, 0x59, 0x6C, 0x5C, 0x57, 0x19, 0xC7, 0x7F, 0xE7, 0xDE, 0x3B, 0xE3, 0xF1, -0x32, 0xF6, 0x38, 0x8B, 0xB3, 0x37, 0x4E, 0x93, 0x66, 0x81, 0x46, 0x75, 0xD3, 0x06, 0x4A, 0xD5, -0x25, 0xA9, 0x68, 0x84, 0x2A, 0x44, 0x52, 0x21, 0xCA, 0x26, 0x91, 0xF4, 0xA1, 0x88, 0x17, 0x48, -0x49, 0x85, 0x90, 0x78, 0xC1, 0x12, 0x0F, 0x88, 0x4A, 0x94, 0x14, 0x50, 0x04, 0x3C, 0xD0, 0x20, -0xDE, 0x80, 0x36, 0x2E, 0x81, 0x8A, 0xAD, 0xAA, 0x8B, 0x44, 0x4B, 0xB7, 0xC4, 0x69, 0xB6, 0x36, -0x8D, 0x13, 0x27, 0xB1, 0x1D, 0xC7, 0xF1, 0x32, 0xB6, 0x67, 0xC6, 0x33, 0x73, 0xCF, 0x39, 0x1F, -0x0F, 0xE7, 0xDE, 0x8C, 0xDB, 0x20, 0x75, 0x3C, 0xB6, 0x52, 0xF5, 0x4A, 0xC7, 0x73, 0x67, 0xF1, -0xBD, 0xFF, 0xDF, 0xF9, 0xFE, 0xDF, 0x77, 0xCE, 0xE7, 0xB1, 0x12, 0x11, 0x3E, 0xCE, 0x87, 0xF7, -0x51, 0x0B, 0x98, 0xEB, 0x11, 0xCC, 0xD7, 0x85, 0xC6, 0x7F, 0xF5, 0x40, 0xC6, 0x18, 0xBB, 0x4B, -0x6B, 0xB3, 0x4B, 0x1B, 0x73, 0x5B, 0xA8, 0x4D, 0x7B, 0xA8, 0x0D, 0x5A, 0x9B, 0xBE, 0x50, 0x9B, -0x63, 0x5A, 0x9B, 0xAE, 0x50, 0x9B, 0xAE, 0xBB, 0x9E, 0x7C, 0x27, 0x3B, 0x5F, 0xF7, 0x04, 0x50, -0xF3, 0x61, 0xA1, 0xC2, 0x6F, 0x77, 0x74, 0x6A, 0x63, 0xF7, 0x6A, 0x6D, 0x32, 0x5A, 0x1B, 0xC2, -0x68, 0x5C, 0x77, 0x1E, 0x9A, 0x6C, 0xA8, 0xCD, 0xD3, 0xF7, 0x3C, 0x75, 0xA6, 0x73, 0xEE, 0xD2, -0xDD, 0x31, 0x27, 0x00, 0xFD, 0xFB, 0x87, 0x32, 0x28, 0x75, 0xC8, 0x18, 0xB3, 0x6D, 0x86, 0x48, -0x42, 0x6D, 0xF0, 0x9B, 0x1B, 0xD0, 0xDA, 0x30, 0x75, 0x65, 0xFC, 0x1A, 0x44, 0x18, 0xBD, 0xAF, -0xB5, 0xE9, 0x0E, 0xB5, 0x79, 0xF8, 0xC1, 0x03, 0x7D, 0x73, 0x8E, 0x46, 0xCD, 0x00, 0xC5, 0x83, -0x9F, 0xCB, 0x24, 0x02, 0xFF, 0x25, 0xE5, 0xA9, 0x0E, 0x1D, 0x89, 0x56, 0xCB, 0x17, 0x93, 0x5C, -0xBD, 0x94, 0x20, 0xBD, 0x00, 0x24, 0x09, 0x61, 0x09, 0x72, 0x23, 0x14, 0x07, 0x06, 0xB8, 0xD2, -0x3B, 0xC8, 0x50, 0xFF, 0x58, 0x0C, 0x40, 0xA8, 0x4D, 0x4F, 0xA8, 0xF5, 0xF6, 0x87, 0x7E, 0xD3, -0x3F, 0x27, 0x88, 0x9A, 0x73, 0xC0, 0x8A, 0x1C, 0x32, 0xD6, 0x76, 0x60, 0xC1, 0x06, 0x1E, 0xA9, -0x7B, 0xEF, 0xC0, 0x6F, 0xDB, 0x00, 0xA9, 0x2D, 0x10, 0x34, 0x01, 0x25, 0xA0, 0x08, 0x14, 0x49, -0xAD, 0x1B, 0x60, 0xF5, 0xAA, 0x57, 0x69, 0x3D, 0x71, 0x8C, 0x53, 0x3D, 0x17, 0xD0, 0xDA, 0x00, -0x74, 0x00, 0x87, 0x80, 0xED, 0x73, 0x01, 0xA8, 0x29, 0x02, 0xD9, 0x5F, 0x3F, 0xB0, 0xDB, 0xF7, -0xFD, 0x83, 0xBE, 0xA7, 0x50, 0x89, 0x04, 0x75, 0x0F, 0xDE, 0x8D, 0xD7, 0xF6, 0x79, 0xF0, 0xD6, -0x56, 0x84, 0x4F, 0x9F, 0x83, 0xC2, 0x00, 0x98, 0x22, 0xD4, 0x35, 0x40, 0x4B, 0x06, 0x06, 0x4E, -0x90, 0x7F, 0xF9, 0x05, 0x8E, 0xBE, 0x75, 0x81, 0x42, 0xA1, 0x1C, 0xDB, 0x6A, 0xCF, 0xAE, 0x67, -0x2E, 0xFF, 0xAE, 0x56, 0x80, 0x9A, 0x22, 0x60, 0x8C, 0xED, 0x04, 0xB0, 0x56, 0xD1, 0x78, 0xFF, -0x56, 0xBC, 0xB6, 0x1D, 0xE0, 0x6D, 0x06, 0x99, 0x82, 0xE9, 0x23, 0x30, 0xF1, 0x3A, 0x14, 0x26, -0xA1, 0x58, 0x84, 0x52, 0xC9, 0x0D, 0x0B, 0xAC, 0xDA, 0x44, 0xE3, 0x67, 0xEE, 0xE3, 0xD6, 0xE2, -0x8B, 0xBC, 0xFE, 0x56, 0x9F, 0xBB, 0x98, 0x48, 0x27, 0x50, 0x33, 0xC0, 0xAC, 0xD7, 0x81, 0xC1, -0xFD, 0xF7, 0xEC, 0xD4, 0xC6, 0xB6, 0x6B, 0x6D, 0x51, 0xAD, 0xCD, 0x04, 0x4B, 0x36, 0x82, 0xB7, -0x09, 0x24, 0x0F, 0xB9, 0x67, 0x21, 0xF7, 0x1A, 0xE8, 0x22, 0x88, 0xB8, 0x61, 0xAD, 0x7B, 0x34, -0x21, 0x9C, 0xEB, 0x81, 0xC2, 0x14, 0x99, 0x8D, 0x6B, 0x59, 0xB8, 0xA0, 0x09, 0x41, 0x10, 0xA1, -0xFD, 0x0F, 0x5F, 0x5F, 0xBC, 0xF3, 0x86, 0x01, 0x44, 0xB5, 0x9E, 0x50, 0x1B, 0x92, 0x6B, 0x96, -0x43, 0x62, 0x3D, 0x50, 0x86, 0xA9, 0xE7, 0x60, 0x7A, 0x10, 0xB4, 0x76, 0xC3, 0x18, 0x27, 0x3E, -0x06, 0xF0, 0x3C, 0xF0, 0x7D, 0x18, 0x1B, 0x02, 0xA3, 0x59, 0xBD, 0x32, 0x03, 0xCA, 0x43, 0x44, -0x10, 0x91, 0x5D, 0xB5, 0x02, 0xCC, 0xDA, 0x42, 0xDA, 0x98, 0x0E, 0x4F, 0x3C, 0x3C, 0x2B, 0xA4, -0xDA, 0x16, 0x43, 0xDD, 0x32, 0x28, 0xBC, 0x0D, 0xB9, 0xF3, 0x4E, 0x6C, 0x0C, 0x10, 0x8F, 0x18, -0x40, 0x29, 0x08, 0x02, 0x07, 0x12, 0x86, 0x2C, 0x5A, 0xD2, 0x02, 0x9E, 0x87, 0x75, 0x00, 0x1D, -0xB5, 0x02, 0xCC, 0x3A, 0x02, 0xDA, 0xD8, 0x0E, 0xAD, 0x0D, 0x7E, 0x4B, 0x23, 0xA8, 0x26, 0xA0, -0x0C, 0x23, 0xFF, 0xA9, 0xF8, 0xBD, 0x5C, 0x76, 0x23, 0x0C, 0x2B, 0x00, 0xB1, 0xF8, 0x64, 0x12, -0x52, 0x29, 0x37, 0x12, 0x09, 0x16, 0x66, 0x52, 0x08, 0x60, 0xE7, 0x00, 0x30, 0xFB, 0x08, 0x68, -0x83, 0xA7, 0x14, 0x26, 0xD4, 0xAE, 0xCE, 0x87, 0x57, 0x21, 0x3F, 0xE2, 0xDE, 0x14, 0x71, 0xD6, -0x99, 0x69, 0x23, 0x11, 0x67, 0x9D, 0x64, 0x12, 0xEA, 0xEA, 0xDC, 0x39, 0x38, 0x20, 0xA5, 0xB0, -0x56, 0xB0, 0xB6, 0xF6, 0xC5, 0xB4, 0x26, 0x00, 0xE5, 0x29, 0x8C, 0x8E, 0x00, 0xF2, 0x83, 0x6E, -0xE6, 0x61, 0x46, 0xC2, 0x46, 0xFE, 0x8F, 0x85, 0x26, 0x12, 0x50, 0x5F, 0xEF, 0x00, 0x94, 0x72, -0xD1, 0x01, 0xAC, 0xB1, 0x58, 0x6B, 0xE7, 0x04, 0x50, 0x8B, 0x85, 0xBA, 0xB5, 0xB6, 0x4C, 0x8C, -0x4C, 0x40, 0x6E, 0x0C, 0x72, 0x83, 0x15, 0xBB, 0xCC, 0x14, 0xEE, 0x79, 0x4E, 0x78, 0x2A, 0x05, -0x0D, 0x0D, 0x6E, 0xA4, 0x52, 0x95, 0x08, 0x18, 0xC3, 0xD0, 0x48, 0xDE, 0x01, 0x88, 0xED, 0xBE, -0x61, 0x00, 0xA1, 0x36, 0x7D, 0x3A, 0xDA, 0xF7, 0x14, 0x06, 0x07, 0xDD, 0x15, 0x62, 0xE1, 0x71, -0xA5, 0x09, 0x02, 0x37, 0xDB, 0x0D, 0x0D, 0xD0, 0xD8, 0x08, 0xE9, 0xB4, 0x8B, 0x40, 0x10, 0xB8, -0x08, 0x95, 0x4A, 0x4C, 0x8D, 0xE7, 0x08, 0xC3, 0x10, 0x63, 0x04, 0x6B, 0xA5, 0xEF, 0x86, 0x01, -0x68, 0x6D, 0xBA, 0xE3, 0x32, 0x3A, 0x72, 0xF1, 0x2A, 0x0C, 0xF7, 0xBA, 0x37, 0x62, 0xAB, 0xA4, -0x52, 0x4E, 0x74, 0x53, 0x93, 0x13, 0x9E, 0x4E, 0x3B, 0x90, 0x64, 0xD2, 0x89, 0x2F, 0x97, 0x21, -0x9F, 0xE7, 0x42, 0xDF, 0x55, 0x4C, 0x59, 0xBB, 0x08, 0x98, 0xDA, 0x23, 0x50, 0x4B, 0x0E, 0x74, -0x29, 0xA5, 0xB2, 0x4A, 0xA9, 0xCC, 0xE5, 0xFE, 0x51, 0x96, 0x0F, 0x5F, 0x26, 0x68, 0x6D, 0xA9, -0x88, 0xAF, 0xAB, 0x73, 0xE7, 0x31, 0x90, 0xEF, 0x57, 0x7C, 0x5F, 0x2A, 0xC1, 0xD4, 0x14, 0xE1, -0xE8, 0x38, 0x67, 0xCE, 0x0D, 0xA3, 0x8D, 0xC1, 0x58, 0x9B, 0xB5, 0x22, 0x5D, 0xB5, 0x02, 0xCC, -0x3A, 0x02, 0xF7, 0xED, 0x3F, 0x3B, 0xA1, 0xB5, 0xE9, 0xD2, 0xDA, 0x50, 0x9C, 0x2E, 0xF3, 0xDE, -0xD1, 0x5E, 0x98, 0x9A, 0x74, 0x39, 0xA0, 0x94, 0x13, 0x9C, 0x48, 0x54, 0xC4, 0x83, 0x13, 0x5F, -0x28, 0xC0, 0xE4, 0x24, 0x8C, 0x8E, 0xF2, 0xE6, 0x9B, 0xE7, 0xC8, 0x4F, 0x15, 0x31, 0xC6, 0x62, -0x8C, 0xED, 0xFA, 0xE6, 0xE1, 0xC2, 0xC4, 0x0D, 0x03, 0x00, 0x08, 0x8D, 0xE9, 0x0C, 0xB5, 0xA1, -0x5C, 0xD6, 0x0C, 0x0E, 0x8C, 0x73, 0xA5, 0x77, 0x10, 0x26, 0x26, 0x9C, 0xC8, 0x78, 0x0D, 0x08, -0x43, 0xB7, 0x36, 0xE4, 0xF3, 0x4E, 0xF8, 0xF8, 0x38, 0x0C, 0x0F, 0x73, 0xE9, 0xF4, 0x45, 0xCE, -0x9D, 0x1B, 0x26, 0x0C, 0x35, 0xC6, 0x58, 0x80, 0xCE, 0x5A, 0xC5, 0xD7, 0x0C, 0xB0, 0xE3, 0xC0, -0x85, 0x0B, 0x7A, 0x78, 0x51, 0x97, 0xD6, 0x86, 0x72, 0xA9, 0x4C, 0x4F, 0xCF, 0x25, 0xFA, 0x4F, -0x9E, 0x87, 0xCB, 0x97, 0x61, 0x78, 0x18, 0xC6, 0xC6, 0x9C, 0xE0, 0xF1, 0x71, 0x18, 0x1D, 0x85, -0xA1, 0x21, 0xE8, 0xEF, 0xA7, 0xF7, 0xE8, 0x59, 0xFE, 0xFD, 0xCA, 0x7B, 0x94, 0x4A, 0x21, 0xC6, -0x58, 0xF4, 0xE5, 0x0D, 0x14, 0x8F, 0x7D, 0xE1, 0xD1, 0xB9, 0x00, 0xD4, 0xB4, 0x9D, 0x7E, 0x71, -0xFD, 0xBE, 0x3D, 0x82, 0x3C, 0x53, 0xDC, 0xF2, 0x77, 0x6C, 0x63, 0x16, 0x50, 0x78, 0xBE, 0xA2, -0x6D, 0x71, 0x33, 0xEB, 0x6F, 0x69, 0x23, 0xB3, 0x38, 0xCA, 0x09, 0x80, 0x30, 0x64, 0xF4, 0x4A, -0x96, 0x13, 0x27, 0x07, 0xB8, 0x78, 0x69, 0x94, 0x50, 0x1B, 0x8C, 0x36, 0xD8, 0x42, 0x33, 0xFA, -0xCC, 0x76, 0x0C, 0x16, 0x2B, 0xD2, 0x63, 0xB1, 0xDB, 0xF7, 0x5D, 0xFA, 0xE3, 0xAC, 0x9B, 0x9B, -0x59, 0x03, 0xBC, 0xB4, 0xE1, 0x89, 0x3D, 0xC0, 0x33, 0x56, 0x04, 0xE3, 0x97, 0xC8, 0x6F, 0xF9, -0x33, 0xE2, 0x97, 0xB9, 0x76, 0x15, 0x4F, 0xD1, 0xD8, 0x98, 0xA2, 0xB1, 0x21, 0xC0, 0x5A, 0x61, -0x72, 0xAA, 0xC4, 0xC4, 0xE4, 0x34, 0x26, 0xD4, 0x2E, 0x69, 0x8D, 0x45, 0xD9, 0x24, 0xFA, 0xF4, -0x0E, 0xAC, 0x0E, 0xB0, 0x58, 0x8C, 0x08, 0x16, 0xDB, 0x63, 0x44, 0xB6, 0x7F, 0xAF, 0xFF, 0x4F, -0xB3, 0x82, 0x98, 0x55, 0x15, 0x7A, 0x71, 0xFD, 0xBE, 0x0E, 0x4F, 0xA9, 0x9F, 0xC5, 0xCF, 0x1B, -0x9A, 0x17, 0xB3, 0x61, 0xE3, 0x53, 0xBC, 0x33, 0xFC, 0x0B, 0xC6, 0x47, 0x4F, 0x82, 0x80, 0x88, -0x50, 0x2A, 0x86, 0x8C, 0x8E, 0xB8, 0x2D, 0x82, 0x11, 0xFB, 0xBE, 0x15, 0x77, 0x61, 0x6A, 0x1D, -0xDB, 0xDA, 0x9E, 0xA0, 0xD4, 0x9C, 0xE0, 0x8D, 0x77, 0x8F, 0x70, 0x71, 0x74, 0xC0, 0x95, 0xD7, -0x1A, 0x3B, 0xB4, 0x59, 0x45, 0xE0, 0x5F, 0xEB, 0xBF, 0x7B, 0x54, 0xB9, 0x1B, 0xD1, 0xB4, 0x62, -0x29, 0x77, 0x7C, 0xE7, 0x51, 0x82, 0x4D, 0x2D, 0x84, 0x8B, 0x8A, 0x1C, 0x3B, 0xF4, 0x13, 0x4E, -0xFF, 0xE3, 0x40, 0xD4, 0x06, 0x08, 0x22, 0x82, 0x15, 0x89, 0xF6, 0x3A, 0x6E, 0x75, 0xDE, 0xBC, -0xE4, 0x11, 0xEE, 0x58, 0xF8, 0x0D, 0x92, 0x52, 0x07, 0xA1, 0x85, 0xB2, 0xE6, 0xED, 0xDE, 0xE3, -0xBC, 0x74, 0xFA, 0x55, 0x8C, 0xD5, 0x71, 0x24, 0xF6, 0x7C, 0xBF, 0xFF, 0xB9, 0xAA, 0x1B, 0x9C, -0xAA, 0x01, 0xFE, 0x76, 0xCB, 0xDE, 0xBD, 0x0A, 0xF6, 0x2B, 0xA5, 0x48, 0xAF, 0x58, 0xCA, 0xD6, -0x7D, 0x8F, 0x11, 0xDC, 0x99, 0x81, 0x36, 0x1F, 0x0C, 0x30, 0x6A, 0xC8, 0x1D, 0x3F, 0xCB, 0xC9, -0x97, 0x0F, 0x70, 0x79, 0xE0, 0x55, 0x46, 0xC6, 0x4E, 0x62, 0x45, 0x58, 0xD8, 0xBC, 0x91, 0xE5, -0x2D, 0x5B, 0xD8, 0xBC, 0xF4, 0xCB, 0x34, 0xA9, 0x85, 0x50, 0xD6, 0x4E, 0xBC, 0x58, 0x30, 0x02, -0xA1, 0xE6, 0xDD, 0x73, 0xA7, 0x79, 0xE1, 0x78, 0x37, 0x5A, 0x6B, 0x2C, 0x36, 0x6B, 0x44, 0xD6, -0xFC, 0x60, 0xE0, 0x50, 0x55, 0x56, 0xAA, 0xCA, 0x42, 0x7F, 0x5D, 0xF7, 0xED, 0x8C, 0x52, 0x74, -0x2A, 0x14, 0xC9, 0x54, 0x1D, 0x1D, 0x8F, 0x7D, 0x8D, 0x60, 0x53, 0x33, 0x2C, 0xF2, 0x5D, 0xAB, -0x38, 0x64, 0xE1, 0x5C, 0x99, 0x26, 0x59, 0xCE, 0xA7, 0xEF, 0xFA, 0x21, 0x94, 0x34, 0x94, 0x42, -0xF7, 0x58, 0x8E, 0x1E, 0xE3, 0x73, 0x00, 0x5F, 0x81, 0xF8, 0x90, 0x50, 0x50, 0x17, 0xB0, 0x61, -0xCD, 0x26, 0x7A, 0xAF, 0x5E, 0xE2, 0xD4, 0xC0, 0xBB, 0x88, 0x90, 0x01, 0x76, 0x52, 0x65, 0x9B, -0x59, 0x55, 0x19, 0x35, 0xD8, 0xDD, 0x46, 0x24, 0x63, 0x45, 0xB8, 0x79, 0xC7, 0xFD, 0xD4, 0xAF, -0x5C, 0x00, 0x4B, 0x02, 0x28, 0x0B, 0x9C, 0xD1, 0x70, 0xBE, 0x0C, 0x26, 0xEA, 0xBE, 0xAC, 0xB8, -0x11, 0xB7, 0x94, 0x42, 0x34, 0x66, 0x3C, 0x47, 0x81, 0xEF, 0x41, 0x22, 0x80, 0x86, 0x3A, 0x68, -0xA9, 0xE7, 0xB3, 0xB7, 0xDE, 0x43, 0x7D, 0xAA, 0x11, 0x00, 0x41, 0x3A, 0xAB, 0xD1, 0x55, 0x35, -0x80, 0x45, 0x1E, 0xB7, 0x08, 0x75, 0x99, 0x34, 0x6B, 0xEE, 0xDA, 0x0A, 0xCB, 0x93, 0x4E, 0xFC, -0xC5, 0x32, 0xF4, 0x4F, 0xC3, 0x74, 0x19, 0x8A, 0x61, 0x64, 0x0F, 0x03, 0xDA, 0x80, 0xB6, 0x0E, -0x2A, 0x1E, 0x31, 0x98, 0x15, 0x67, 0x1F, 0xA5, 0x20, 0xE1, 0x43, 0x7D, 0x12, 0x9A, 0xEA, 0x49, -0x66, 0x9A, 0xB9, 0x73, 0xD5, 0x27, 0xE3, 0x5B, 0xB6, 0xFF, 0x68, 0xC5, 0xCE, 0xAA, 0x9A, 0x9C, -0x0F, 0x05, 0x78, 0x76, 0xED, 0xB7, 0x3A, 0xAC, 0xD8, 0x76, 0x2B, 0x96, 0xF5, 0xF7, 0xDE, 0x0D, -0x29, 0x05, 0x29, 0x1F, 0xC6, 0x42, 0x38, 0x3D, 0x05, 0x85, 0x12, 0x14, 0xCA, 0x15, 0x88, 0xD2, -0x0C, 0x90, 0x18, 0xC6, 0xC4, 0x23, 0x02, 0x11, 0xC0, 0x07, 0x92, 0x3E, 0xA4, 0x12, 0x2E, 0x0A, -0xE9, 0x14, 0x9F, 0x58, 0xB6, 0x0E, 0xE5, 0xFB, 0x51, 0xB3, 0x2F, 0xF7, 0xCF, 0x0B, 0x80, 0x11, -0xBB, 0xD3, 0x20, 0x18, 0x2C, 0xCB, 0xD6, 0xDC, 0x0C, 0x99, 0x04, 0x94, 0x2C, 0x9C, 0x9A, 0x88, -0xC4, 0x97, 0xFE, 0x3F, 0x44, 0x0C, 0x52, 0x36, 0x6E, 0xC4, 0x30, 0xF1, 0xEC, 0xFB, 0x3E, 0xD4, -0x25, 0x20, 0x95, 0x84, 0x86, 0x24, 0x34, 0xD4, 0x91, 0x6E, 0x4C, 0xD3, 0x9A, 0x6A, 0x8A, 0x5D, -0xB7, 0xAD, 0x1A, 0x80, 0x0F, 0x4D, 0x62, 0x8B, 0x6C, 0x53, 0x22, 0xB4, 0xAD, 0x58, 0x49, 0x42, -0x7C, 0x48, 0x05, 0x70, 0x65, 0x1A, 0x86, 0xA6, 0x9C, 0x10, 0x45, 0xC5, 0xE3, 0x56, 0xDC, 0x2C, -0x6B, 0xEB, 0x66, 0x3C, 0x16, 0x5D, 0x8E, 0x22, 0x60, 0x05, 0x94, 0xE7, 0xAC, 0x93, 0x72, 0xA2, -0x69, 0x48, 0xBA, 0xCF, 0x27, 0x03, 0x08, 0x7C, 0xDA, 0xEA, 0x5B, 0x19, 0xCA, 0x8D, 0x21, 0x48, -0xFB, 0xBC, 0x00, 0x18, 0xB1, 0xED, 0xCA, 0xF3, 0x58, 0xBC, 0x74, 0x05, 0x84, 0x1A, 0xF0, 0xE0, -0x62, 0xD6, 0x89, 0x82, 0x4A, 0x62, 0x5E, 0x4B, 0xE0, 0x0F, 0x78, 0x5F, 0x9B, 0x19, 0xB6, 0xF1, -0x20, 0xF0, 0x9D, 0xF0, 0xA6, 0x94, 0x1B, 0x75, 0x81, 0xAB, 0x50, 0x9E, 0x02, 0x81, 0x25, 0xC9, -0xE6, 0x78, 0x55, 0xAF, 0x2A, 0x07, 0xAA, 0x89, 0x40, 0xBB, 0x92, 0xA8, 0xC2, 0x68, 0x03, 0x65, -0x0B, 0xD9, 0xE9, 0xA8, 0xFF, 0xA5, 0x92, 0x94, 0xD7, 0xC4, 0xCB, 0xFB, 0xAB, 0x11, 0xCA, 0x19, -0x35, 0xF0, 0x21, 0xF0, 0xDC, 0xCC, 0xA7, 0x53, 0xD0, 0xDC, 0x00, 0x8D, 0x51, 0x8F, 0x5C, 0x8A, -0x93, 0x5F, 0x23, 0xD6, 0x42, 0x65, 0x63, 0x32, 0x77, 0x00, 0x23, 0x16, 0xA5, 0x3C, 0x72, 0xB9, -0x49, 0x37, 0xA3, 0x23, 0x05, 0xD0, 0xE2, 0x4A, 0x60, 0xFC, 0x87, 0x2B, 0xE3, 0x39, 0x08, 0x2F, -0x7A, 0x54, 0xDE, 0xFB, 0xB3, 0xCB, 0xF3, 0x20, 0xE1, 0x55, 0x12, 0xB6, 0x31, 0xE5, 0xC4, 0x27, -0x03, 0x97, 0x27, 0xA5, 0xD0, 0xE5, 0x51, 0xBE, 0xCC, 0x58, 0x29, 0x57, 0xB5, 0xF8, 0xAA, 0x00, -0x2C, 0xD2, 0xA7, 0xAC, 0x69, 0x1F, 0x1C, 0x1A, 0x70, 0x09, 0x3A, 0x9C, 0x73, 0xB3, 0x99, 0xF0, -0x9D, 0xFF, 0x2D, 0x15, 0x7F, 0x1B, 0x3B, 0xA3, 0xD6, 0xE3, 0x6C, 0xE1, 0x45, 0x9E, 0x4F, 0x06, -0x0E, 0x20, 0x95, 0x70, 0xC9, 0x1B, 0xF8, 0xEE, 0xF3, 0xF9, 0x12, 0x64, 0x0B, 0x30, 0x96, 0x87, -0xA9, 0x02, 0xE7, 0xF3, 0x57, 0x88, 0x76, 0x07, 0x7D, 0xF3, 0x02, 0x60, 0xC4, 0xF6, 0x28, 0xA5, -0xDA, 0xB3, 0xB9, 0x2C, 0x67, 0xDE, 0x79, 0x9B, 0xF5, 0xC9, 0xDB, 0x61, 0x41, 0xDA, 0x89, 0x4A, -0x04, 0x4E, 0x24, 0x89, 0xEB, 0x7F, 0x51, 0x45, 0xE2, 0xFD, 0xA8, 0xE2, 0x04, 0x5E, 0xC5, 0x46, -0xE0, 0x56, 0xE5, 0x5C, 0x09, 0x46, 0x26, 0xE1, 0x4A, 0x16, 0x86, 0xB2, 0x9C, 0x18, 0xEE, 0x65, -0xAC, 0x34, 0x15, 0x5F, 0xA1, 0x67, 0x5E, 0x00, 0x2C, 0xD2, 0x85, 0xC8, 0x2E, 0x6B, 0x84, 0xD7, -0x8E, 0xBF, 0x41, 0xA6, 0x21, 0x43, 0xDB, 0x9A, 0x76, 0x68, 0x6D, 0x82, 0x46, 0x81, 0x64, 0xC2, -0xD9, 0xC3, 0xF3, 0x2A, 0x33, 0xAE, 0x98, 0xF1, 0x5C, 0x45, 0xD5, 0x4A, 0x45, 0xC2, 0xA3, 0x6D, -0x45, 0xBE, 0x08, 0x63, 0x39, 0x18, 0x9A, 0x80, 0x81, 0x31, 0xAE, 0x0E, 0x0E, 0xF0, 0xC2, 0xD0, -0x11, 0x66, 0xEC, 0xCD, 0xAA, 0xEA, 0x93, 0xAB, 0x89, 0x40, 0x97, 0x52, 0x2A, 0x8B, 0x48, 0x26, -0x57, 0xCC, 0xF1, 0xFC, 0x2B, 0x7F, 0xE1, 0x53, 0x57, 0xB7, 0x70, 0xDB, 0xC6, 0xDB, 0xA1, 0xB5, -0x01, 0xD2, 0xF5, 0x6E, 0x35, 0x8D, 0x6D, 0x11, 0xC4, 0x30, 0x32, 0xA3, 0xCC, 0xCA, 0xB5, 0x8D, -0x1B, 0xC5, 0x10, 0x72, 0x45, 0x67, 0x9B, 0x91, 0x49, 0xB8, 0x32, 0xC1, 0xD9, 0xC1, 0x5E, 0x0E, -0xF5, 0xFF, 0x97, 0x69, 0x5D, 0x8A, 0x6F, 0x9B, 0xAD, 0x16, 0xA0, 0xAA, 0xDD, 0xE8, 0x2F, 0x6F, -0xFA, 0xEA, 0xFD, 0x40, 0xB7, 0x9B, 0x43, 0x85, 0xE7, 0xFB, 0xB4, 0xA6, 0x33, 0x6C, 0x5D, 0xBD, -0x99, 0x9B, 0x96, 0xAD, 0x26, 0xD1, 0xDC, 0xE8, 0x12, 0xB3, 0x3E, 0xE9, 0x3C, 0x1E, 0xF8, 0xAE, -0x64, 0x82, 0xCB, 0x8D, 0x78, 0x2D, 0x98, 0x2E, 0xC1, 0x54, 0x11, 0xA6, 0x0A, 0x30, 0x31, 0xCD, -0xE4, 0xD8, 0x18, 0xFF, 0x1C, 0x38, 0xC2, 0xC9, 0x89, 0x0B, 0x58, 0x63, 0x66, 0xDE, 0x72, 0x57, -0xE7, 0xE0, 0xE1, 0xE7, 0xE7, 0x0D, 0x00, 0xE0, 0xE7, 0x37, 0x7D, 0x65, 0x37, 0x70, 0xB0, 0xF2, -0x9B, 0x0A, 0xCF, 0xF3, 0xF0, 0x82, 0x80, 0xB5, 0xAD, 0x2B, 0x58, 0xD9, 0xBC, 0x84, 0x45, 0xE9, -0x05, 0x2C, 0x49, 0x2F, 0xAC, 0x44, 0x21, 0x06, 0x30, 0xD6, 0x95, 0xC9, 0xB2, 0x66, 0x34, 0x37, -0xCE, 0xA5, 0xC9, 0x21, 0x4E, 0x8D, 0x5F, 0xA2, 0x37, 0x7F, 0x19, 0x6B, 0x0C, 0x1F, 0xD0, 0xF0, -0x78, 0xE7, 0xE0, 0xE1, 0xA7, 0xAB, 0x12, 0x35, 0x1B, 0x00, 0x80, 0xFD, 0xAB, 0x1E, 0xB9, 0x2D, -0x82, 0xE8, 0x80, 0x19, 0xD5, 0x5A, 0x29, 0xD4, 0x0C, 0xAF, 0x2B, 0xCF, 0x63, 0x65, 0x6A, 0x01, -0x28, 0x85, 0xE0, 0x1A, 0x9A, 0x6C, 0x58, 0x60, 0x3C, 0xCC, 0xA1, 0x8D, 0x8E, 0xFF, 0x9C, 0xF8, -0x41, 0xE1, 0x00, 0x7B, 0x3A, 0x07, 0x0F, 0xCF, 0xEA, 0xDB, 0x9A, 0x9A, 0x9A, 0xFA, 0x9F, 0xAE, -0xFA, 0xD2, 0x5E, 0xA0, 0x53, 0x44, 0x32, 0xF1, 0x6B, 0x12, 0xFD, 0x14, 0x40, 0x94, 0xAA, 0x9C, -0x03, 0x22, 0x16, 0x4B, 0xA5, 0x4B, 0x93, 0xEB, 0x17, 0xAA, 0x9E, 0x48, 0xFC, 0xB1, 0xD9, 0x6A, -0x99, 0xD3, 0xF7, 0xC4, 0x4F, 0xAE, 0xFC, 0xE2, 0x6E, 0x60, 0x97, 0xC0, 0xAE, 0x6B, 0x82, 0x25, -0x46, 0x71, 0xAF, 0xC8, 0x8C, 0xD7, 0xED, 0xF5, 0xC2, 0xBB, 0x81, 0x83, 0xB3, 0x9D, 0xF5, 0x99, -0xC7, 0xBC, 0x7C, 0x53, 0xFF, 0xE3, 0x15, 0x0F, 0xB7, 0x08, 0x74, 0x80, 0x6C, 0x13, 0xD8, 0x16, -0x89, 0xDE, 0x26, 0x22, 0xD7, 0x40, 0x70, 0x0B, 0x53, 0x1F, 0x6E, 0xB6, 0x7B, 0x80, 0xEE, 0xCE, -0xC1, 0xC3, 0x17, 0xE6, 0x7A, 0xEF, 0x79, 0x01, 0xF8, 0x28, 0x8F, 0x8F, 0xFD, 0x7F, 0xAB, 0xFC, -0x0F, 0x31, 0xEC, 0x4B, 0xC9, 0x60, 0x91, 0x6E, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, -0x44, 0xAE, 0x42, 0x60, 0x82 -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_refresh.c b/Source/Core/DolphinWX/resources/toolbar_refresh.c deleted file mode 100644 index 30ed5bedd6..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_refresh.c +++ /dev/null @@ -1,306 +0,0 @@ -static const unsigned char toolbar_refresh_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/DolphinWX/resources/toolbar_stop.c b/Source/Core/DolphinWX/resources/toolbar_stop.c deleted file mode 100644 index 47dfd9f577..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_stop.c +++ /dev/null @@ -1,260 +0,0 @@ -static const unsigned char toolbar_stop_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, 0x14, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x34, -0x2f, 0x30, 0x34, 0x79, 0x5e, 0xa3, 0xd5, 0x00, 0x00, 0x0b, 0x61, 0x49, -0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x49, 0x8c, 0x5d, 0xc7, 0x75, -0x86, 0xbf, 0xaa, 0xba, 0xc3, 0x1b, 0x38, 0x3c, 0x36, 0x9b, 0xa4, 0x2d, -0x83, 0x14, 0x69, 0x45, 0x32, 0x18, 0xd0, 0x26, 0xb3, 0xc8, 0xc2, 0x8b, -0x50, 0xf4, 0x26, 0x4a, 0x80, 0x00, 0xd4, 0x22, 0x80, 0x80, 0x08, 0x82, -0xdb, 0x8b, 0x44, 0x1e, 0x00, 0x33, 0x59, 0x64, 0x45, 0x04, 0xa6, 0x21, -0x38, 0x32, 0x04, 0x28, 0x22, 0x99, 0x00, 0x81, 0x93, 0x05, 0x05, 0x04, -0xbd, 0x0d, 0xe8, 0x0c, 0x48, 0x82, 0x38, 0x01, 0x2d, 0x7b, 0x23, 0x07, -0x71, 0x68, 0x5b, 0x59, 0x49, 0xb6, 0x9a, 0x54, 0x8b, 0xa4, 0xba, 0x5f, -0x8f, 0xaf, 0xdf, 0xeb, 0x77, 0x87, 0x3a, 0x27, 0x8b, 0xba, 0x6f, 0xe8, -0x66, 0x37, 0xd9, 0x4d, 0x09, 0x11, 0x54, 0x40, 0xe1, 0xde, 0x37, 0xd5, -0xfd, 0xff, 0x73, 0xfe, 0x33, 0x54, 0x75, 0x1b, 0x55, 0xe5, 0x93, 0x3c, -0xec, 0xc7, 0x0d, 0xe0, 0xc3, 0x8e, 0xe8, 0xe3, 0x7c, 0xf8, 0x8b, 0x2f, -0xfe, 0x8d, 0x19, 0xdc, 0x7f, 0xef, 0x7b, 0x7f, 0xf4, 0x48, 0x52, 0x30, -0x1f, 0x95, 0x84, 0xbe, 0xfb, 0xdd, 0x7f, 0x3d, 0xae, 0xaa, 0xe7, 0x54, -0xe5, 0x9c, 0x88, 0x1c, 0x17, 0xd1, 0xd3, 0xaa, 0xd2, 0x12, 0x11, 0x44, -0x04, 0x55, 0x99, 0x11, 0x91, 0x5b, 0x22, 0x72, 0x43, 0x44, 0x7e, 0xb6, -0xb2, 0xd2, 0xfb, 0xfe, 0x16, 0xcb, 0x28, 0xec, 0x8e, 0xcc, 0x87, 0x22, -0xf0, 0xea, 0xab, 0xff, 0xd9, 0x52, 0x95, 0x67, 0x55, 0xf5, 0x82, 0xaa, -0x9e, 0x09, 0x40, 0x95, 0x31, 0xd0, 0xc3, 0xfb, 0x8d, 0xaf, 0x3d, 0x22, -0xb2, 0x2c, 0x22, 0xff, 0xe0, 0xbd, 0xfc, 0xdd, 0xfa, 0x7a, 0xf9, 0xc3, -0x0a, 0xfc, 0x60, 0x02, 0xe8, 0x4e, 0x88, 0x3c, 0x32, 0x81, 0xd7, 0x5e, -0xbb, 0x71, 0x09, 0xf4, 0x82, 0x88, 0xb6, 0x54, 0x95, 0x5a, 0x2d, 0xa5, -0xd9, 0x6c, 0xb2, 0x77, 0xef, 0x5e, 0x8c, 0x31, 0x24, 0x49, 0x3a, 0x04, -0x5b, 0x14, 0x05, 0xbd, 0xde, 0x1a, 0x6b, 0x6b, 0x3d, 0x3a, 0x9d, 0x15, -0x3a, 0x9d, 0x0e, 0x65, 0x59, 0x8c, 0x93, 0x7b, 0xc3, 0x7b, 0xff, 0xa7, -0x79, 0xce, 0xcd, 0x8a, 0x80, 0x0c, 0xc8, 0x3c, 0x8c, 0xc4, 0xae, 0x63, -0xe0, 0xca, 0x95, 0x37, 0xce, 0x19, 0x63, 0xae, 0x59, 0x6b, 0x8f, 0x5b, -0x6b, 0x99, 0x98, 0x98, 0xe0, 0xf1, 0xc7, 0x3f, 0xc5, 0xc1, 0x83, 0x75, -0x1a, 0x8d, 0x88, 0x28, 0xb2, 0x44, 0x91, 0xc3, 0x7b, 0x10, 0x81, 0x6e, -0x37, 0x67, 0x6d, 0x2d, 0x63, 0x65, 0xa5, 0xc7, 0xc2, 0xc2, 0x2a, 0x13, -0x13, 0x07, 0xc8, 0xf3, 0x9c, 0x95, 0x95, 0x25, 0xee, 0xde, 0xbd, 0x47, -0x96, 0x65, 0x00, 0x67, 0x8d, 0x31, 0x6f, 0xc6, 0xb1, 0xff, 0xf3, 0xa2, -0xb0, 0x2f, 0x01, 0xa6, 0x22, 0x31, 0x20, 0xb2, 0xed, 0xd8, 0x95, 0x07, -0xae, 0x5e, 0xfd, 0xf1, 0x25, 0x63, 0xcc, 0xb7, 0x00, 0x0e, 0x1f, 0x3e, -0xc4, 0xa9, 0x53, 0x47, 0x39, 0x7c, 0x38, 0x25, 0x4d, 0x2d, 0x22, 0x0c, -0x41, 0x3f, 0xe8, 0x7e, 0x6e, 0x6e, 0x99, 0xd9, 0xd9, 0x7b, 0xf4, 0x7a, -0xeb, 0x88, 0x94, 0xcc, 0xcf, 0xcf, 0x33, 0x37, 0x37, 0x37, 0xf4, 0x88, -0xaa, 0xfc, 0xc8, 0x7b, 0x7d, 0x4e, 0x35, 0x5a, 0x00, 0x3c, 0x20, 0x0f, -0xf2, 0xc2, 0x8e, 0x3d, 0x70, 0xf5, 0xea, 0x8f, 0xae, 0x59, 0x6b, 0xa7, -0xd2, 0x34, 0xe5, 0x0b, 0x5f, 0xf8, 0x1c, 0x4f, 0x3d, 0xb5, 0x87, 0x5a, -0xcd, 0x0c, 0xc1, 0xad, 0xaf, 0x7b, 0x16, 0x17, 0x73, 0x56, 0x57, 0x0b, -0xfa, 0xfd, 0x30, 0xbd, 0xf7, 0x88, 0x78, 0x92, 0xc4, 0x91, 0xa6, 0x31, -0xf5, 0x7a, 0x4a, 0xab, 0xb5, 0x97, 0x03, 0x07, 0x5a, 0xdc, 0xbd, 0x3b, -0xc7, 0xbb, 0xef, 0xde, 0xe2, 0xc0, 0x81, 0x09, 0xea, 0xf5, 0x3a, 0xb3, -0xb3, 0xef, 0xb1, 0xbe, 0xbe, 0x0e, 0xf0, 0x5b, 0xc6, 0xe8, 0xbf, 0xa9, -0x96, 0xcf, 0x40, 0xb4, 0xc0, 0xc6, 0xb8, 0xb8, 0x6f, 0xec, 0xc8, 0x03, -0x57, 0xae, 0xbc, 0x71, 0xcd, 0x5a, 0x3b, 0xd5, 0x6c, 0x36, 0x39, 0x7b, -0xf6, 0x14, 0xc7, 0x8e, 0xc5, 0x43, 0x8b, 0x2e, 0x2c, 0x78, 0xee, 0xdd, -0xcb, 0xe9, 0xf5, 0x4a, 0x44, 0x3c, 0xde, 0x4b, 0x75, 0xf5, 0x63, 0x57, -0xc1, 0x7b, 0x8f, 0xf7, 0x25, 0x65, 0x29, 0xb4, 0x5a, 0x7b, 0x38, 0x72, -0xe4, 0x08, 0x79, 0x5e, 0xf2, 0xd6, 0x5b, 0xff, 0x4b, 0x51, 0x64, 0x78, -0xef, 0xb9, 0x7b, 0xf7, 0x0e, 0x2b, 0x2b, 0xcb, 0x83, 0xb8, 0xf8, 0x85, -0xaa, 0xf9, 0x6d, 0x63, 0x92, 0x36, 0xe0, 0xb7, 0xf3, 0xc2, 0x43, 0x0b, -0xd9, 0x6b, 0xaf, 0xdd, 0xb8, 0x06, 0x4c, 0xed, 0xdf, 0xdf, 0xe2, 0x99, -0x67, 0x3e, 0xcf, 0xd1, 0xa3, 0x71, 0x65, 0x71, 0x78, 0xfb, 0xed, 0x92, -0xd9, 0xd9, 0x92, 0x2c, 0x53, 0x8c, 0x31, 0x80, 0xc1, 0x54, 0x99, 0x3d, -0x5c, 0x4d, 0x35, 0x87, 0xf6, 0x02, 0x60, 0x61, 0x61, 0x89, 0x9f, 0xff, -0xfc, 0x2d, 0x96, 0x96, 0x96, 0x38, 0x79, 0xf2, 0xd7, 0xb1, 0xd6, 0x21, -0xa2, 0x1c, 0x3e, 0x7c, 0x84, 0x5a, 0xad, 0x31, 0xf8, 0xdd, 0xe7, 0x55, -0xfd, 0xdf, 0x02, 0x6e, 0xd3, 0x22, 0x3b, 0x27, 0xf0, 0xea, 0xab, 0xff, -0x71, 0x41, 0x55, 0xa7, 0x6a, 0xb5, 0x1a, 0x5f, 0xfa, 0xd2, 0xe7, 0x98, -0x98, 0x88, 0x10, 0x81, 0x76, 0x5b, 0xf9, 0xe5, 0x2f, 0x95, 0x7e, 0xff, -0x61, 0xf4, 0x19, 0x12, 0x0a, 0xf7, 0xa3, 0x17, 0xaa, 0xf0, 0xfe, 0xfb, -0xb3, 0xbc, 0xf3, 0xce, 0x3b, 0x3c, 0xf1, 0xc4, 0x53, 0xc3, 0xf4, 0x7b, -0xe4, 0xc8, 0x11, 0xa2, 0x68, 0xa8, 0xec, 0xdf, 0x2b, 0xcb, 0xee, 0x37, -0x01, 0x3b, 0x5e, 0xf4, 0x76, 0x44, 0xe0, 0x95, 0x57, 0xfe, 0xfd, 0x8c, -0xaa, 0x5e, 0x76, 0xce, 0xf1, 0xc5, 0x2f, 0x9e, 0x62, 0x62, 0x22, 0x58, -0xfe, 0xf6, 0x6d, 0xcf, 0x9d, 0x3b, 0x21, 0xfd, 0x81, 0x32, 0x50, 0xe0, -0xd6, 0x52, 0x1c, 0x7d, 0x3e, 0x78, 0x3d, 0xe2, 0x10, 0x3e, 0xeb, 0xf5, -0x3a, 0xdc, 0xbe, 0x3d, 0xc3, 0xa7, 0x3f, 0xfd, 0x19, 0x54, 0x15, 0x63, -0x2c, 0x87, 0x0e, 0x1d, 0x62, 0x4c, 0xf6, 0x17, 0x8b, 0x62, 0xed, 0xc4, -0x76, 0x38, 0x1f, 0xe0, 0x01, 0xbd, 0xa6, 0x0a, 0x27, 0x4f, 0x3e, 0xc9, -0xd1, 0xa3, 0x75, 0x44, 0xe0, 0xd6, 0xad, 0x9c, 0xc5, 0xc5, 0xb2, 0x2a, -0x44, 0x7e, 0x58, 0x9c, 0x02, 0x78, 0x45, 0x55, 0x87, 0x44, 0x46, 0xc0, -0x47, 0x0c, 0xc2, 0x7b, 0xba, 0xe1, 0x33, 0x55, 0xe8, 0x74, 0x56, 0x59, -0x5e, 0x5e, 0x22, 0x8e, 0x6b, 0xa8, 0x0a, 0x69, 0x5a, 0x63, 0xcf, 0x9e, -0xbd, 0x83, 0x2f, 0xed, 0x57, 0x95, 0x3f, 0x63, 0x1b, 0x19, 0x6d, 0x49, -0xe0, 0xe5, 0x97, 0xff, 0xe5, 0xcb, 0xaa, 0x7a, 0x66, 0xdf, 0xbe, 0x7d, -0x3c, 0xf9, 0xe4, 0x41, 0x8c, 0x31, 0xb4, 0xdb, 0x05, 0x0b, 0x0b, 0x05, -0xde, 0xcb, 0x70, 0x6e, 0xac, 0xb2, 0xba, 0xc5, 0x1c, 0x00, 0xdf, 0x9c, -0x48, 0x46, 0x84, 0x07, 0xef, 0x77, 0x3a, 0xab, 0x14, 0x45, 0x86, 0x48, -0x78, 0xbf, 0xd5, 0x3a, 0x80, 0xea, 0xd0, 0xb3, 0x2f, 0x64, 0xd9, 0xf2, -0x96, 0x5e, 0xd8, 0x92, 0x80, 0xaa, 0x5e, 0x52, 0x55, 0x4e, 0x9e, 0xfc, -0x2c, 0xfb, 0xf6, 0x25, 0xf4, 0xfb, 0xc2, 0xec, 0xec, 0xfa, 0x58, 0x1b, -0x30, 0xf2, 0xc0, 0x78, 0xfb, 0x30, 0xf0, 0xc6, 0xe8, 0xba, 0x99, 0x8c, -0x56, 0x32, 0x31, 0x15, 0x38, 0x86, 0x80, 0x45, 0x94, 0xa2, 0x28, 0x86, -0xeb, 0x39, 0xe7, 0x68, 0x36, 0x9b, 0x18, 0x33, 0xf8, 0x1e, 0xdf, 0xdc, -0x0a, 0xeb, 0x7d, 0x69, 0xf4, 0xa5, 0x97, 0xfe, 0xf1, 0xbc, 0xb5, 0xf6, -0xfa, 0xe4, 0xe4, 0x41, 0xce, 0x9e, 0x3d, 0xcd, 0xe4, 0x64, 0x9d, 0x99, -0x99, 0x35, 0x3a, 0x9d, 0x02, 0x63, 0x2c, 0xc6, 0x8c, 0x32, 0x4d, 0x7b, -0x7e, 0x8e, 0x9b, 0x3f, 0x7d, 0x93, 0xf5, 0x5e, 0x77, 0xab, 0xb5, 0xef, -0x1b, 0x69, 0x5a, 0xe3, 0xd8, 0x89, 0x5f, 0xa3, 0xde, 0x68, 0x52, 0x14, -0x39, 0x79, 0x5e, 0x52, 0x96, 0x05, 0x79, 0x5e, 0x54, 0x85, 0x2c, 0x90, -0x0f, 0x5e, 0x31, 0x74, 0x3a, 0xab, 0xcc, 0xcf, 0xdd, 0xa5, 0x0c, 0x29, -0xf9, 0x56, 0xbd, 0x3e, 0x71, 0x62, 0x73, 0x3a, 0xbd, 0xaf, 0x90, 0xa9, -0xea, 0x94, 0xaa, 0x30, 0x39, 0x79, 0x90, 0x03, 0x07, 0xea, 0xac, 0xae, -0xe6, 0x2c, 0x2d, 0xad, 0x63, 0xad, 0xc5, 0x98, 0x51, 0xba, 0x04, 0xb8, -0xf9, 0xd3, 0x37, 0x39, 0x75, 0xea, 0x33, 0x3c, 0xf7, 0x07, 0xe7, 0x76, -0x44, 0x60, 0x7d, 0x3d, 0xe7, 0x9f, 0xff, 0xe9, 0xbf, 0x58, 0xeb, 0xea, -0xd0, 0x53, 0x03, 0xcf, 0x85, 0x87, 0x0b, 0xa8, 0x62, 0xad, 0x41, 0x55, -0x69, 0x36, 0xea, 0xcc, 0x63, 0x06, 0xe2, 0x7f, 0xbc, 0xdb, 0x6d, 0x9f, -0x01, 0xfe, 0x67, 0x7c, 0xcd, 0x0d, 0x12, 0xba, 0x74, 0xe9, 0xef, 0x5b, -0xaa, 0xf2, 0x6c, 0x14, 0xc5, 0x1c, 0x3a, 0x34, 0x51, 0xa5, 0xcc, 0xf5, -0x0d, 0x5a, 0x1f, 0x14, 0x2a, 0x11, 0xcf, 0x7a, 0xaf, 0xcb, 0xef, 0x3f, -0x77, 0x0e, 0xef, 0xd9, 0xd1, 0x4c, 0x92, 0x84, 0xdf, 0xf9, 0xdd, 0xdf, -0xac, 0x80, 0x6f, 0x0e, 0xfa, 0x10, 0x0f, 0xc6, 0x54, 0x55, 0xc0, 0x80, -0x73, 0x8e, 0x34, 0xad, 0xc1, 0x50, 0x72, 0x7a, 0x7e, 0xb3, 0x51, 0x36, -0x78, 0x40, 0x44, 0x9f, 0xb6, 0x56, 0x69, 0x36, 0x1b, 0x34, 0x9b, 0x09, -0x45, 0x21, 0xb4, 0xdb, 0xdd, 0xca, 0xea, 0x21, 0xc5, 0xc1, 0xc6, 0x7c, -0xee, 0xfd, 0x8e, 0x8c, 0x3f, 0x1c, 0x49, 0x92, 0x6c, 0xb0, 0xbe, 0x88, -0xa0, 0xa2, 0x15, 0x68, 0x83, 0x31, 0x06, 0x6b, 0x0c, 0xa2, 0x82, 0x28, -0x44, 0x91, 0xc3, 0x8c, 0x12, 0xc0, 0xe9, 0x07, 0x12, 0x50, 0xd5, 0x33, -0xaa, 0x42, 0xa3, 0xd1, 0xa0, 0x56, 0x8b, 0x59, 0x5d, 0xcd, 0x10, 0x91, -0x2a, 0xe8, 0xcc, 0x98, 0x84, 0xc6, 0x49, 0xef, 0x8e, 0x40, 0xf8, 0x8d, -0x8c, 0x05, 0xef, 0x28, 0x0d, 0x1b, 0x0c, 0x91, 0xb5, 0x58, 0x6b, 0xf0, -0x62, 0x80, 0x92, 0x5a, 0x2d, 0xa5, 0xd3, 0x19, 0x66, 0xa3, 0xd6, 0x43, -0x08, 0xc8, 0x39, 0x11, 0x4b, 0x14, 0x45, 0x34, 0x1a, 0x35, 0xee, 0xdc, -0x59, 0x44, 0xc4, 0x57, 0x96, 0xd9, 0x18, 0xc0, 0x83, 0xb1, 0x5b, 0x0f, -0x8c, 0x08, 0xc8, 0xb0, 0x4f, 0x42, 0x03, 0x78, 0x67, 0xc1, 0x59, 0x83, -0xb3, 0x16, 0x54, 0x50, 0x63, 0xb1, 0x26, 0xd8, 0xbf, 0x52, 0xda, 0xb9, -0x87, 0x10, 0xd0, 0x16, 0x08, 0x69, 0x9a, 0x56, 0xbd, 0x7c, 0x7f, 0xe8, -0x81, 0x8d, 0xd6, 0x7f, 0x74, 0x09, 0x0d, 0x08, 0x84, 0xe6, 0x2e, 0x78, -0xc2, 0x20, 0x38, 0x63, 0x02, 0x78, 0x67, 0x71, 0xd6, 0xa2, 0x28, 0x42, -0x90, 0x54, 0x78, 0xda, 0xd6, 0x4d, 0xe7, 0xa6, 0x18, 0x90, 0x33, 0x03, -0x1d, 0x8a, 0xc0, 0xea, 0x6a, 0x77, 0xcc, 0xf2, 0x61, 0x99, 0x8f, 0x42, -0x42, 0xde, 0x97, 0xc3, 0x6e, 0x55, 0xd5, 0x63, 0x8d, 0xc1, 0x1a, 0x70, -0xd6, 0x11, 0xbb, 0x08, 0x6b, 0x42, 0x7d, 0xb0, 0x66, 0x20, 0xdf, 0xed, -0x3b, 0xea, 0xcd, 0x12, 0x02, 0x6c, 0xe5, 0x62, 0x2a, 0xeb, 0x8f, 0x77, -0x9a, 0xf7, 0x93, 0x78, 0x14, 0x0f, 0x94, 0xa5, 0x1f, 0x93, 0x4f, 0x58, -0xcf, 0x59, 0x4b, 0xe4, 0xc2, 0x34, 0x80, 0xb3, 0x42, 0x29, 0x86, 0xa2, -0xc8, 0xb7, 0xe9, 0xb3, 0xb6, 0x20, 0x20, 0xa2, 0x18, 0x23, 0x23, 0x02, -0x3e, 0x58, 0x80, 0xca, 0x03, 0xa3, 0x16, 0x79, 0x34, 0x1e, 0x8d, 0x40, -0x59, 0x91, 0x10, 0x9c, 0x09, 0xba, 0x8f, 0x9d, 0x23, 0x89, 0x23, 0xe2, -0xc8, 0x85, 0x6a, 0xed, 0x43, 0x2a, 0x2d, 0x8a, 0x02, 0x19, 0x11, 0xb8, -0xf9, 0x40, 0x02, 0xaa, 0x82, 0xc1, 0x90, 0x65, 0x19, 0xab, 0xab, 0xdd, -0xca, 0x23, 0xa3, 0xc2, 0x25, 0xf2, 0xd1, 0x04, 0xf1, 0x40, 0x3e, 0x06, -0xc1, 0x1a, 0x1b, 0xc0, 0x47, 0x11, 0x49, 0xe4, 0x88, 0x9c, 0xa3, 0xf0, -0x25, 0xc6, 0x1a, 0x0c, 0x86, 0x6e, 0x77, 0x6d, 0xdc, 0x03, 0xcb, 0x0f, -0x24, 0x20, 0x22, 0x37, 0x8c, 0xb5, 0xe7, 0xf2, 0xac, 0x4f, 0xaf, 0xbb, -0xce, 0x40, 0x77, 0x66, 0xd0, 0xb3, 0xc0, 0xb0, 0x97, 0x19, 0xfd, 0x66, -0xf7, 0x04, 0xca, 0xd2, 0x83, 0x86, 0xc0, 0x4d, 0x22, 0x47, 0x2d, 0x89, -0xa8, 0xa5, 0x31, 0x49, 0xe4, 0xc2, 0xe7, 0x3e, 0x80, 0xcf, 0xf2, 0xac, -0xb2, 0xfe, 0x90, 0xc0, 0x8d, 0x87, 0x11, 0x58, 0x0e, 0xac, 0x3b, 0x2c, -0x2e, 0x2c, 0x52, 0xaf, 0xa5, 0xe4, 0x59, 0x8e, 0xa8, 0x60, 0x08, 0x1e, -0x52, 0x01, 0xd1, 0x40, 0x26, 0x49, 0x52, 0xfa, 0xfd, 0x9c, 0x34, 0x4d, -0x76, 0x0c, 0x3e, 0xcb, 0xf2, 0x0a, 0xbc, 0x25, 0x8d, 0x23, 0x1a, 0x69, -0x42, 0x3d, 0x49, 0xa8, 0xc5, 0x11, 0xce, 0x39, 0x4a, 0x09, 0x2e, 0x55, -0x55, 0x96, 0x96, 0x97, 0xf1, 0x5e, 0xc7, 0x3d, 0x70, 0x9f, 0x84, 0x36, -0xb4, 0x12, 0xaa, 0x7a, 0x53, 0x51, 0xba, 0x6b, 0x5d, 0xfa, 0xfd, 0x5e, -0x60, 0xae, 0x42, 0x64, 0xc0, 0xa2, 0x18, 0x35, 0x18, 0x06, 0x7b, 0xde, -0x92, 0xc7, 0x8e, 0x3e, 0xce, 0x8f, 0xdf, 0xf8, 0x49, 0x00, 0xb5, 0x43, -0xf0, 0x3f, 0x79, 0xf3, 0x17, 0x44, 0x36, 0x80, 0xaf, 0x27, 0x49, 0x20, -0x90, 0x26, 0xa4, 0x49, 0x5c, 0xe5, 0x7f, 0x10, 0x14, 0xaf, 0xc2, 0xf2, -0xf2, 0x52, 0xd5, 0xd9, 0x0e, 0x97, 0xb8, 0xb1, 0x79, 0xcd, 0xcd, 0x1e, -0xb8, 0x6e, 0x8c, 0xb9, 0xd4, 0xed, 0x76, 0xf1, 0x65, 0x49, 0x91, 0x15, -0x38, 0x43, 0x55, 0xde, 0xc1, 0x20, 0x94, 0x3e, 0x48, 0x0a, 0x51, 0x6a, -0xb5, 0x06, 0x59, 0x2e, 0xfc, 0xe0, 0x07, 0xff, 0x8d, 0xf7, 0x83, 0xb6, -0x3a, 0xb8, 0x3c, 0xe8, 0x5c, 0x51, 0xf5, 0xa8, 0x0c, 0xf2, 0xbd, 0xe2, -0x8c, 0xa1, 0x91, 0xc6, 0xa4, 0x71, 0x44, 0xb3, 0x96, 0xd2, 0x48, 0x13, -0xe2, 0x28, 0xc2, 0x5a, 0xc8, 0x4b, 0x8f, 0x57, 0xa1, 0xf4, 0xc2, 0xc2, -0xe2, 0x12, 0x59, 0x5e, 0xe0, 0x65, 0x18, 0x64, 0xd7, 0xa7, 0xa7, 0x2f, -0xae, 0x3c, 0xd0, 0x03, 0x57, 0xaf, 0xfe, 0xe1, 0xcf, 0xc4, 0xfb, 0x19, -0x2f, 0x9e, 0x85, 0x85, 0x36, 0xbe, 0xcc, 0x31, 0x06, 0x22, 0x0b, 0x91, -0xb5, 0x24, 0xce, 0x91, 0x38, 0x4b, 0xec, 0x0c, 0x91, 0x05, 0x67, 0x14, -0x4b, 0x68, 0xd6, 0x8d, 0x2a, 0x2a, 0x1e, 0xd4, 0xa3, 0x3e, 0x68, 0xdc, -0xa8, 0x60, 0x35, 0x3c, 0x24, 0xb1, 0x96, 0x7a, 0x1c, 0xd1, 0xac, 0x25, -0xec, 0xa9, 0xd7, 0xd8, 0xdf, 0x6c, 0xb0, 0xb7, 0x5e, 0xa3, 0x9e, 0x26, -0x95, 0xf6, 0x4d, 0xd8, 0x13, 0x94, 0x9e, 0xac, 0x28, 0xf8, 0x60, 0xee, -0x03, 0xbc, 0x94, 0xe3, 0xd6, 0x7f, 0x7d, 0x2b, 0xaf, 0x6e, 0x71, 0x2e, -0xa4, 0xdf, 0x17, 0x2f, 0x17, 0xda, 0xed, 0x36, 0x93, 0x13, 0x93, 0x24, -0x91, 0xc5, 0x60, 0x89, 0x6c, 0xc8, 0x46, 0xce, 0x04, 0x40, 0x45, 0xc5, -0xbe, 0x1c, 0x5c, 0xd5, 0x63, 0x6c, 0x28, 0x80, 0x6a, 0xc0, 0x62, 0xc0, -0x99, 0xca, 0xea, 0x0e, 0x67, 0x2d, 0x49, 0xe4, 0x48, 0xe3, 0x88, 0x5a, -0x12, 0x93, 0xc6, 0x31, 0x49, 0xec, 0x30, 0xc6, 0x50, 0x7a, 0xc1, 0x8b, -0x90, 0x97, 0x25, 0x79, 0xe9, 0x79, 0xff, 0xce, 0x2c, 0xfd, 0x2c, 0xc3, -0x0f, 0xfb, 0x24, 0x66, 0xa6, 0xa7, 0x2f, 0x6e, 0x75, 0x18, 0xbc, 0xe5, -0x7e, 0xe0, 0xb2, 0x17, 0x7f, 0x21, 0x2f, 0x72, 0xe6, 0xdb, 0x1f, 0x90, -0x3e, 0xf6, 0x18, 0x91, 0x0d, 0x6d, 0x6e, 0xe4, 0x0c, 0xb1, 0x46, 0xc4, -0xce, 0x52, 0x3a, 0x4b, 0xe1, 0x2d, 0x79, 0x69, 0x42, 0x4e, 0xb7, 0x06, -0x2f, 0x82, 0x68, 0xe8, 0x2e, 0xc1, 0x61, 0x01, 0xe7, 0x0c, 0x91, 0x75, -0xc4, 0x91, 0x0d, 0xa9, 0x32, 0x8e, 0x48, 0xa2, 0x88, 0xc8, 0x59, 0xc0, -0x50, 0x8a, 0xa7, 0x14, 0x4f, 0x3f, 0x2f, 0xe8, 0x17, 0x05, 0xf3, 0x0b, -0x6d, 0x16, 0x16, 0x97, 0x29, 0xca, 0xb2, 0x92, 0x23, 0x00, 0x97, 0xb6, -0x02, 0x0f, 0xdb, 0x1c, 0x6c, 0x7d, 0xe3, 0x1b, 0x7f, 0xfd, 0x7a, 0x1c, -0x45, 0x5f, 0xae, 0x25, 0x31, 0x4f, 0x7e, 0xf6, 0x04, 0x07, 0xf6, 0xb7, -0xa8, 0xc5, 0x11, 0x69, 0x1c, 0x11, 0x55, 0xf9, 0x59, 0x34, 0xe8, 0xbc, -0xf4, 0x42, 0xe9, 0x3d, 0xa5, 0xf7, 0x55, 0xc6, 0x90, 0x6a, 0x3f, 0x05, -0xd6, 0x84, 0xde, 0x26, 0x76, 0x96, 0xc8, 0xb9, 0x6a, 0x56, 0x0d, 0x9a, -0x2a, 0x85, 0x0f, 0x72, 0xe9, 0x65, 0x05, 0xdd, 0x2c, 0xe3, 0x83, 0x76, -0x9b, 0x77, 0x6f, 0xcd, 0xb0, 0x9e, 0x65, 0xe3, 0x04, 0x6e, 0x4e, 0x4f, -0x5f, 0xfc, 0x8d, 0xed, 0x08, 0x6c, 0x79, 0xb4, 0x18, 0x3b, 0xfb, 0xed, -0xb2, 0x2c, 0xce, 0xe7, 0xd0, 0x9a, 0xb9, 0xfd, 0x1e, 0xd1, 0x89, 0x08, -0xbb, 0x77, 0x4f, 0xa8, 0x9a, 0x71, 0x8c, 0x73, 0x96, 0xc8, 0x00, 0x55, -0xd5, 0x14, 0x11, 0x64, 0x10, 0xc0, 0x63, 0x06, 0xb1, 0x55, 0xf5, 0xb6, -0xd6, 0xe2, 0xaa, 0x6a, 0xae, 0x28, 0x5e, 0xa4, 0x02, 0x5f, 0xd2, 0xcb, -0x0a, 0x7a, 0x59, 0xc6, 0xfc, 0xc2, 0x02, 0xb7, 0xde, 0xbb, 0x4d, 0x96, -0x97, 0x94, 0xde, 0x8f, 0xa7, 0xce, 0xa9, 0xed, 0xc0, 0x6f, 0xeb, 0x01, -0x80, 0xaf, 0x7f, 0xed, 0xaf, 0xfe, 0xc4, 0x18, 0xfb, 0x17, 0xb5, 0x24, -0xa1, 0x59, 0xaf, 0xf1, 0xc4, 0x89, 0xe3, 0xb4, 0xf6, 0xee, 0xa5, 0x9e, -0xc4, 0x95, 0x27, 0x42, 0xd7, 0x68, 0xad, 0x19, 0xd6, 0x99, 0x00, 0xaf, -0x1a, 0x95, 0x1b, 0x06, 0x25, 0x4f, 0x35, 0x00, 0x2f, 0x7d, 0xd0, 0x7a, -0xb0, 0x7c, 0x4e, 0x2f, 0xcb, 0x99, 0xbd, 0x73, 0x97, 0xbb, 0x73, 0xf7, -0xe8, 0x67, 0x39, 0x79, 0x51, 0x8c, 0x6b, 0xff, 0x8f, 0xa7, 0xa7, 0x2f, -0x5e, 0x79, 0x24, 0x02, 0x00, 0x5f, 0x7d, 0xf1, 0xea, 0xf5, 0xc8, 0xb9, -0xf3, 0x69, 0x45, 0xe2, 0xf8, 0xb1, 0x63, 0x1c, 0xd8, 0x37, 0x22, 0x91, -0x44, 0x11, 0xae, 0x22, 0x32, 0xd8, 0x51, 0x0d, 0xf5, 0x53, 0x15, 0x3b, -0xa9, 0xb6, 0x8f, 0x41, 0x6a, 0x21, 0x48, 0xfb, 0x79, 0xc1, 0x7a, 0x9e, -0xb3, 0xba, 0xb6, 0xc6, 0xad, 0xd9, 0x59, 0x96, 0x57, 0x57, 0xe9, 0x67, -0x39, 0xa5, 0x2f, 0x29, 0xfd, 0x10, 0xfc, 0xeb, 0xd3, 0xd3, 0x17, 0xbf, -0xf2, 0x20, 0xf0, 0xf0, 0x90, 0xd3, 0xe9, 0xc8, 0xb9, 0xa9, 0xac, 0x28, -0x6e, 0xa8, 0xea, 0x69, 0x11, 0xcf, 0xdb, 0xbf, 0xfa, 0x15, 0x47, 0x26, -0x0f, 0xf1, 0xa9, 0xc3, 0x87, 0x68, 0xa4, 0x29, 0x49, 0xec, 0x49, 0x22, -0x47, 0xec, 0x1c, 0xce, 0x1a, 0xac, 0xb1, 0xc3, 0x63, 0x10, 0x25, 0x00, -0xf7, 0x5e, 0x28, 0x45, 0xc8, 0x8b, 0xb2, 0xca, 0x32, 0x25, 0x6b, 0xbd, -0x75, 0xee, 0xcd, 0xcf, 0x31, 0xdf, 0x6e, 0xd3, 0xeb, 0xe7, 0xe4, 0x45, -0x1e, 0x62, 0x48, 0x76, 0x07, 0xfe, 0xa1, 0x1e, 0x00, 0xf8, 0xfa, 0x57, -0xff, 0xb2, 0x95, 0x97, 0xe5, 0x8d, 0xc8, 0xb9, 0xd3, 0x71, 0xe4, 0x48, -0xe3, 0x98, 0x46, 0xbd, 0xc6, 0xe1, 0x83, 0x93, 0x4c, 0xb4, 0x5a, 0xd4, -0x6b, 0x29, 0xf1, 0x30, 0x38, 0x03, 0x01, 0x34, 0xb4, 0x1b, 0xa2, 0xe1, -0x10, 0xa0, 0xf0, 0x9e, 0xbc, 0x28, 0x59, 0xe9, 0x74, 0x58, 0x5a, 0x59, -0xa6, 0xbd, 0xb8, 0xc8, 0x7a, 0x16, 0x80, 0x17, 0x83, 0xd6, 0x7a, 0x54, -0x71, 0x77, 0x0c, 0x7e, 0x47, 0x04, 0x00, 0xbe, 0xf6, 0xe2, 0xd5, 0x56, -0x96, 0xe7, 0xd7, 0xad, 0xb5, 0x4f, 0x27, 0xb1, 0x23, 0x8e, 0x22, 0xe2, -0x28, 0x22, 0x89, 0x63, 0xf6, 0xed, 0xd9, 0x43, 0xb3, 0xd1, 0x64, 0x4f, -0xb3, 0x41, 0x12, 0x27, 0x38, 0x17, 0x1a, 0x32, 0xef, 0x4b, 0xb2, 0xbc, -0xa0, 0xdf, 0xef, 0xb3, 0xd6, 0x5d, 0x63, 0xa5, 0xd3, 0x21, 0xcb, 0x73, -0xfa, 0x79, 0x41, 0x51, 0x16, 0x21, 0xf5, 0x4a, 0xb0, 0xfa, 0x78, 0xba, -0x9c, 0x9e, 0xbe, 0xf8, 0xed, 0x9d, 0x82, 0xdf, 0x31, 0x81, 0xc1, 0xf8, -0xca, 0xd4, 0x2b, 0x97, 0x8c, 0x31, 0xdf, 0x72, 0xd6, 0xe2, 0x5c, 0x28, -0x4e, 0x51, 0x95, 0xd3, 0xc3, 0x46, 0xc4, 0x0d, 0x25, 0x04, 0x21, 0x60, -0x45, 0x06, 0x69, 0xb6, 0x1c, 0xa6, 0x5b, 0x11, 0x19, 0xca, 0xa5, 0x7a, -0xfc, 0x0c, 0x30, 0x35, 0x3d, 0x7d, 0xf1, 0x87, 0xbb, 0x01, 0xbf, 0x6b, -0x02, 0x00, 0x2f, 0xbc, 0xf0, 0xf2, 0x69, 0x63, 0xcc, 0x65, 0x6b, 0xcc, -0x39, 0x53, 0xe9, 0xde, 0x1a, 0x13, 0xb2, 0x11, 0xa1, 0x67, 0x02, 0x86, -0xe7, 0x9a, 0xa2, 0x32, 0xb4, 0xb2, 0x6c, 0x38, 0x72, 0x04, 0x42, 0x7f, -0x7f, 0x79, 0xb7, 0x56, 0xff, 0x50, 0x04, 0x06, 0xe3, 0xf9, 0xe7, 0xbf, -0xf3, 0xb4, 0x31, 0x4c, 0x59, 0x63, 0x9f, 0x35, 0xc6, 0xb4, 0xac, 0x1d, -0x6c, 0xc0, 0xc7, 0xf6, 0x0a, 0x3a, 0x6a, 0xf0, 0x94, 0x0d, 0xc0, 0x6f, -0x02, 0x97, 0xd9, 0xa6, 0x41, 0xfb, 0x7f, 0x21, 0x30, 0x3e, 0x9e, 0x7f, -0xfe, 0x3b, 0xe7, 0x81, 0x33, 0x84, 0x63, 0x8f, 0xe3, 0xd5, 0x1c, 0x8c, -0x65, 0x02, 0xe0, 0x19, 0x42, 0x3b, 0x7c, 0x63, 0x7a, 0xfa, 0xe2, 0xad, -0x0f, 0xfd, 0xd0, 0x6a, 0x7c, 0x64, 0x7f, 0xa9, 0xff, 0xb8, 0xc6, 0x27, -0xfe, 0x9f, 0x3d, 0x3e, 0xf1, 0x04, 0xfe, 0x0f, 0xa4, 0xff, 0x07, 0x95, -0xd9, 0xf3, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, -0xae, 0x42, 0x60, 0x82, -}; -- cgit v1.2.3 From 3510454a94c3725c0dfb04341785a1f8c40c0c15 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 16:13:38 -0600 Subject: Hopeful Windows buildfix (this better not break OS X) --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 1f1d8a3619..0841c72696 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -18,6 +18,7 @@ #include // System #include #include +#include #include #include "Common.h" @@ -596,11 +597,11 @@ void CConfigMain::CreateGUIControls() theme_selection->SetSelection(theme_selection->GetCount() - 1); }); - theme_selection->Bind(wxEVT_COMMAND_CHOICE_SELECTED, [this,theme_selection](wxEvent&) + theme_selection->Bind(wxEVT_COMMAND_CHOICE_SELECTED, std::function([this,theme_selection](wxEvent&) { SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name = theme_selection->GetStringSelection(); main_frame->InitBitmaps(); - }); + })); auto const scInterface = new wxBoxSizer(wxHORIZONTAL); scInterface->Add(TEXT_BOX(DisplayPage, _("Theme:")), 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); -- cgit v1.2.3 From c00339449a3e467caf937b4b5f2b74db55036c9b Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 16:27:02 -0600 Subject: buildfix --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 0841c72696..968cee42ab 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -18,7 +18,6 @@ #include // System #include #include -#include #include #include "Common.h" @@ -43,6 +42,14 @@ #include "Main.h" #include "VideoBackendBase.h" +#if defined(__APPLE__) +#include +using std::tr1::function; +#else +#include +using std::function; +#endif + #define TEXT_BOX(page, text) new wxStaticText(page, wxID_ANY, text, wxDefaultPosition, wxDefaultSize) extern CFrame* main_frame; @@ -597,7 +604,8 @@ void CConfigMain::CreateGUIControls() theme_selection->SetSelection(theme_selection->GetCount() - 1); }); - theme_selection->Bind(wxEVT_COMMAND_CHOICE_SELECTED, std::function([this,theme_selection](wxEvent&) + // std::function = avoid error on msvc + theme_selection->Bind(wxEVT_COMMAND_CHOICE_SELECTED, function([this,theme_selection](wxEvent&) { SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name = theme_selection->GetStringSelection(); main_frame->InitBitmaps(); -- cgit v1.2.3 From 644c8f2713d5706757a8d551080066dedf9e327e Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 17:52:32 -0600 Subject: Enhance an error message. Fix issue 5893. --- Source/Core/Core/Src/ActionReplay.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/ActionReplay.cpp b/Source/Core/Core/Src/ActionReplay.cpp index 77f5778061..98857fae97 100644 --- a/Source/Core/Core/Src/ActionReplay.cpp +++ b/Source/Core/Core/Src/ActionReplay.cpp @@ -679,7 +679,8 @@ bool Subtype_MasterCodeAndWriteToCCXXXXXX(const ARAddr addr, const u32 data) // u8 mcode_type = (data & 0xFF0000) >> 16; // u8 mcode_count = (data & 0xFF00) >> 8; // u8 mcode_number = data & 0xFF; - PanicAlertT("Action Replay Error: Master Code and Write To CCXXXXXX not implemented (%s)", current_code->name.c_str()); + PanicAlertT("Action Replay Error: Master Code and Write To CCXXXXXX not implemented (%s)\n" + "Master codes are not needed. Do not use master codes.", current_code->name.c_str()); return false; } -- cgit v1.2.3 From 47792b02a526597642e8e4e40991c0fb108b521d Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 13 Jan 2013 22:28:36 -0500 Subject: Fix a small text overlapping issue in the MemcardManager. --- Source/Core/DolphinWX/Src/MemcardManager.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/MemcardManager.cpp b/Source/Core/DolphinWX/Src/MemcardManager.cpp index 3f8f0de7a7..6831e83d61 100644 --- a/Source/Core/DolphinWX/Src/MemcardManager.cpp +++ b/Source/Core/DolphinWX/Src/MemcardManager.cpp @@ -777,6 +777,9 @@ bool CMemcardManager::ReloadMemcard(const char *fileName, int card) memoryCard[card]->GetFreeBlocks(), DIRLEN - nFiles); t_Status[card]->SetLabel(wxLabel); + // Done so text doesn't overlap the UI. + this->Fit(); + return true; } -- cgit v1.2.3 From 020ab743a90c165e836d4bb3cce57cb60443ad7e Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 13 Jan 2013 22:20:33 -0600 Subject: re-enable PulseAudio backend --- Source/Core/AudioCommon/Src/AudioCommon.cpp | 14 ++++++++------ Source/Core/AudioCommon/Src/PulseAudioStream.cpp | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/AudioCommon.cpp b/Source/Core/AudioCommon/Src/AudioCommon.cpp index b21aec45ba..5660edca0a 100644 --- a/Source/Core/AudioCommon/Src/AudioCommon.cpp +++ b/Source/Core/AudioCommon/Src/AudioCommon.cpp @@ -96,18 +96,20 @@ namespace AudioCommon { std::vector backends; - if (NullSound::isValid()) + if (NullSound::isValid()) backends.push_back(BACKEND_NULLSOUND); - if (DSound::isValid()) + if (DSound::isValid()) backends.push_back(BACKEND_DIRECTSOUND); - if (XAudio2::isValid()) + if (XAudio2::isValid()) backends.push_back(BACKEND_XAUDIO2); - if (AOSound::isValid()) + if (AOSound::isValid()) backends.push_back(BACKEND_AOSOUND); - if (AlsaSound::isValid()) + if (AlsaSound::isValid()) backends.push_back(BACKEND_ALSA); - if (CoreAudioSound::isValid()) + if (CoreAudioSound::isValid()) backends.push_back(BACKEND_COREAUDIO); + if (PulseAudio::isValid()) + backends.push_back(BACKEND_PULSEAUDIO); return backends; } diff --git a/Source/Core/AudioCommon/Src/PulseAudioStream.cpp b/Source/Core/AudioCommon/Src/PulseAudioStream.cpp index 923a338190..faa94c22e0 100644 --- a/Source/Core/AudioCommon/Src/PulseAudioStream.cpp +++ b/Source/Core/AudioCommon/Src/PulseAudioStream.cpp @@ -77,7 +77,7 @@ bool PulseAudio::PulseInit() pa_sample_spec ss = {}; ss.format = PA_SAMPLE_S16LE; ss.channels = 2; - ss.rate = m_mixer->GetSampleRate(); + ss.rate = m_mixer->GetSampleRate(); int error; pa = pa_simple_new(nullptr, "dolphin-emu", PA_STREAM_PLAYBACK, -- cgit v1.2.3 From 4ea4f2eb45071db2f580e1a2f5d2ce2d978a39ae Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 13 Jan 2013 23:42:18 -0500 Subject: 'width' and 'height' parameters of wxBitmapFromMemoryRGBA should be unsigned. Not a big deal, but it's good to do it for the sake of maintaining practicalities. --- Source/Core/DolphinWX/Src/MemcardManager.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/MemcardManager.cpp b/Source/Core/DolphinWX/Src/MemcardManager.cpp index 6831e83d61..b3a7ab22b8 100644 --- a/Source/Core/DolphinWX/Src/MemcardManager.cpp +++ b/Source/Core/DolphinWX/Src/MemcardManager.cpp @@ -39,11 +39,11 @@ const u8 hdr[] = { 0x00,0x00,0x00,0x00 }; -wxBitmap wxBitmapFromMemoryRGBA(const unsigned char* data, int width, int height) +wxBitmap wxBitmapFromMemoryRGBA(const unsigned char* data, u32 width, u32 height) { - int stride = (4*width); + u32 stride = (4*width); - int bytes = (stride*height) + sizeof(hdr); + u32 bytes = (stride*height) + sizeof(hdr); bytes = (bytes+3)&(~3); @@ -54,13 +54,13 @@ wxBitmap wxBitmapFromMemoryRGBA(const unsigned char* data, int width, int height u8 *pixelData = pdata + sizeof(hdr); - for (int y=0;y Date: Mon, 14 Jan 2013 14:20:41 -0600 Subject: This removes the Lock Thread to Core option. Please file your complaints appropriately. --- Source/Core/Core/Src/ConfigManager.cpp | 2 -- Source/Core/Core/Src/Core.cpp | 7 ++----- Source/Core/Core/Src/CoreParameter.cpp | 4 +--- Source/Core/Core/Src/CoreParameter.h | 1 - Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp | 1 - Source/Core/DolphinWX/Src/ConfigMain.cpp | 8 -------- Source/Core/DolphinWX/Src/ConfigMain.h | 2 -- 7 files changed, 3 insertions(+), 22 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 180e6c981d..3417b0eb55 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -221,7 +221,6 @@ void SConfig::SaveSettings() ini.Set("Core", "DSPThread", m_LocalCoreStartupParameter.bDSPThread); ini.Set("Core", "DSPHLE", m_LocalCoreStartupParameter.bDSPHLE); ini.Set("Core", "SkipIdle", m_LocalCoreStartupParameter.bSkipIdle); - ini.Set("Core", "LockThreads", m_LocalCoreStartupParameter.bLockThreads); ini.Set("Core", "DefaultGCM", m_LocalCoreStartupParameter.m_strDefaultGCM); ini.Set("Core", "DVDRoot", m_LocalCoreStartupParameter.m_strDVDRoot); ini.Set("Core", "Apploader", m_LocalCoreStartupParameter.m_strApploader); @@ -361,7 +360,6 @@ void SConfig::LoadSettings() ini.Get("Core", "DSPHLE", &m_LocalCoreStartupParameter.bDSPHLE, true); ini.Get("Core", "CPUThread", &m_LocalCoreStartupParameter.bCPUThread, true); ini.Get("Core", "SkipIdle", &m_LocalCoreStartupParameter.bSkipIdle, true); - ini.Get("Core", "LockThreads", &m_LocalCoreStartupParameter.bLockThreads, false); ini.Get("Core", "DefaultGCM", &m_LocalCoreStartupParameter.m_strDefaultGCM); ini.Get("Core", "DVDRoot", &m_LocalCoreStartupParameter.m_strDVDRoot); ini.Get("Core", "Apploader", &m_LocalCoreStartupParameter.m_strApploader); diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index e92b9088bc..141071d70a 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -310,8 +310,7 @@ void CpuThread() g_video_backend->Video_Prepare(); } - if (_CoreParameter.bLockThreads) - Common::SetCurrentThreadAffinity(1); // Force to first core + Common::SetCurrentThreadAffinity(1); // Force to first core #if defined(_WIN32) && defined(_M_X64) EMM::InstallExceptionHandler(); // Let's run under memory watch @@ -344,8 +343,7 @@ void FifoPlayerThread() Common::SetCurrentThreadName("FIFO-GPU thread"); } - if (_CoreParameter.bLockThreads) - Common::SetCurrentThreadAffinity(1); // Force to first core + Common::SetCurrentThreadAffinity(1); // Force to first core g_bStarted = true; @@ -371,7 +369,6 @@ void EmuThread() Common::SetCurrentThreadName("Emuthread - Starting"); - if (_CoreParameter.bLockThreads) { if (cpu_info.num_cores > 3) // Force to third, non-HT core Common::SetCurrentThreadAffinity(4); diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index dee2452cb3..b38c49ef7a 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -45,8 +45,7 @@ SCoreStartupParameter::SCoreStartupParameter() bEnableFPRF(false), bCPUThread(true), bDSPThread(false), bDSPHLE(true), bSkipIdle(true), bNTSC(false), bForceNTSCJ(false), - bHLE_BS2(true), bLockThreads(false), - bEnableCheats(false), + bHLE_BS2(true), bEnableCheats(false), bMergeBlocks(false), bRunCompareServer(false), bRunCompareClient(false), bMMU(false), bMMUBAT(false), iTLBHack(0), bVBeam(false), @@ -74,7 +73,6 @@ void SCoreStartupParameter::LoadDefaults() bRunCompareServer = false; bDSPHLE = true; bDSPThread = true; - bLockThreads = true; bEnableFPRF = false; bMMU = false; bMMUBAT = false; diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index 8aa6be83e5..8da55e7d8a 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -103,7 +103,6 @@ struct SCoreStartupParameter bool bNTSC; bool bForceNTSCJ; bool bHLE_BS2; - bool bLockThreads; bool bEnableCheats; bool bMergeBlocks; diff --git a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp index a44ff65f21..54709a9cce 100644 --- a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp +++ b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp @@ -104,7 +104,6 @@ void DSPLLE::dsp_thread(DSPLLE *dsp_lle) { Common::SetCurrentThreadName("DSP thread"); - if (SConfig::GetInstance().m_LocalCoreStartupParameter.bLockThreads) { if (cpu_info.num_cores > 3) { diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 42dc5df20b..33a639db1c 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -112,7 +112,6 @@ EVT_CHOICE(ID_FRAMELIMIT, CConfigMain::CoreSettingsChanged) EVT_CHECKBOX(ID_FRAMELIMIT_USEFPSFORLIMITING, CConfigMain::CoreSettingsChanged) EVT_RADIOBOX(ID_CPUENGINE, CConfigMain::CoreSettingsChanged) -EVT_CHECKBOX(ID_LOCKTHREADS, CConfigMain::CoreSettingsChanged) EVT_CHECKBOX(ID_NTSCJ, CConfigMain::CoreSettingsChanged) @@ -211,7 +210,6 @@ void CConfigMain::UpdateGUI() EnableCheats->Disable(); CPUEngine->Disable(); - LockThreads->Disable(); _NTSCJ->Disable(); // Disable stuff on AudioPage @@ -332,7 +330,6 @@ void CConfigMain::InitializeGUIValues() // General - Advanced CPUEngine->SetSelection(startup_params.iCPUCore); - LockThreads->SetValue(startup_params.bLockThreads); _NTSCJ->SetValue(startup_params.bForceNTSCJ); @@ -546,7 +543,6 @@ void CConfigMain::CreateGUIControls() UseFPSForLimiting = new wxCheckBox(GeneralPage, ID_FRAMELIMIT_USEFPSFORLIMITING, _("Limit by FPS"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); // Core Settings - Advanced CPUEngine = new wxRadioBox(GeneralPage, ID_CPUENGINE, _("CPU Emulator Engine"), wxDefaultPosition, wxDefaultSize, arrayStringFor_CPUEngine, 0, wxRA_SPECIFY_ROWS); - LockThreads = new wxCheckBox(GeneralPage, ID_LOCKTHREADS, _("Lock Threads to Cores"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); _NTSCJ = new wxCheckBox(GeneralPage, ID_NTSCJ, _("Force Console as NTSC-J"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); // Populate the General settings @@ -562,7 +558,6 @@ void CConfigMain::CreateGUIControls() wxStaticBoxSizer* const sbAdvanced = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, _("Advanced Settings")); sbAdvanced->Add(CPUEngine, 0, wxALL, 5); - sbAdvanced->Add(LockThreads, 0, wxALL, 5); sbAdvanced->Add(_NTSCJ, 0, wxALL, 5); wxBoxSizer* const sGeneralPage = new wxBoxSizer(wxVERTICAL); @@ -860,9 +855,6 @@ void CConfigMain::CoreSettingsChanged(wxCommandEvent& event) main_frame->g_pCodeWindow->GetMenuBar()->Check(IDM_INTERPRETER, SConfig::GetInstance().m_LocalCoreStartupParameter.iCPUCore?false:true); break; - case ID_LOCKTHREADS: - SConfig::GetInstance().m_LocalCoreStartupParameter.bLockThreads = LockThreads->IsChecked(); - break; case ID_NTSCJ: SConfig::GetInstance().m_LocalCoreStartupParameter.bForceNTSCJ = _NTSCJ->IsChecked(); break; diff --git a/Source/Core/DolphinWX/Src/ConfigMain.h b/Source/Core/DolphinWX/Src/ConfigMain.h index 0e594101df..d8a362d205 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.h +++ b/Source/Core/DolphinWX/Src/ConfigMain.h @@ -69,7 +69,6 @@ private: ID_FRAMELIMIT_USEFPSFORLIMITING, ID_CPUENGINE, - ID_LOCKTHREADS, ID_DSPTHREAD, ID_NTSCJ, @@ -143,7 +142,6 @@ private: wxCheckBox* EnableOpenCL; wxRadioBox* CPUEngine; wxCheckBox* DSPThread; - wxCheckBox* LockThreads; wxCheckBox* _NTSCJ; -- cgit v1.2.3 From 5005d528c4e4df24994af94843799870d914ac71 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Mon, 14 Jan 2013 14:43:49 -0600 Subject: This changes Linux to control Wiimotes on the interrupt channel. Which in turn allows -TR wiimotes to work in Linux. --- Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp | 55 +++++++++++----------- .../Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp | 2 +- Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h | 4 +- .../Core/Core/Src/HW/WiimoteReal/WiimoteRealBase.h | 4 +- 4 files changed, 33 insertions(+), 32 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp index f56c11e248..134c27cb22 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp @@ -34,11 +34,6 @@ #include "WiimoteReal.h" #include "Host.h" -// Identify the wiimote device by its class -#define WM_DEV_CLASS_0 0x04 -#define WM_DEV_CLASS_1 0x25 -#define WM_DEV_CLASS_2 0x00 - namespace WiimoteReal { @@ -95,9 +90,15 @@ int FindWiimotes(Wiimote** wm, int max_wiimotes) // Display discovered devices for (i = 0; (i < found_devices) && (found_wiimotes < max_wiimotes); ++i) { - if ((scan_info[i].dev_class[0] == WM_DEV_CLASS_0) && - (scan_info[i].dev_class[1] == WM_DEV_CLASS_1) && - (scan_info[i].dev_class[2] == WM_DEV_CLASS_2)) + char name[1000]; + memset(name, 0, sizeof(name)); + ERROR_LOG(WIIMOTE, "found a device..."); + if (hci_read_remote_name(device_sock, &scan_info[i].bdaddr, sizeof(name), name, 0) < 0) { + ERROR_LOG(WIIMOTE, "name request failed"); + continue; + } + ERROR_LOG(WIIMOTE, "device name %s", name); + if (IsValidBluetoothName(name)) { bool new_wiimote = true; // Determine if this wiimote has already been found. @@ -146,24 +147,24 @@ bool Wiimote::Connect() // Output channel addr.l2_psm = htobs(WM_OUTPUT_CHANNEL); - if ((out_sock = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP)) == -1 || - connect(out_sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) + if ((cmd_sock = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP)) == -1 || + connect(cmd_sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) { DEBUG_LOG(WIIMOTE, "Unable to open output socket to wiimote."); - close(out_sock); - out_sock = -1; + close(cmd_sock); + cmd_sock = -1; return false; } // Input channel addr.l2_psm = htobs(WM_INPUT_CHANNEL); - if ((in_sock = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP)) == -1 || - connect(in_sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) + if ((int_sock = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP)) == -1 || + connect(int_sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) { DEBUG_LOG(WIIMOTE, "Unable to open input socket from wiimote."); - close(in_sock); - close(out_sock); - in_sock = out_sock = -1; + close(int_sock); + close(cmd_sock); + int_sock = cmd_sock = -1; return false; } @@ -204,17 +205,17 @@ void Wiimote::Close() { Host_ConnectWiimote(index, false); - close(out_sock); - close(in_sock); + close(cmd_sock); + close(int_sock); - out_sock = -1; - in_sock = -1; + cmd_sock = -1; + int_sock = -1; } } bool Wiimote::IsOpen() const { - return out_sock != -1 && in_sock != -1; + return cmd_sock != -1 && int_sock != -1; } int Wiimote::IORead(unsigned char *buf) @@ -226,19 +227,19 @@ int Wiimote::IORead(unsigned char *buf) fd_set fds; FD_ZERO(&fds); - FD_SET(in_sock, &fds); + FD_SET(int_sock, &fds); - if (select(in_sock + 1, &fds, NULL, NULL, &tv) == -1) + if (select(int_sock + 1, &fds, NULL, NULL, &tv) == -1) { ERROR_LOG(WIIMOTE, "Unable to select wiimote %i input socket.", index + 1); return 0; } - if (!FD_ISSET(in_sock, &fds)) + if (!FD_ISSET(int_sock, &fds)) return 0; // Read the pending message into the buffer - int r = read(in_sock, buf, MAX_PAYLOAD); + int r = read(int_sock, buf, MAX_PAYLOAD); if (r == -1) { // Error reading data @@ -265,7 +266,7 @@ int Wiimote::IORead(unsigned char *buf) int Wiimote::IOWrite(unsigned char* buf, int len) { - return write(out_sock, buf, len); + return write(int_sock, buf, len); } }; // WiimoteReal diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp index 1f9285f37e..5565975ae5 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp @@ -44,7 +44,7 @@ Wiimote::Wiimote(const unsigned int _index) #ifdef __APPLE__ , inputlen(0) #elif defined(__linux__) && HAVE_BLUEZ - , out_sock(-1), in_sock(-1) + , cmd_sock(-1), int_sock(-1) #elif defined(_WIN32) , dev_handle(0), stack(MSBT_STACK_UNKNOWN) #endif diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h index 15c8044acd..f932e2bfd2 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h @@ -71,8 +71,8 @@ public: int inputlen; #elif defined(__linux__) && HAVE_BLUEZ bdaddr_t bdaddr; // Bluetooth address - int out_sock; // Output socket - int in_sock; // Input socket + int cmd_sock; // Command socket + int int_sock; // Interrupt socket void Close(); diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteRealBase.h b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteRealBase.h index 4b66eb4930..75a6d3e6a3 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteRealBase.h +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteRealBase.h @@ -34,8 +34,8 @@ // The 4 most significant bits of the first byte of an outgoing command must be // 0x50 if sending on the command channel and 0xA0 if sending on the interrupt -// channel. On Mac we use interrupt channel; on Windows/Linux, command. -#ifndef __APPLE__ +// channel. On Mac and Linux we use interrupt channel; on Windows, command. +#ifdef _WIN32 #define WM_SET_REPORT 0x50 #else #define WM_SET_REPORT 0xA0 -- cgit v1.2.3 From 8cf3ea3eeaa92ae02b39a455cd4389b4b71844ef Mon Sep 17 00:00:00 2001 From: lioncash Date: Mon, 14 Jan 2013 16:29:52 -0500 Subject: GetTextureBGRA()'s 'width' and 'height' parameters should be unsigned. --- Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.cpp | 16 ++++++++++------ Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.h | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'Source') diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.cpp index 8ee2243719..57fc57a906 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.cpp @@ -62,8 +62,8 @@ void SaveTexture(const char* filename, u32 texmap, s32 mip) TexImage0& ti0 = texUnit.texImage0[subTexmap]; - int width = ti0.width + 1; - int height = ti0.height + 1; + u32 width = ti0.width + 1; + u32 height = ti0.height + 1; u8 *data = new u8[width * height * 4]; @@ -74,19 +74,23 @@ void SaveTexture(const char* filename, u32 texmap, s32 mip) delete []data; } -void GetTextureBGRA(u8 *dst, u32 texmap, s32 mip, int width, int height) +void GetTextureBGRA(u8 *dst, u32 texmap, s32 mip, u32 width, u32 height) { u8 sample[4]; - for (int y = 0; y < height; y++) - for (int x = 0; x < width; x++) { + for (u32 y = 0; y < height; y++) + { + for (u32 x = 0; x < width; x++) + { TextureSampler::SampleMip(x << 7, y << 7, mip, false, texmap, sample); - // rgba to bgra + + // RGBA to BGRA *(dst++) = sample[2]; *(dst++) = sample[1]; *(dst++) = sample[0]; *(dst++) = sample[3]; } + } } s32 GetMaxTextureLod(u32 texmap) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.h b/Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.h index 4b2f0b86aa..efb104458d 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.h +++ b/Source/Plugins/Plugin_VideoSoftware/Src/DebugUtil.h @@ -22,7 +22,7 @@ namespace DebugUtil { void Init(); - void GetTextureBGRA(u8 *dst, u32 texmap, s32 mip, int width, int height); + void GetTextureBGRA(u8 *dst, u32 texmap, s32 mip, u32 width, u32 height); void DumpActiveTextures(); -- cgit v1.2.3 From 032013c4bcbf4fa1451ea8be7c8c28f3200ae160 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Mon, 14 Jan 2013 17:49:49 -0600 Subject: Make IsValidBluetoothName just check for "Nintendo RVL-" rather than having a bunch of hardcoded names. --- Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp | 19 ++++++------------- Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h | 2 +- 2 files changed, 7 insertions(+), 14 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp index 5565975ae5..dc4e96785b 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp @@ -16,6 +16,7 @@ // http://code.google.com/p/dolphin-emu/ #include +#include #include #include "Common.h" @@ -512,19 +513,11 @@ void StateChange(EMUSTATE_CHANGE newState) // TODO: disable/enable auto reporting, maybe } -bool IsValidBluetoothName(const char* name) { - static const char* kValidWiiRemoteBluetoothNames[] = { - "Nintendo RVL-CNT-01", - "Nintendo RVL-CNT-01-TR", - "Nintendo RVL-WBC-01", - }; - if (name == NULL) - return false; - for (size_t i = 0; i < ARRAYSIZE(kValidWiiRemoteBluetoothNames); i++) - if (strcmp(name, kValidWiiRemoteBluetoothNames[i]) == 0) - return true; - return false; +bool IsValidBluetoothName(const std::string& name) +{ + std::string const prefix("Nintendo RVL-"); + return name.size() > prefix.size() && + std::equal(prefix.begin(), prefix.end(), name.begin()); } - }; // end of namespace diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h index f932e2bfd2..9fdb305a56 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.h @@ -117,7 +117,7 @@ void StateChange(EMUSTATE_CHANGE newState); int FindWiimotes(Wiimote** wm, int max_wiimotes); -bool IsValidBluetoothName(const char* name); +bool IsValidBluetoothName(const std::string& name); }; // WiimoteReal -- cgit v1.2.3 From b8e66a48a1b0d6a7e167bdeb784b99515bccb4e9 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Mon, 14 Jan 2013 17:55:23 -0600 Subject: Fix hang on Linux Dolphin close when wiimotes are connected. --- Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp index 134c27cb22..ec838d9313 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/IONix.cpp @@ -215,7 +215,7 @@ void Wiimote::Close() bool Wiimote::IsOpen() const { - return cmd_sock != -1 && int_sock != -1; + return IsConnected() && cmd_sock != -1 && int_sock != -1; } int Wiimote::IORead(unsigned char *buf) -- cgit v1.2.3 From 6f17342b50bafc531d5005819b41dcafb3b5f545 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Mon, 14 Jan 2013 20:40:16 -0600 Subject: Improve an error message. --- Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp b/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp index 22914366b0..ea23e532e7 100644 --- a/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/WiimoteConfigDiag.cpp @@ -205,8 +205,9 @@ void WiimoteConfigDiag::PairUpRealWiimotes(wxCommandEvent&) UpdateGUI(); } else if (paired < 0) - PanicAlertT("A supported bluetooth device was not found!\n" - "(Only the Microsoft bluetooth stack is supported.)"); + PanicAlertT("A supported bluetooth device could not be found!\n" + "If you are not using Microsoft's bluetooth stack " + "you must manually pair your wiimotes and use only the \"Refresh\" button."); } #endif -- cgit v1.2.3 From 86ee5600dc9f77bfef73f72b09e59ee3823c28a3 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 15 Jan 2013 22:27:49 +1300 Subject: Fix bug: reuse after free. static should not have been used here. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp index 49684ef5af..545002f914 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp @@ -787,9 +787,10 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress) } else { - static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); - bool* wiiMoteConnected = new bool[s_Usb->m_WiiMotes.size()]; - for (unsigned int i = 0; i < s_Usb->m_WiiMotes.size(); i++) + CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); + size_t size = s_Usb->m_WiiMotes.size(); + bool* wiiMoteConnected = new bool[size]; + for (unsigned int i = 0; i < size; i++) wiiMoteConnected[i] = s_Usb->m_WiiMotes[i].IsConnected(); std::string tContentFile(m_ContentFile.c_str()); -- cgit v1.2.3 From 6d4a566bc49ba29f52d58ec1bdbc020c67537bef Mon Sep 17 00:00:00 2001 From: skidau Date: Tue, 15 Jan 2013 22:29:26 +1100 Subject: Changed SoundTouch to use float samples, allowing SSE to be used. Made the DPL2 decoder disabled by default. Re-added the audio hack used by the Accurate VBeam emulation option. --- Source/Core/AudioCommon/Src/OpenALStream.cpp | 35 +++++++++++++++++++--------- Source/Core/Core/Src/ConfigManager.cpp | 2 +- Source/Core/Core/Src/CoreParameter.cpp | 4 ++-- Source/Core/Core/Src/HW/SystemTimers.cpp | 3 ++- Source/Core/DolphinWX/Src/ConfigMain.cpp | 1 + 5 files changed, 30 insertions(+), 15 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 94112c130d..489954e351 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -176,6 +176,7 @@ void OpenALStream::SoundLoop() soundTouch.setChannels(2); soundTouch.setSampleRate(ulFrequency); + soundTouch.setTempo(1.0); soundTouch.setSetting(SETTING_USE_QUICKSEEK, 0); soundTouch.setSetting(SETTING_USE_AA_FILTER, 0); soundTouch.setSetting(SETTING_SEQUENCE_MS, 1); @@ -197,7 +198,16 @@ void OpenALStream::SoundLoop() numSamples = (numSamples > OAL_MAX_SAMPLES) ? OAL_MAX_SAMPLES : numSamples; numSamples = m_mixer->Mix(realtimeBuffer, numSamples); - soundTouch.putSamples(realtimeBuffer, numSamples); + + // Convert the samples from short to float + float dest[OAL_MAX_SAMPLES * 2 * 2 * OAL_MAX_BUFFERS]; + for (u32 i = 0; i < numSamples; ++i) + { + dest[i * 2 + 0] = (float)realtimeBuffer[i * 2 + 0] / (1 << 16); + dest[i * 2 + 1] = (float)realtimeBuffer[i * 2 + 1] / (1 << 16); + } + + soundTouch.putSamples(dest, numSamples); if (iBuffersProcessed == iBuffersFilled) { @@ -241,16 +251,8 @@ void OpenALStream::SoundLoop() #else if (surround_capable) { - // Convert the samples from short to float for the dpl2 decoder - float dest[OAL_MAX_SAMPLES * 2 * 2 * OAL_MAX_BUFFERS]; - for (u32 i = 0; i < nSamples; ++i) - { - dest[i * 2 + 0] = (float)sampleBuffer[i * 2 + 0] / (1<<16); - dest[i * 2 + 1] = (float)sampleBuffer[i * 2 + 1] / (1<<16); - } - float dpl2[OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_MAX_BUFFERS]; - dpl2decode(dest, nSamples, dpl2); + dpl2decode(sampleBuffer, nSamples, dpl2); alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_51CHN32, dpl2, nSamples * SIZE_FLOAT * SURROUND_CHANNELS, ulFrequency); ALenum err = alGetError(); @@ -268,7 +270,18 @@ void OpenALStream::SoundLoop() #endif if (!surround_capable) { - alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, sampleBuffer, nSamples * 2 * 2, ulFrequency); +#if defined(__APPLE__) + // Convert the samples from float to short + short stereo[OAL_MAX_SAMPLES * 2 * 2 * OAL_MAX_BUFFERS]; + for (u32 i = 0; i < nSamples; ++i) + { + stereo[i * 2 + 0] = (short)((float)sampleBuffer[i * 2 + 0] * (1 << 16)); + stereo[i * 2 + 1] = (short)((float)sampleBuffer[i * 2 + 1] * (1 << 16)); + } + alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, stereo, nSamples * 2 * 2, ulFrequency); +#else + alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO_FLOAT32, sampleBuffer, nSamples * 4 * 2, ulFrequency); +#endif } alSourceQueueBuffers(uiSource, 1, &uiBufferTemp[iBuffersFilled]); diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 210769c8a5..3bec0a8df3 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -369,7 +369,7 @@ void SConfig::LoadSettings() ini.Get("Core", "Apploader", &m_LocalCoreStartupParameter.m_strApploader); ini.Get("Core", "EnableCheats", &m_LocalCoreStartupParameter.bEnableCheats, false); ini.Get("Core", "SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0); - ini.Get("Core", "DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, true); + ini.Get("Core", "DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, false); ini.Get("Core", "Latency", &m_LocalCoreStartupParameter.iLatency, 14); ini.Get("Core", "MemcardA", &m_strMemoryCardA); ini.Get("Core", "MemcardB", &m_strMemoryCardB); diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index b8294ce815..d44bd136f7 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -49,7 +49,7 @@ SCoreStartupParameter::SCoreStartupParameter() bEnableCheats(false), bMergeBlocks(false), bRunCompareServer(false), bRunCompareClient(false), - bDPL2Decoder(true), iLatency(14), + bDPL2Decoder(false), iLatency(14), bMMU(false), bMMUBAT(false), iTLBHack(0), bVBeam(false), bFastDiscSpeed(false), SelectedLanguage(0), bWii(false), bDisableWiimoteSpeaker(false), @@ -85,7 +85,7 @@ void SCoreStartupParameter::LoadDefaults() bMergeBlocks = false; SelectedLanguage = 0; bWii = false; - bDPL2Decoder = true; + bDPL2Decoder = false; iLatency = 14; iPosX = 100; diff --git a/Source/Core/Core/Src/HW/SystemTimers.cpp b/Source/Core/Core/Src/HW/SystemTimers.cpp index b520c51b39..b9f9fe0107 100644 --- a/Source/Core/Core/Src/HW/SystemTimers.cpp +++ b/Source/Core/Core/Src/HW/SystemTimers.cpp @@ -160,7 +160,8 @@ void DSPCallback(u64 userdata, int cyclesLate) void AudioDMACallback(u64 userdata, int cyclesLate) { - int period = CPU_CORE_CLOCK / (AudioInterface::GetAIDSampleRate() * 4 / 32); + int fields = SConfig::GetInstance().m_LocalCoreStartupParameter.bVBeam?2:1; + int period = CPU_CORE_CLOCK / (AudioInterface::GetAIDSampleRate() * 4 / 32 * fields); DSP::UpdateAudioDMA(); // Push audio to speakers. CoreTiming::ScheduleEvent(period - cyclesLate, et_AudioDMA); } diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index ddc8025d88..687176ce0d 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -366,6 +366,7 @@ void CConfigMain::InitializeGUIValues() VolumeText->SetLabel(wxString::Format(wxT("%d %%"), ac_Config.m_Volume)); DSPThread->SetValue(startup_params.bDSPThread); DumpAudio->SetValue(ac_Config.m_DumpAudio ? true : false); + DPL2Decoder->Enable(std::string(ac_Config.sBackend) == BACKEND_OPENAL); DPL2Decoder->SetValue(startup_params.bDPL2Decoder); LatencySlider->Enable(std::string(ac_Config.sBackend) == BACKEND_OPENAL); LatencySlider->SetValue(startup_params.iLatency); -- cgit v1.2.3 From 799b032b98000f2a7ada1a11ab8a001eb0c58882 Mon Sep 17 00:00:00 2001 From: skidau Date: Tue, 15 Jan 2013 23:14:11 +1100 Subject: Readd the OpenAL option. The OpenAL backend requires OpenAL Soft to be installed: http://kcat.strangesoft.net/openal.html You may need to rename soft_oal.dll to OpenAL32.dll in the Dolphin folder. Windows users may also need to update their OpenAL drivers by downloading them from http://connect.creativelabs.com/openal/Downloads/oalinst.zip --- Source/Core/AudioCommon/Src/AudioCommon.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/AudioCommon.cpp b/Source/Core/AudioCommon/Src/AudioCommon.cpp index 5660edca0a..99ae42b93a 100644 --- a/Source/Core/AudioCommon/Src/AudioCommon.cpp +++ b/Source/Core/AudioCommon/Src/AudioCommon.cpp @@ -110,6 +110,8 @@ namespace AudioCommon backends.push_back(BACKEND_COREAUDIO); if (PulseAudio::isValid()) backends.push_back(BACKEND_PULSEAUDIO); + if (OpenALStream::isValid()) + backends.push_back(BACKEND_OPENAL); return backends; } -- cgit v1.2.3 From e75a7b4572967a60fd5130ac3409c28b79a62580 Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Tue, 15 Jan 2013 06:41:11 -0600 Subject: Fix a gcc initialization order warning. --- Source/Core/Core/Src/CoreParameter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index 35f5afa57a..75b613d229 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -47,8 +47,8 @@ SCoreStartupParameter::SCoreStartupParameter() bSkipIdle(true), bNTSC(false), bForceNTSCJ(false), bHLE_BS2(true), bEnableCheats(false), bMergeBlocks(false), - bRunCompareServer(false), bRunCompareClient(false), bDPL2Decoder(false), iLatency(14), + bRunCompareServer(false), bRunCompareClient(false), bMMU(false), bMMUBAT(false), iTLBHack(0), bVBeam(false), bFastDiscSpeed(false), SelectedLanguage(0), bWii(false), bDisableWiimoteSpeaker(false), -- cgit v1.2.3 From a9388ce2e2b7d235cc943f19e16bdccf99cb68b3 Mon Sep 17 00:00:00 2001 From: skidau Date: Wed, 16 Jan 2013 00:10:49 +1100 Subject: Added backwards compatibility with old OpenAL drivers. --- Source/Core/AudioCommon/Src/OpenALStream.cpp | 40 +++++++++++++++++++++------- 1 file changed, 30 insertions(+), 10 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 489954e351..25bece8e8d 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -184,6 +184,11 @@ void OpenALStream::SoundLoop() soundTouch.setSetting(SETTING_OVERLAP_MS, 12); bool surround_capable = Core::g_CoreStartupParameter.bDPL2Decoder; +#if defined(__APPLE__) + bool float32_capable = false; +#else + bool float32_capable = true; +#endif while (!threadData) { @@ -270,18 +275,33 @@ void OpenALStream::SoundLoop() #endif if (!surround_capable) { -#if defined(__APPLE__) - // Convert the samples from float to short - short stereo[OAL_MAX_SAMPLES * 2 * 2 * OAL_MAX_BUFFERS]; - for (u32 i = 0; i < nSamples; ++i) + if (float32_capable) { - stereo[i * 2 + 0] = (short)((float)sampleBuffer[i * 2 + 0] * (1 << 16)); - stereo[i * 2 + 1] = (short)((float)sampleBuffer[i * 2 + 1] * (1 << 16)); + alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO_FLOAT32, sampleBuffer, nSamples * 4 * 2, ulFrequency); + ALenum err = alGetError(); + if (err == AL_INVALID_ENUM) + { + float32_capable = false; + } + else if (err != 0) + { + ERROR_LOG(AUDIO, "Error occurred while buffering float32 data: %08x", err); + } + + } + + if (!float32_capable) + { + // Convert the samples from float to short + short stereo[OAL_MAX_SAMPLES * 2 * 2 * OAL_MAX_BUFFERS]; + for (u32 i = 0; i < nSamples; ++i) + { + stereo[i * 2 + 0] = (short)((float)sampleBuffer[i * 2 + 0] * (1 << 16)); + stereo[i * 2 + 1] = (short)((float)sampleBuffer[i * 2 + 1] * (1 << 16)); + } + alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, stereo, nSamples * 2 * 2, ulFrequency); + } - alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO16, stereo, nSamples * 2 * 2, ulFrequency); -#else - alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO_FLOAT32, sampleBuffer, nSamples * 4 * 2, ulFrequency); -#endif } alSourceQueueBuffers(uiSource, 1, &uiBufferTemp[iBuffersFilled]); -- cgit v1.2.3 From 7402a89e6e07ae2001e66e8a61cd7c6bf1700832 Mon Sep 17 00:00:00 2001 From: skidau Date: Wed, 16 Jan 2013 00:14:31 +1100 Subject: OSX build fix --- Source/Core/AudioCommon/Src/OpenALStream.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 25bece8e8d..cfe6a40630 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -275,6 +275,7 @@ void OpenALStream::SoundLoop() #endif if (!surround_capable) { +#if !defined(__APPLE__) if (float32_capable) { alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_STEREO_FLOAT32, sampleBuffer, nSamples * 4 * 2, ulFrequency); @@ -289,7 +290,7 @@ void OpenALStream::SoundLoop() } } - +#endif if (!float32_capable) { // Convert the samples from float to short -- cgit v1.2.3 From 866cdc5961590e3a17cf3d6f753fb96c6b66dc9e Mon Sep 17 00:00:00 2001 From: lioncash Date: Tue, 15 Jan 2013 12:00:35 -0500 Subject: Get rid of unused iterators in JitCache. --- Source/Core/Core/Src/PowerPC/JitCommon/JitCache.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/PowerPC/JitCommon/JitCache.cpp b/Source/Core/Core/Src/PowerPC/JitCommon/JitCache.cpp index 496ddebf7a..a8cc0e9b46 100644 --- a/Source/Core/Core/Src/PowerPC/JitCommon/JitCache.cpp +++ b/Source/Core/Core/Src/PowerPC/JitCommon/JitCache.cpp @@ -370,29 +370,27 @@ bool JitBlock::ContainsAddress(u32 em_address) { LinkBlockExits(i); JitBlock &b = blocks[i]; - std::map::iterator iter; pair::iterator, multimap::iterator> ppp; // equal_range(b) returns pair representing the range // of element with key b ppp = links_to.equal_range(b.originalAddress); if (ppp.first == ppp.second) return; - for (multimap::iterator iter2 = ppp.first; iter2 != ppp.second; ++iter2) { - // PanicAlert("Linking block %i to block %i", iter2->second, i); - LinkBlockExits(iter2->second); + for (multimap::iterator iter = ppp.first; iter != ppp.second; ++iter) { + // PanicAlert("Linking block %i to block %i", iter->second, i); + LinkBlockExits(iter->second); } } void JitBlockCache::UnlinkBlock(int i) { JitBlock &b = blocks[i]; - std::map::iterator iter; pair::iterator, multimap::iterator> ppp; ppp = links_to.equal_range(b.originalAddress); if (ppp.first == ppp.second) return; - for (multimap::iterator iter2 = ppp.first; iter2 != ppp.second; ++iter2) { - JitBlock &sourceBlock = blocks[iter2->second]; + for (multimap::iterator iter = ppp.first; iter != ppp.second; ++iter) { + JitBlock &sourceBlock = blocks[iter->second]; for (int e = 0; e < 2; e++) { if (sourceBlock.exitAddress[e] == b.originalAddress) @@ -458,7 +456,7 @@ bool JitBlock::ContainsAddress(u32 em_address) // !! this works correctly under assumption that any two overlapping blocks end at the same address if (destroy_block) { - std::map, u32>::iterator it1 = block_map.lower_bound(std::make_pair(pAddr, 0)), it2 = it1, it; + std::map, u32>::iterator it1 = block_map.lower_bound(std::make_pair(pAddr, 0)), it2 = it1; while (it2 != block_map.end() && it2->first.second < pAddr + length) { #ifdef JIT_UNLIMITED_ICACHE -- cgit v1.2.3 From 1cf7cbb936a47d305f5d82e75f2f6f57c8553a8a Mon Sep 17 00:00:00 2001 From: lioncash Date: Tue, 15 Jan 2013 12:47:13 -0500 Subject: Fix a clear bug in aldlist.cpp. Properly clears itself now. --- Source/Core/AudioCommon/Src/aldlist.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/aldlist.cpp b/Source/Core/AudioCommon/Src/aldlist.cpp index 69d42148ae..5e2e072f7b 100644 --- a/Source/Core/AudioCommon/Src/aldlist.cpp +++ b/Source/Core/AudioCommon/Src/aldlist.cpp @@ -48,7 +48,7 @@ ALDeviceList::ALDeviceList() const char *actualDeviceName = NULL; // DeviceInfo vector stores, for each enumerated device, it's device name, selection status, spec version #, and extension support - vDeviceInfo.empty(); + vDeviceInfo.clear(); vDeviceInfo.reserve(10); defaultDeviceIndex = 0; @@ -151,7 +151,7 @@ ALDeviceList::~ALDeviceList() } } - vDeviceInfo.empty(); + vDeviceInfo.clear(); } /* -- cgit v1.2.3 From d9aecd80b1b5b9141ad08032c05995475845ca17 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Tue, 15 Jan 2013 15:20:33 -0600 Subject: Real fix for Linux Wiimote disconnect hanging. Fixes issue 5903. --- Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp index dc4e96785b..2381793f30 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp @@ -320,7 +320,7 @@ void Wiimote::ThreadFunc() Common::SleepCurrentThread(1); #else bool read = false; - while (Write() || (read = true, Read())) + while (Write() || (read = true, IsOpen() && Read())) { if (m_audio_reports.Size() && !read) Read(); -- cgit v1.2.3 From 7d11f8cedd7c135d96880f19ecbd3ff87a60a11f Mon Sep 17 00:00:00 2001 From: lioncash Date: Tue, 15 Jan 2013 17:50:50 -0500 Subject: - Made GenRandomCode's 'size' parameter unsigned. Doesn't make sense to have the capability of being able to be negative. - Made CodesToHeader's 'numCodes' unsigned for the same reason. - Removed some type-casts from other functions. --- Source/Core/Core/Src/DSP/DSPCodeUtil.cpp | 22 +++++++++++----------- Source/Core/Core/Src/DSP/DSPCodeUtil.h | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/DSP/DSPCodeUtil.cpp b/Source/Core/Core/Src/DSP/DSPCodeUtil.cpp index ca9c01d5dc..7f2cc8e2e6 100644 --- a/Source/Core/Core/Src/DSP/DSPCodeUtil.cpp +++ b/Source/Core/Core/Src/DSP/DSPCodeUtil.cpp @@ -104,10 +104,10 @@ bool Compare(const std::vector &code1, const std::vector &code2) return code1.size() == code2.size() && code1.size() == count_equal; } -void GenRandomCode(int size, std::vector &code) +void GenRandomCode(u32 size, std::vector &code) { code.resize(size); - for (int i = 0; i < size; i++) + for (u32 i = 0; i < size; i++) { code[i] = rand() ^ (rand() << 8); } @@ -144,28 +144,28 @@ void CodeToHeader(const std::vector &code, std::string _filename, } void CodesToHeader(const std::vector *codes, const std::vector* filenames, - int numCodes, const char *name, std::string &header) + u32 numCodes, const char *name, std::string &header) { std::vector > codes_padded; char buffer[1024]; - int reserveSize = 0; - for(int i = 0; i < numCodes; i++) + u32 reserveSize = 0; + for(u32 i = 0; i < numCodes; i++) { codes_padded.push_back(codes[i]); // Pad with nops to 32byte boundary while (codes_padded.at(i).size() & 0x7f) codes_padded.at(i).push_back(0); - reserveSize += (int)codes_padded.at(i).size(); + reserveSize += (u32)codes_padded.at(i).size(); } header.clear(); header.reserve(reserveSize * 4); - sprintf(buffer, "#define NUM_UCODES %d\n\n", numCodes); + sprintf(buffer, "#define NUM_UCODES %u\n\n", numCodes); header.append(buffer); header.append("const char* UCODE_NAMES[NUM_UCODES] = {\n"); - for (int i = 0; i < numCodes; i++) + for (u32 i = 0; i < numCodes; i++) { std::string filename; if (! SplitPath(filenames->at(i), NULL, &filename, NULL)) @@ -176,7 +176,7 @@ void CodesToHeader(const std::vector *codes, const std::vector header.append("};\n\n"); header.append("const unsigned short dsp_code[NUM_UCODES][0x1000] = {\n"); - for(int i = 0; i < numCodes; i++) + for(u32 i = 0; i < numCodes; i++) { if(codes[i].size() == 0) continue; @@ -197,7 +197,7 @@ void CodesToHeader(const std::vector *codes, const std::vector void CodeToBinaryStringBE(const std::vector &code, std::string &str) { str.resize(code.size() * 2); - for (int i = 0; i < (int)code.size(); i++) + for (size_t i = 0; i < code.size(); i++) { str[i * 2 + 0] = code[i] >> 8; str[i * 2 + 1] = code[i] & 0xff; @@ -207,7 +207,7 @@ void CodeToBinaryStringBE(const std::vector &code, std::string &str) void BinaryStringBEToCode(const std::string &str, std::vector &code) { code.resize(str.size() / 2); - for (int i = 0; i < (int)code.size(); i++) + for (size_t i = 0; i < code.size(); i++) { code[i] = ((u16)(u8)str[i * 2 + 0] << 8) | ((u16)(u8)str[i * 2 + 1]); } diff --git a/Source/Core/Core/Src/DSP/DSPCodeUtil.h b/Source/Core/Core/Src/DSP/DSPCodeUtil.h index 2a2ebfb228..525e21a9fb 100644 --- a/Source/Core/Core/Src/DSP/DSPCodeUtil.h +++ b/Source/Core/Core/Src/DSP/DSPCodeUtil.h @@ -26,11 +26,11 @@ bool Assemble(const char *text, std::vector &code, bool force = false); bool Disassemble(const std::vector &code, bool line_numbers, std::string &text); bool Compare(const std::vector &code1, const std::vector &code2); -void GenRandomCode(int size, std::vector &code); +void GenRandomCode(u32 size, std::vector &code); void CodeToHeader(const std::vector &code, std::string _filename, const char *name, std::string &header); void CodesToHeader(const std::vector *codes, const std::vector *filenames, - int numCodes, const char *name, std::string &header); + u32 numCodes, const char *name, std::string &header); // Big-endian, for writing straight to file using File::WriteStringToFile. void CodeToBinaryStringBE(const std::vector &code, std::string &str); -- cgit v1.2.3 From 6612763a9a98bd7f371b13beda654c34ffd4d81d Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Tue, 15 Jan 2013 19:56:08 -0600 Subject: Change audio latency setting to a wxSpinCtrl, fixes layout problem on linux. --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 28 ++++++++++++---------------- Source/Core/DolphinWX/Src/ConfigMain.h | 3 +-- 2 files changed, 13 insertions(+), 18 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 03f3a7af11..ef907842dd 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -120,7 +120,6 @@ EVT_CHECKBOX(ID_DSPTHREAD, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_ENABLE_THROTTLE, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_DUMP_AUDIO, CConfigMain::AudioSettingsChanged) EVT_CHECKBOX(ID_DPL2DECODER, CConfigMain::AudioSettingsChanged) -EVT_SLIDER(ID_LATENCY, CConfigMain::AudioSettingsChanged) EVT_CHOICE(ID_BACKEND, CConfigMain::AudioSettingsChanged) EVT_SLIDER(ID_VOLUME, CConfigMain::AudioSettingsChanged) @@ -217,7 +216,7 @@ void CConfigMain::UpdateGUI() DSPEngine->Disable(); DSPThread->Disable(); DPL2Decoder->Disable(); - LatencySlider->Disable(); + Latency->Disable(); // Disable stuff on GamecubePage GCSystemLang->Disable(); @@ -365,9 +364,8 @@ void CConfigMain::InitializeGUIValues() DumpAudio->SetValue(ac_Config.m_DumpAudio ? true : false); DPL2Decoder->Enable(std::string(ac_Config.sBackend) == BACKEND_OPENAL); DPL2Decoder->SetValue(startup_params.bDPL2Decoder); - LatencySlider->Enable(std::string(ac_Config.sBackend) == BACKEND_OPENAL); - LatencySlider->SetValue(startup_params.iLatency); - LatencyText->SetLabel(wxString::Format(wxT("%d"), startup_params.iLatency)); + Latency->Enable(std::string(ac_Config.sBackend) == BACKEND_OPENAL); + Latency->SetValue(startup_params.iLatency); // add backends to the list AddAudioBackends(); @@ -525,7 +523,7 @@ void CConfigMain::InitializeGUITooltips() DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only. May need to rename soft_oal.dll to OpenAL32.dll to make it work.")); #endif - LatencySlider->SetToolTip(_("Sets the latency (in ms). Higher values may reduce audio crackling. OpenAL backend only.")); + Latency->SetToolTip(_("Sets the latency (in ms). Higher values may reduce audio crackling. OpenAL backend only.")); } void CConfigMain::CreateGUIControls() @@ -630,14 +628,14 @@ void CConfigMain::CreateGUIControls() wxDefaultPosition, wxDefaultSize, 0); BackendSelection = new wxChoice(AudioPage, ID_BACKEND, wxDefaultPosition, wxDefaultSize, wxArrayBackends, 0, wxDefaultValidator, wxEmptyString); - LatencySlider = new wxSlider(AudioPage, ID_LATENCY, 0, 0, 30, - wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL); - LatencyText = new wxStaticText(AudioPage, wxID_ANY, wxT(""), - wxDefaultPosition, wxDefaultSize, 0); + Latency = new wxSpinCtrl(AudioPage, ID_LATENCY, "", wxDefaultPosition, wxDefaultSize, + wxSP_ARROW_KEYS, 0, 30); + + Latency->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &CConfigMain::AudioSettingsChanged, this); if (Core::GetState() != Core::CORE_UNINITIALIZED) { - LatencySlider->Disable(); + Latency->Disable(); BackendSelection->Disable(); DPL2Decoder->Disable(); } @@ -657,8 +655,7 @@ void CConfigMain::CreateGUIControls() sBackend->Add(TEXT_BOX(AudioPage, _("Audio Backend:")), wxGBPosition(0, 0), wxDefaultSpan, wxALIGN_CENTER_VERTICAL|wxALL, 5); sBackend->Add(BackendSelection, wxGBPosition(0, 1), wxDefaultSpan, wxALL, 5); sBackend->Add(TEXT_BOX(AudioPage, _("Latency:")), wxGBPosition(1, 0), wxDefaultSpan, wxALIGN_CENTER_VERTICAL|wxALL, 5); - sBackend->Add(LatencySlider, wxGBPosition(1, 1), wxDefaultSpan, wxALL, 5); - sBackend->Add(LatencyText, wxGBPosition(1, 2), wxDefaultSpan, wxALL, 5); + sBackend->Add(Latency, wxGBPosition(1, 1), wxDefaultSpan, wxALL, 5); wxStaticBoxSizer *sbBackend = new wxStaticBoxSizer(wxHORIZONTAL, AudioPage, _("Backend Settings")); sbBackend->Add(sBackend, 0, wxEXPAND); @@ -945,15 +942,14 @@ void CConfigMain::AudioSettingsChanged(wxCommandEvent& event) case ID_BACKEND: VolumeSlider->Enable(SupportsVolumeChanges(std::string(BackendSelection->GetStringSelection().mb_str()))); - LatencySlider->Enable(std::string(BackendSelection->GetStringSelection().mb_str()) == BACKEND_OPENAL); + Latency->Enable(std::string(BackendSelection->GetStringSelection().mb_str()) == BACKEND_OPENAL); DPL2Decoder->Enable(std::string(BackendSelection->GetStringSelection().mb_str()) == BACKEND_OPENAL); ac_Config.sBackend = BackendSelection->GetStringSelection().mb_str(); ac_Config.Update(); break; case ID_LATENCY: - SConfig::GetInstance().m_LocalCoreStartupParameter.iLatency = LatencySlider->GetValue(); - LatencyText->SetLabel(wxString::Format(wxT("%d"), LatencySlider->GetValue())); + SConfig::GetInstance().m_LocalCoreStartupParameter.iLatency = Latency->GetValue(); break; default: diff --git a/Source/Core/DolphinWX/Src/ConfigMain.h b/Source/Core/DolphinWX/Src/ConfigMain.h index 6f7a5b83b8..68459d1770 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.h +++ b/Source/Core/DolphinWX/Src/ConfigMain.h @@ -159,8 +159,7 @@ private: wxCheckBox* DPL2Decoder; wxArrayString wxArrayBackends; wxChoice* BackendSelection; - wxSlider* LatencySlider; - wxStaticText* LatencyText; + wxSpinCtrl* Latency; // Interface wxCheckBox* ConfirmStop; -- cgit v1.2.3 From ddf23094c299cb061baaa7a110ecb7413130d094 Mon Sep 17 00:00:00 2001 From: lioncash Date: Tue, 15 Jan 2013 21:15:31 -0500 Subject: Fix two unsigned/signed mismatch warnings. --- Source/Core/VideoCommon/Src/BPStructs.cpp | 2 +- Source/Core/VideoCommon/Src/LightingShaderGen.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/BPStructs.cpp b/Source/Core/VideoCommon/Src/BPStructs.cpp index c975b12240..9ba2afbbd1 100644 --- a/Source/Core/VideoCommon/Src/BPStructs.cpp +++ b/Source/Core/VideoCommon/Src/BPStructs.cpp @@ -517,7 +517,7 @@ void BPWritten(const BPCmd& bp) // AR and GB tiles are stored in separate TMEM banks => can't use a single memcpy for everything u32 tmem_addr_odd = tmem_cfg.preload_tmem_odd * TMEM_LINE_SIZE; - for (int i = 0; i < tmem_cfg.preload_tile_info.count; ++i) + for (u32 i = 0; i < tmem_cfg.preload_tile_info.count; ++i) { if (tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE || tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE) diff --git a/Source/Core/VideoCommon/Src/LightingShaderGen.cpp b/Source/Core/VideoCommon/Src/LightingShaderGen.cpp index a506acadfc..f32e5dfeee 100644 --- a/Source/Core/VideoCommon/Src/LightingShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/LightingShaderGen.cpp @@ -23,7 +23,7 @@ int GetLightingShaderId(u32* out) { - for (int i = 0; i < xfregs.numChan.numColorChans; ++i) + for (u32 i = 0; i < xfregs.numChan.numColorChans; ++i) { out[i] = xfregs.color[i].enablelighting ? (u32)xfregs.color[i].hex : -- cgit v1.2.3 From 87431666639c7036ea0f5b0d499df639cefb3d51 Mon Sep 17 00:00:00 2001 From: lioncash Date: Wed, 16 Jan 2013 09:42:51 -0500 Subject: Made several variables/parameters unsigned in the DX9, DX11 and OGL plugins. They make more sense like this (given their names). This also gets rid of some more typecasts in some cases. --- .../Core/VideoCommon/Src/FramebufferManagerBase.h | 2 +- Source/Core/VideoCommon/Src/RenderBase.cpp | 22 ++++++------- Source/Core/VideoCommon/Src/RenderBase.h | 24 +++++++------- .../Plugin_VideoDX11/Src/FramebufferManager.cpp | 2 +- .../Plugin_VideoDX11/Src/FramebufferManager.h | 2 +- Source/Plugins/Plugin_VideoDX11/Src/Render.cpp | 27 ++++++--------- Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp | 29 ++++++++++------- Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h | 6 ++-- Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp | 16 ++++----- Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h | 16 ++++----- .../Plugin_VideoDX9/Src/FramebufferManager.cpp | 6 ++-- .../Plugin_VideoDX9/Src/FramebufferManager.h | 2 +- Source/Plugins/Plugin_VideoDX9/Src/Render.cpp | 38 ++++++++++------------ .../Plugin_VideoOGL/Src/FramebufferManager.cpp | 2 +- .../Plugin_VideoOGL/Src/FramebufferManager.h | 2 +- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 6 ++-- 16 files changed, 98 insertions(+), 104 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/FramebufferManagerBase.h b/Source/Core/VideoCommon/Src/FramebufferManagerBase.h index e529bb1a39..902e781a70 100644 --- a/Source/Core/VideoCommon/Src/FramebufferManagerBase.h +++ b/Source/Core/VideoCommon/Src/FramebufferManagerBase.h @@ -17,7 +17,7 @@ struct XFBSourceBase // TODO: only DX9 uses the width/height params virtual void Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, int width, int height) const = 0; + const MathUtil::Rectangle &drawrc, u32 width, u32 height) const = 0; virtual void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight) = 0; diff --git a/Source/Core/VideoCommon/Src/RenderBase.cpp b/Source/Core/VideoCommon/Src/RenderBase.cpp index 8e1d012fa2..1ea7afbc1e 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.cpp +++ b/Source/Core/VideoCommon/Src/RenderBase.cpp @@ -60,12 +60,12 @@ std::string Renderer::s_sScreenshotName; volatile bool Renderer::s_bScreenshot; // The framebuffer size -int Renderer::s_target_width; -int Renderer::s_target_height; +unsigned int Renderer::s_target_width; +unsigned int Renderer::s_target_height; // TODO: Add functionality to reinit all the render targets when the window is resized. -int Renderer::s_backbuffer_width; -int Renderer::s_backbuffer_height; +unsigned int Renderer::s_backbuffer_width; +unsigned int Renderer::s_backbuffer_height; TargetRectangle Renderer::target_rc; @@ -163,7 +163,7 @@ int Renderer::EFBToScaledY(int y) }; } -void Renderer::CalculateTargetScale(int x, int y, int &scaledX, int &scaledY) +void Renderer::CalculateTargetScale(unsigned int x, unsigned int y, unsigned int &scaledX, unsigned int &scaledY) { if (g_ActiveConfig.iEFBScale == 0 || g_ActiveConfig.iEFBScale == 1) { @@ -172,15 +172,15 @@ void Renderer::CalculateTargetScale(int x, int y, int &scaledX, int &scaledY) } else { - scaledX = x * (int)efb_scale_numeratorX / (int)efb_scale_denominatorX; - scaledY = y * (int)efb_scale_numeratorY / (int)efb_scale_denominatorY; + scaledX = x * (efb_scale_numeratorX / efb_scale_denominatorX); + scaledY = y * (efb_scale_numeratorY / efb_scale_denominatorY); } } // return true if target size changed -bool Renderer::CalculateTargetSize(unsigned int framebuffer_width, unsigned int framebuffer_height, int multiplier) +bool Renderer::CalculateTargetSize(unsigned int framebuffer_width, unsigned int framebuffer_height, unsigned int multiplier) { - int newEFBWidth, newEFBHeight; + u32 newEFBWidth, newEFBHeight; // TODO: Ugly. Clean up switch (s_LastEFBScale) @@ -374,7 +374,7 @@ void Renderer::DrawDebugText() // TODO: remove extern bool g_aspect_wide; -void Renderer::UpdateDrawRectangle(int backbuffer_width, int backbuffer_height) +void Renderer::UpdateDrawRectangle(u32 backbuffer_width, u32 backbuffer_height) { float FloatGLWidth = (float)backbuffer_width; float FloatGLHeight = (float)backbuffer_height; @@ -492,7 +492,7 @@ void Renderer::UpdateDrawRectangle(int backbuffer_width, int backbuffer_height) target_rc.bottom = YOffset + iHeight; } -void Renderer::SetWindowSize(int width, int height) +void Renderer::SetWindowSize(u32 width, u32 height) { if (width < 1) width = 1; diff --git a/Source/Core/VideoCommon/Src/RenderBase.h b/Source/Core/VideoCommon/Src/RenderBase.h index 5376577cbd..38cab83562 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.h +++ b/Source/Core/VideoCommon/Src/RenderBase.h @@ -67,14 +67,14 @@ public: virtual void RestoreState() = 0; // Ideal internal resolution - determined by display resolution (automatic scaling) and/or a multiple of the native EFB resolution - static int GetTargetWidth() { return s_target_width; } - static int GetTargetHeight() { return s_target_height; } + static u32 GetTargetWidth() { return s_target_width; } + static u32 GetTargetHeight() { return s_target_height; } // Display resolution - static int GetBackbufferWidth() { return s_backbuffer_width; } - static int GetBackbufferHeight() { return s_backbuffer_height; } + static u32 GetBackbufferWidth() { return s_backbuffer_width; } + static u32 GetBackbufferHeight() { return s_backbuffer_height; } - static void SetWindowSize(int width, int height); + static void SetWindowSize(u32 width, u32 height); // EFB coordinate conversion functions @@ -82,7 +82,7 @@ public: virtual TargetRectangle ConvertEFBRectangle(const EFBRectangle& rc) = 0; static const TargetRectangle& GetTargetRectangle() { return target_rc; } - static void UpdateDrawRectangle(int backbuffer_width, int backbuffer_height); + static void UpdateDrawRectangle(u32 backbuffer_width, u32 backbuffer_height); // Use this to upscale native EFB coordinates to IDEAL internal resolution @@ -132,8 +132,8 @@ public: protected: - static void CalculateTargetScale(int x, int y, int &scaledX, int &scaledY); - static bool CalculateTargetSize(unsigned int framebuffer_width, unsigned int framebuffer_height, int multiplier = 1); + static void CalculateTargetScale(unsigned int x, unsigned int y, unsigned int &scaledX, unsigned int &scaledY); + static bool CalculateTargetSize(unsigned int framebuffer_width, unsigned int framebuffer_height, unsigned int multiplier = 1); static void CheckFifoRecording(); static void RecordVideoMemory(); @@ -151,12 +151,12 @@ protected: bool bLastFrameDumped; // The framebuffer size - static int s_target_width; - static int s_target_height; + static u32 s_target_width; + static u32 s_target_height; // TODO: Add functionality to reinit all the render targets when the window is resized. - static int s_backbuffer_width; - static int s_backbuffer_height; + static u32 s_backbuffer_width; + static u32 s_backbuffer_height; static TargetRectangle target_rc; diff --git a/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.cpp index cb94884eb7..6d9c0ff232 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.cpp @@ -193,7 +193,7 @@ void FramebufferManager::GetTargetSize(unsigned int *width, unsigned int *height } void XFBSource::Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, int width, int height) const + const MathUtil::Rectangle &drawrc, u32 width, u32 height) const { D3D::drawShadedTexSubQuad(tex->GetSRV(), &sourcerc, texWidth, texHeight, &drawrc, PixelShaderCache::GetColorCopyProgram(false), diff --git a/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.h b/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.h index 83db4370db..30b99ce0f2 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.h +++ b/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.h @@ -64,7 +64,7 @@ struct XFBSource : public XFBSourceBase ~XFBSource() { tex->Release(); } void Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, int width, int height) const; + const MathUtil::Rectangle &drawrc, u32 width, u32 height) const; void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight); void CopyEFB(float Gamma); diff --git a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp index 44eaaf5dcf..1355ac2990 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp @@ -691,18 +691,14 @@ void Renderer::UpdateViewport(Matrix44& vpCorrection) } // In D3D, the viewport rectangle must fit within the render target. - int X = intendedX; - if (X < 0) - X = 0; + u32 X = intendedX; + u32 Y = intendedY; + u32 Wd = intendedWd; + u32 Ht = intendedHt; - int Y = intendedY; - if (Y < 0) - Y = 0; - - int Wd = intendedWd; if (X + Wd > GetTargetWidth()) Wd = GetTargetWidth() - X; - int Ht = intendedHt; + if (Y + Ht > GetTargetHeight()) Ht = GetTargetHeight() - Y; @@ -928,20 +924,17 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons // Prepare to copy the XFBs to our backbuffer UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - int X = GetTargetRectangle().left; - int Y = GetTargetRectangle().top; - int Width = GetTargetRectangle().right - GetTargetRectangle().left; - int Height = GetTargetRectangle().bottom - GetTargetRectangle().top; + u32 X = GetTargetRectangle().left; + u32 Y = GetTargetRectangle().top; + u32 Width = GetTargetRectangle().right - GetTargetRectangle().left; + u32 Height = GetTargetRectangle().bottom - GetTargetRectangle().top; // TODO: Redundant checks... - if (X < 0) X = 0; - if (Y < 0) Y = 0; if (X > s_backbuffer_width) X = s_backbuffer_width; if (Y > s_backbuffer_height) Y = s_backbuffer_height; - if (Width < 0) Width = 0; - if (Height < 0) Height = 0; if (Width > (s_backbuffer_width - X)) Width = s_backbuffer_width - X; if (Height > (s_backbuffer_height - Y)) Height = s_backbuffer_height - Y; + D3D11_VIEWPORT vp = CD3D11_VIEWPORT((float)X, (float)Y, (float)Width, (float)Height); D3D::context->RSSetViewports(1, &vp); D3D::context->OMSetRenderTargets(1, &D3D::GetBackBuffer()->GetRTV(), NULL); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp index ff3f68a6cd..7b33844f92 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp @@ -49,9 +49,9 @@ LPDIRECT3DSURFACE9 back_buffer_z; D3DCAPS9 caps; HWND hWnd; -static int multisample; -static int resolution; -static int xres, yres; +static unsigned int multisample; +static unsigned int resolution; +static unsigned int xres, yres; static bool auto_depth_stencil = false; #define VENDOR_NVIDIA 4318 @@ -480,24 +480,25 @@ const D3DCAPS9 &GetCaps() } // returns true if size was changed -bool FixTextureSize(int& width, int& height) +bool FixTextureSize(u32& width, u32& height) { - int oldw = width, oldh = height; + u32 oldw = width; + u32 oldh = height; // conditional nonpow2 support should work fine for us if ((caps.TextureCaps & D3DPTEXTURECAPS_POW2) && !(caps.TextureCaps & D3DPTEXTURECAPS_NONPOW2CONDITIONAL)) { // all texture dimensions need to be powers of two - width = (int)MakePow2((u32)width); - height = (int)MakePow2((u32)height); + width = MakePow2(width); + height = MakePow2(height); } if (caps.TextureCaps & D3DPTEXTURECAPS_SQUAREONLY) { width = height = max(width, height); } - width = min(width, (int)caps.MaxTextureWidth); - height = min(height, (int)caps.MaxTextureHeight); + width = min(width, (u32)caps.MaxTextureWidth); + height = min(height, (u32)caps.MaxTextureHeight); return (width != oldw) || (height != oldh); } @@ -515,18 +516,22 @@ bool CheckDepthStencilSupport(D3DFORMAT target_format, D3DFORMAT depth_format) D3DFORMAT GetSupportedDepthTextureFormat() { - for (int i = 0; i < sizeof(DepthFormats)/sizeof(D3DFORMAT); ++i) + for (size_t i = 0; i < sizeof(DepthFormats)/sizeof(D3DFORMAT); ++i) + { if (D3D::CheckTextureSupport(D3DUSAGE_DEPTHSTENCIL, DepthFormats[i])) return DepthFormats[i]; + } return D3DFMT_UNKNOWN; } D3DFORMAT GetSupportedDepthSurfaceFormat(D3DFORMAT target_format) { - for (int i = 0; i < sizeof(DepthFormats)/sizeof(D3DFORMAT); ++i) + for (size_t i = 0; i < sizeof(DepthFormats)/sizeof(D3DFORMAT); ++i) + { if (D3D::CheckDepthStencilSupport(target_format, DepthFormats[i])) return DepthFormats[i]; + } return D3DFMT_UNKNOWN; } @@ -567,7 +572,7 @@ void ShowD3DError(HRESULT err) PanicAlert("Driver Internal Error"); break; case D3DERR_OUTOFVIDEOMEMORY: - PanicAlert("Out of vid mem"); + PanicAlert("Out of video memory"); break; default: // MessageBox(0,_T("Other error or success"),_T("ERROR"),0); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h index d1e7eeaa91..bd55c87819 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h +++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h @@ -75,7 +75,7 @@ const char *VertexShaderVersionString(); void ShowD3DError(HRESULT err); // returns true if size was changed -bool FixTextureSize(int& width, int& height); +bool FixTextureSize(u32& width, u32& height); // returns true if format is supported bool CheckTextureSupport(DWORD usage, D3DFORMAT tex_format); @@ -115,8 +115,8 @@ void EnableAlphaToCoverage(); struct Resolution { char name[32]; - int xres; - int yres; + unsigned int xres; + unsigned int yres; std::set bitdepths; std::set refreshes; }; diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp b/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp index 9510ad444c..a8343d7987 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp @@ -365,10 +365,10 @@ int CD3DFont::DrawTextScaled(float x, float y, float fXScale, float fYScale, flo */ void drawShadedTexQuad(IDirect3DTexture9 *texture, const RECT *rSource, - int SourceWidth, - int SourceHeight, - int DestWidth, - int DestHeight, + u32 SourceWidth, + u32 SourceHeight, + u32 DestWidth, + u32 DestHeight, IDirect3DPixelShader9 *PShader, IDirect3DVertexShader9 *Vshader, float Gamma) @@ -399,11 +399,11 @@ void drawShadedTexQuad(IDirect3DTexture9 *texture, void drawShadedTexSubQuad(IDirect3DTexture9 *texture, const MathUtil::Rectangle *rSource, - int SourceWidth, - int SourceHeight, + u32 SourceWidth, + u32 SourceHeight, const MathUtil::Rectangle *rDest, - int DestWidth, - int DestHeight, + u32 DestWidth, + u32 DestHeight, IDirect3DPixelShader9 *PShader, IDirect3DVertexShader9 *Vshader, float Gamma) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h b/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h index 882f112ece..217ddf069b 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h +++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h @@ -65,20 +65,20 @@ namespace D3D void quad2d(float x1, float y1, float x2, float y2, u32 color, float u1=0, float v1=0, float u2=1, float v2=1); void drawShadedTexQuad(IDirect3DTexture9 *texture, const RECT *rSource, - int SourceWidth, - int SourceHeight, - int DestWidth, - int DestHeight, + u32 SourceWidth, + u32 SourceHeight, + u32 DestWidth, + u32 DestHeight, IDirect3DPixelShader9 *PShader, IDirect3DVertexShader9 *Vshader, float Gamma = 1.0f); void drawShadedTexSubQuad(IDirect3DTexture9 *texture, const MathUtil::Rectangle *rSource, - int SourceWidth, - int SourceHeight, + u32 SourceWidth, + u32 SourceHeight, const MathUtil::Rectangle *rDest, - int DestWidth, - int DestHeight, + u32 DestWidth, + u32 DestHeight, IDirect3DPixelShader9 *PShader, IDirect3DVertexShader9 *Vshader, float Gamma = 1.0f); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.cpp index 1903bce989..f1d1fa3133 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.cpp @@ -44,8 +44,8 @@ FramebufferManager::Efb FramebufferManager::s_efb; FramebufferManager::FramebufferManager() { bool depth_textures_supported = true; - int target_width = Renderer::GetTargetWidth(); - int target_height = Renderer::GetTargetHeight(); + u32 target_width = Renderer::GetTargetWidth(); + u32 target_height = Renderer::GetTargetHeight(); s_efb.color_surface_Format = D3DFMT_A8R8G8B8; // EFB color texture - primary render target @@ -161,7 +161,7 @@ void FramebufferManager::GetTargetSize(unsigned int *width, unsigned int *height } void XFBSource::Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, int width, int height) const + const MathUtil::Rectangle &drawrc, u32 width, u32 height) const { D3D::drawShadedTexSubQuad(texture, &sourcerc, texWidth, texHeight, &drawrc, width , height, PixelShaderCache::GetColorCopyProgram(0), VertexShaderCache::GetSimpleVertexShader(0)); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.h b/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.h index 5b5993a12b..dad5eda513 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.h +++ b/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.h @@ -58,7 +58,7 @@ struct XFBSource : public XFBSourceBase ~XFBSource() { texture->Release(); } void Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, int width, int height) const; + const MathUtil::Rectangle &drawrc, u32 width, u32 height) const; void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight); void CopyEFB(float Gamma); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp index f750313642..8bd5cda969 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp @@ -288,10 +288,10 @@ Renderer::Renderer() UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); s_LastAA = g_ActiveConfig.iMultisampleMode; - int SupersampleCoeficient = (s_LastAA % 3) + 1; + u32 SupersampleCoefficient = (s_LastAA % 3) + 1; s_LastEFBScale = g_ActiveConfig.iEFBScale; - CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); + CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoefficient); // Make sure to use valid texture sizes D3D::FixTextureSize(s_target_width, s_target_height); @@ -305,7 +305,7 @@ Renderer::Renderer() SetupDeviceObjects(); - for (int stage = 0; stage < 8; stage++) + for (u32 stage = 0; stage < 8; stage++) D3D::SetSamplerState(stage, D3DSAMP_MAXANISOTROPY, 1 << g_ActiveConfig.iMaxAnisotropy); D3DVIEWPORT9 vp; @@ -468,8 +468,10 @@ u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) // if depth textures aren't supported by the hardware, just return if (type == PEEK_Z) + { if (FramebufferManager::GetEFBDepthTexture() == NULL) return 0; + } // We're using three surfaces here: // - pEFBSurf: EFB Surface. Source surface when peeking, destination surface when poking. @@ -693,16 +695,14 @@ void Renderer::UpdateViewport(Matrix44& vpCorrection) } // In D3D, the viewport rectangle must fit within the render target. - int X = intendedX; - if (X < 0) - X = 0; - int Y = intendedY; - if (Y < 0) - Y = 0; - int Wd = intendedWd; + u32 X = intendedX; + u32 Y = intendedY; + u32 Wd = intendedWd; + u32 Ht = intendedHt; + if (X + Wd > GetTargetWidth()) Wd = GetTargetWidth() - X; - int Ht = intendedHt; + if (Y + Ht > GetTargetHeight()) Ht = GetTargetHeight() - Y; @@ -907,18 +907,14 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); } - int X = GetTargetRectangle().left; - int Y = GetTargetRectangle().top; - int Width = GetTargetRectangle().right - GetTargetRectangle().left; - int Height = GetTargetRectangle().bottom - GetTargetRectangle().top; + u32 X = GetTargetRectangle().left; + u32 Y = GetTargetRectangle().top; + u32 Width = (GetTargetRectangle().right - GetTargetRectangle().left); + u32 Height = (GetTargetRectangle().bottom - GetTargetRectangle().top); // Sanity check - if (X < 0) X = 0; - if (Y < 0) Y = 0; if (X > s_backbuffer_width) X = s_backbuffer_width; if (Y > s_backbuffer_height) Y = s_backbuffer_height; - if (Width < 0) Width = 0; - if (Height < 0) Height = 0; if (Width > (s_backbuffer_width - X)) Width = s_backbuffer_width - X; if (Height > (s_backbuffer_height - Y)) Height = s_backbuffer_height - Y; @@ -1153,10 +1149,10 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - int SupersampleCoeficient = (s_LastAA % 3) + 1; + u32 SupersampleCoefficient = (s_LastAA % 3) + 1; s_LastEFBScale = g_ActiveConfig.iEFBScale; - CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); + CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoefficient); D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp index 0e37c3adb6..08c1ecc64d 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp @@ -299,7 +299,7 @@ GLuint FramebufferManager::ResolveAndGetDepthTarget(const EFBRectangle &source_r } void XFBSource::Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, int width, int height) const + const MathUtil::Rectangle &drawrc, u32 width, u32 height) const { // Texture map xfbSource->texture onto the main buffer diff --git a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.h b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.h index ffe3399705..d077b2f2ac 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.h @@ -63,7 +63,7 @@ struct XFBSource : public XFBSourceBase void CopyEFB(float Gamma); void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight); void Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, int width, int height) const; + const MathUtil::Rectangle &drawrc, u32 width, u32 height) const; const GLuint texture; }; diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index e3c35a6511..3f62db8787 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -323,8 +323,8 @@ Renderer::Renderer() return; // TODO: fail // Decide frambuffer size - s_backbuffer_width = (int)GLInterface->GetBackBufferWidth(); - s_backbuffer_height = (int)GLInterface->GetBackBufferHeight(); + s_backbuffer_width = GLInterface->GetBackBufferWidth(); + s_backbuffer_height = GLInterface->GetBackBufferHeight(); // Handle VSync on/off #ifdef __APPLE__ @@ -1047,7 +1047,7 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons // Textured triangles are necessary because of post-processing shaders // Disable all other stages - for (int i = 1; i < 8; ++i) + for (unsigned int i = 1; i < 8; ++i) OGL::TextureCache::DisableStage(i); // Update GLViewPort -- cgit v1.2.3 From 0ef3bd9c778a786ec439950f65c863d64ccf98b6 Mon Sep 17 00:00:00 2001 From: lioncash Date: Wed, 16 Jan 2013 15:46:11 -0500 Subject: Revert "Made several variables/parameters unsigned in the DX9, DX11 and OGL plugins. They make more sense like this (given their names)." Turns out I was wrong in my previous commit. My bad. This reverts commit 87431666639c7036ea0f5b0d499df639cefb3d51. --- .../Core/VideoCommon/Src/FramebufferManagerBase.h | 2 +- Source/Core/VideoCommon/Src/RenderBase.cpp | 22 ++++++------- Source/Core/VideoCommon/Src/RenderBase.h | 24 +++++++------- .../Plugin_VideoDX11/Src/FramebufferManager.cpp | 2 +- .../Plugin_VideoDX11/Src/FramebufferManager.h | 2 +- Source/Plugins/Plugin_VideoDX11/Src/Render.cpp | 27 +++++++++------ Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp | 29 +++++++---------- Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h | 6 ++-- Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp | 16 ++++----- Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h | 16 ++++----- .../Plugin_VideoDX9/Src/FramebufferManager.cpp | 6 ++-- .../Plugin_VideoDX9/Src/FramebufferManager.h | 2 +- Source/Plugins/Plugin_VideoDX9/Src/Render.cpp | 38 ++++++++++++---------- .../Plugin_VideoOGL/Src/FramebufferManager.cpp | 2 +- .../Plugin_VideoOGL/Src/FramebufferManager.h | 2 +- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 6 ++-- 16 files changed, 104 insertions(+), 98 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/FramebufferManagerBase.h b/Source/Core/VideoCommon/Src/FramebufferManagerBase.h index 902e781a70..e529bb1a39 100644 --- a/Source/Core/VideoCommon/Src/FramebufferManagerBase.h +++ b/Source/Core/VideoCommon/Src/FramebufferManagerBase.h @@ -17,7 +17,7 @@ struct XFBSourceBase // TODO: only DX9 uses the width/height params virtual void Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, u32 width, u32 height) const = 0; + const MathUtil::Rectangle &drawrc, int width, int height) const = 0; virtual void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight) = 0; diff --git a/Source/Core/VideoCommon/Src/RenderBase.cpp b/Source/Core/VideoCommon/Src/RenderBase.cpp index 1ea7afbc1e..8e1d012fa2 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.cpp +++ b/Source/Core/VideoCommon/Src/RenderBase.cpp @@ -60,12 +60,12 @@ std::string Renderer::s_sScreenshotName; volatile bool Renderer::s_bScreenshot; // The framebuffer size -unsigned int Renderer::s_target_width; -unsigned int Renderer::s_target_height; +int Renderer::s_target_width; +int Renderer::s_target_height; // TODO: Add functionality to reinit all the render targets when the window is resized. -unsigned int Renderer::s_backbuffer_width; -unsigned int Renderer::s_backbuffer_height; +int Renderer::s_backbuffer_width; +int Renderer::s_backbuffer_height; TargetRectangle Renderer::target_rc; @@ -163,7 +163,7 @@ int Renderer::EFBToScaledY(int y) }; } -void Renderer::CalculateTargetScale(unsigned int x, unsigned int y, unsigned int &scaledX, unsigned int &scaledY) +void Renderer::CalculateTargetScale(int x, int y, int &scaledX, int &scaledY) { if (g_ActiveConfig.iEFBScale == 0 || g_ActiveConfig.iEFBScale == 1) { @@ -172,15 +172,15 @@ void Renderer::CalculateTargetScale(unsigned int x, unsigned int y, unsigned int } else { - scaledX = x * (efb_scale_numeratorX / efb_scale_denominatorX); - scaledY = y * (efb_scale_numeratorY / efb_scale_denominatorY); + scaledX = x * (int)efb_scale_numeratorX / (int)efb_scale_denominatorX; + scaledY = y * (int)efb_scale_numeratorY / (int)efb_scale_denominatorY; } } // return true if target size changed -bool Renderer::CalculateTargetSize(unsigned int framebuffer_width, unsigned int framebuffer_height, unsigned int multiplier) +bool Renderer::CalculateTargetSize(unsigned int framebuffer_width, unsigned int framebuffer_height, int multiplier) { - u32 newEFBWidth, newEFBHeight; + int newEFBWidth, newEFBHeight; // TODO: Ugly. Clean up switch (s_LastEFBScale) @@ -374,7 +374,7 @@ void Renderer::DrawDebugText() // TODO: remove extern bool g_aspect_wide; -void Renderer::UpdateDrawRectangle(u32 backbuffer_width, u32 backbuffer_height) +void Renderer::UpdateDrawRectangle(int backbuffer_width, int backbuffer_height) { float FloatGLWidth = (float)backbuffer_width; float FloatGLHeight = (float)backbuffer_height; @@ -492,7 +492,7 @@ void Renderer::UpdateDrawRectangle(u32 backbuffer_width, u32 backbuffer_height) target_rc.bottom = YOffset + iHeight; } -void Renderer::SetWindowSize(u32 width, u32 height) +void Renderer::SetWindowSize(int width, int height) { if (width < 1) width = 1; diff --git a/Source/Core/VideoCommon/Src/RenderBase.h b/Source/Core/VideoCommon/Src/RenderBase.h index 38cab83562..5376577cbd 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.h +++ b/Source/Core/VideoCommon/Src/RenderBase.h @@ -67,14 +67,14 @@ public: virtual void RestoreState() = 0; // Ideal internal resolution - determined by display resolution (automatic scaling) and/or a multiple of the native EFB resolution - static u32 GetTargetWidth() { return s_target_width; } - static u32 GetTargetHeight() { return s_target_height; } + static int GetTargetWidth() { return s_target_width; } + static int GetTargetHeight() { return s_target_height; } // Display resolution - static u32 GetBackbufferWidth() { return s_backbuffer_width; } - static u32 GetBackbufferHeight() { return s_backbuffer_height; } + static int GetBackbufferWidth() { return s_backbuffer_width; } + static int GetBackbufferHeight() { return s_backbuffer_height; } - static void SetWindowSize(u32 width, u32 height); + static void SetWindowSize(int width, int height); // EFB coordinate conversion functions @@ -82,7 +82,7 @@ public: virtual TargetRectangle ConvertEFBRectangle(const EFBRectangle& rc) = 0; static const TargetRectangle& GetTargetRectangle() { return target_rc; } - static void UpdateDrawRectangle(u32 backbuffer_width, u32 backbuffer_height); + static void UpdateDrawRectangle(int backbuffer_width, int backbuffer_height); // Use this to upscale native EFB coordinates to IDEAL internal resolution @@ -132,8 +132,8 @@ public: protected: - static void CalculateTargetScale(unsigned int x, unsigned int y, unsigned int &scaledX, unsigned int &scaledY); - static bool CalculateTargetSize(unsigned int framebuffer_width, unsigned int framebuffer_height, unsigned int multiplier = 1); + static void CalculateTargetScale(int x, int y, int &scaledX, int &scaledY); + static bool CalculateTargetSize(unsigned int framebuffer_width, unsigned int framebuffer_height, int multiplier = 1); static void CheckFifoRecording(); static void RecordVideoMemory(); @@ -151,12 +151,12 @@ protected: bool bLastFrameDumped; // The framebuffer size - static u32 s_target_width; - static u32 s_target_height; + static int s_target_width; + static int s_target_height; // TODO: Add functionality to reinit all the render targets when the window is resized. - static u32 s_backbuffer_width; - static u32 s_backbuffer_height; + static int s_backbuffer_width; + static int s_backbuffer_height; static TargetRectangle target_rc; diff --git a/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.cpp index 6d9c0ff232..cb94884eb7 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.cpp @@ -193,7 +193,7 @@ void FramebufferManager::GetTargetSize(unsigned int *width, unsigned int *height } void XFBSource::Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, u32 width, u32 height) const + const MathUtil::Rectangle &drawrc, int width, int height) const { D3D::drawShadedTexSubQuad(tex->GetSRV(), &sourcerc, texWidth, texHeight, &drawrc, PixelShaderCache::GetColorCopyProgram(false), diff --git a/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.h b/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.h index 30b99ce0f2..83db4370db 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.h +++ b/Source/Plugins/Plugin_VideoDX11/Src/FramebufferManager.h @@ -64,7 +64,7 @@ struct XFBSource : public XFBSourceBase ~XFBSource() { tex->Release(); } void Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, u32 width, u32 height) const; + const MathUtil::Rectangle &drawrc, int width, int height) const; void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight); void CopyEFB(float Gamma); diff --git a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp index 1355ac2990..44eaaf5dcf 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp @@ -691,14 +691,18 @@ void Renderer::UpdateViewport(Matrix44& vpCorrection) } // In D3D, the viewport rectangle must fit within the render target. - u32 X = intendedX; - u32 Y = intendedY; - u32 Wd = intendedWd; - u32 Ht = intendedHt; + int X = intendedX; + if (X < 0) + X = 0; + int Y = intendedY; + if (Y < 0) + Y = 0; + + int Wd = intendedWd; if (X + Wd > GetTargetWidth()) Wd = GetTargetWidth() - X; - + int Ht = intendedHt; if (Y + Ht > GetTargetHeight()) Ht = GetTargetHeight() - Y; @@ -924,17 +928,20 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons // Prepare to copy the XFBs to our backbuffer UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - u32 X = GetTargetRectangle().left; - u32 Y = GetTargetRectangle().top; - u32 Width = GetTargetRectangle().right - GetTargetRectangle().left; - u32 Height = GetTargetRectangle().bottom - GetTargetRectangle().top; + int X = GetTargetRectangle().left; + int Y = GetTargetRectangle().top; + int Width = GetTargetRectangle().right - GetTargetRectangle().left; + int Height = GetTargetRectangle().bottom - GetTargetRectangle().top; // TODO: Redundant checks... + if (X < 0) X = 0; + if (Y < 0) Y = 0; if (X > s_backbuffer_width) X = s_backbuffer_width; if (Y > s_backbuffer_height) Y = s_backbuffer_height; + if (Width < 0) Width = 0; + if (Height < 0) Height = 0; if (Width > (s_backbuffer_width - X)) Width = s_backbuffer_width - X; if (Height > (s_backbuffer_height - Y)) Height = s_backbuffer_height - Y; - D3D11_VIEWPORT vp = CD3D11_VIEWPORT((float)X, (float)Y, (float)Width, (float)Height); D3D::context->RSSetViewports(1, &vp); D3D::context->OMSetRenderTargets(1, &D3D::GetBackBuffer()->GetRTV(), NULL); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp index 7b33844f92..ff3f68a6cd 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp @@ -49,9 +49,9 @@ LPDIRECT3DSURFACE9 back_buffer_z; D3DCAPS9 caps; HWND hWnd; -static unsigned int multisample; -static unsigned int resolution; -static unsigned int xres, yres; +static int multisample; +static int resolution; +static int xres, yres; static bool auto_depth_stencil = false; #define VENDOR_NVIDIA 4318 @@ -480,25 +480,24 @@ const D3DCAPS9 &GetCaps() } // returns true if size was changed -bool FixTextureSize(u32& width, u32& height) +bool FixTextureSize(int& width, int& height) { - u32 oldw = width; - u32 oldh = height; + int oldw = width, oldh = height; // conditional nonpow2 support should work fine for us if ((caps.TextureCaps & D3DPTEXTURECAPS_POW2) && !(caps.TextureCaps & D3DPTEXTURECAPS_NONPOW2CONDITIONAL)) { // all texture dimensions need to be powers of two - width = MakePow2(width); - height = MakePow2(height); + width = (int)MakePow2((u32)width); + height = (int)MakePow2((u32)height); } if (caps.TextureCaps & D3DPTEXTURECAPS_SQUAREONLY) { width = height = max(width, height); } - width = min(width, (u32)caps.MaxTextureWidth); - height = min(height, (u32)caps.MaxTextureHeight); + width = min(width, (int)caps.MaxTextureWidth); + height = min(height, (int)caps.MaxTextureHeight); return (width != oldw) || (height != oldh); } @@ -516,22 +515,18 @@ bool CheckDepthStencilSupport(D3DFORMAT target_format, D3DFORMAT depth_format) D3DFORMAT GetSupportedDepthTextureFormat() { - for (size_t i = 0; i < sizeof(DepthFormats)/sizeof(D3DFORMAT); ++i) - { + for (int i = 0; i < sizeof(DepthFormats)/sizeof(D3DFORMAT); ++i) if (D3D::CheckTextureSupport(D3DUSAGE_DEPTHSTENCIL, DepthFormats[i])) return DepthFormats[i]; - } return D3DFMT_UNKNOWN; } D3DFORMAT GetSupportedDepthSurfaceFormat(D3DFORMAT target_format) { - for (size_t i = 0; i < sizeof(DepthFormats)/sizeof(D3DFORMAT); ++i) - { + for (int i = 0; i < sizeof(DepthFormats)/sizeof(D3DFORMAT); ++i) if (D3D::CheckDepthStencilSupport(target_format, DepthFormats[i])) return DepthFormats[i]; - } return D3DFMT_UNKNOWN; } @@ -572,7 +567,7 @@ void ShowD3DError(HRESULT err) PanicAlert("Driver Internal Error"); break; case D3DERR_OUTOFVIDEOMEMORY: - PanicAlert("Out of video memory"); + PanicAlert("Out of vid mem"); break; default: // MessageBox(0,_T("Other error or success"),_T("ERROR"),0); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h index bd55c87819..d1e7eeaa91 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h +++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.h @@ -75,7 +75,7 @@ const char *VertexShaderVersionString(); void ShowD3DError(HRESULT err); // returns true if size was changed -bool FixTextureSize(u32& width, u32& height); +bool FixTextureSize(int& width, int& height); // returns true if format is supported bool CheckTextureSupport(DWORD usage, D3DFORMAT tex_format); @@ -115,8 +115,8 @@ void EnableAlphaToCoverage(); struct Resolution { char name[32]; - unsigned int xres; - unsigned int yres; + int xres; + int yres; std::set bitdepths; std::set refreshes; }; diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp b/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp index a8343d7987..9510ad444c 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.cpp @@ -365,10 +365,10 @@ int CD3DFont::DrawTextScaled(float x, float y, float fXScale, float fYScale, flo */ void drawShadedTexQuad(IDirect3DTexture9 *texture, const RECT *rSource, - u32 SourceWidth, - u32 SourceHeight, - u32 DestWidth, - u32 DestHeight, + int SourceWidth, + int SourceHeight, + int DestWidth, + int DestHeight, IDirect3DPixelShader9 *PShader, IDirect3DVertexShader9 *Vshader, float Gamma) @@ -399,11 +399,11 @@ void drawShadedTexQuad(IDirect3DTexture9 *texture, void drawShadedTexSubQuad(IDirect3DTexture9 *texture, const MathUtil::Rectangle *rSource, - u32 SourceWidth, - u32 SourceHeight, + int SourceWidth, + int SourceHeight, const MathUtil::Rectangle *rDest, - u32 DestWidth, - u32 DestHeight, + int DestWidth, + int DestHeight, IDirect3DPixelShader9 *PShader, IDirect3DVertexShader9 *Vshader, float Gamma) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h b/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h index 217ddf069b..882f112ece 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h +++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DUtil.h @@ -65,20 +65,20 @@ namespace D3D void quad2d(float x1, float y1, float x2, float y2, u32 color, float u1=0, float v1=0, float u2=1, float v2=1); void drawShadedTexQuad(IDirect3DTexture9 *texture, const RECT *rSource, - u32 SourceWidth, - u32 SourceHeight, - u32 DestWidth, - u32 DestHeight, + int SourceWidth, + int SourceHeight, + int DestWidth, + int DestHeight, IDirect3DPixelShader9 *PShader, IDirect3DVertexShader9 *Vshader, float Gamma = 1.0f); void drawShadedTexSubQuad(IDirect3DTexture9 *texture, const MathUtil::Rectangle *rSource, - u32 SourceWidth, - u32 SourceHeight, + int SourceWidth, + int SourceHeight, const MathUtil::Rectangle *rDest, - u32 DestWidth, - u32 DestHeight, + int DestWidth, + int DestHeight, IDirect3DPixelShader9 *PShader, IDirect3DVertexShader9 *Vshader, float Gamma = 1.0f); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.cpp index f1d1fa3133..1903bce989 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.cpp @@ -44,8 +44,8 @@ FramebufferManager::Efb FramebufferManager::s_efb; FramebufferManager::FramebufferManager() { bool depth_textures_supported = true; - u32 target_width = Renderer::GetTargetWidth(); - u32 target_height = Renderer::GetTargetHeight(); + int target_width = Renderer::GetTargetWidth(); + int target_height = Renderer::GetTargetHeight(); s_efb.color_surface_Format = D3DFMT_A8R8G8B8; // EFB color texture - primary render target @@ -161,7 +161,7 @@ void FramebufferManager::GetTargetSize(unsigned int *width, unsigned int *height } void XFBSource::Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, u32 width, u32 height) const + const MathUtil::Rectangle &drawrc, int width, int height) const { D3D::drawShadedTexSubQuad(texture, &sourcerc, texWidth, texHeight, &drawrc, width , height, PixelShaderCache::GetColorCopyProgram(0), VertexShaderCache::GetSimpleVertexShader(0)); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.h b/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.h index dad5eda513..5b5993a12b 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.h +++ b/Source/Plugins/Plugin_VideoDX9/Src/FramebufferManager.h @@ -58,7 +58,7 @@ struct XFBSource : public XFBSourceBase ~XFBSource() { texture->Release(); } void Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, u32 width, u32 height) const; + const MathUtil::Rectangle &drawrc, int width, int height) const; void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight); void CopyEFB(float Gamma); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp index 8bd5cda969..f750313642 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp @@ -288,10 +288,10 @@ Renderer::Renderer() UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); s_LastAA = g_ActiveConfig.iMultisampleMode; - u32 SupersampleCoefficient = (s_LastAA % 3) + 1; + int SupersampleCoeficient = (s_LastAA % 3) + 1; s_LastEFBScale = g_ActiveConfig.iEFBScale; - CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoefficient); + CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); // Make sure to use valid texture sizes D3D::FixTextureSize(s_target_width, s_target_height); @@ -305,7 +305,7 @@ Renderer::Renderer() SetupDeviceObjects(); - for (u32 stage = 0; stage < 8; stage++) + for (int stage = 0; stage < 8; stage++) D3D::SetSamplerState(stage, D3DSAMP_MAXANISOTROPY, 1 << g_ActiveConfig.iMaxAnisotropy); D3DVIEWPORT9 vp; @@ -468,10 +468,8 @@ u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) // if depth textures aren't supported by the hardware, just return if (type == PEEK_Z) - { if (FramebufferManager::GetEFBDepthTexture() == NULL) return 0; - } // We're using three surfaces here: // - pEFBSurf: EFB Surface. Source surface when peeking, destination surface when poking. @@ -695,14 +693,16 @@ void Renderer::UpdateViewport(Matrix44& vpCorrection) } // In D3D, the viewport rectangle must fit within the render target. - u32 X = intendedX; - u32 Y = intendedY; - u32 Wd = intendedWd; - u32 Ht = intendedHt; - + int X = intendedX; + if (X < 0) + X = 0; + int Y = intendedY; + if (Y < 0) + Y = 0; + int Wd = intendedWd; if (X + Wd > GetTargetWidth()) Wd = GetTargetWidth() - X; - + int Ht = intendedHt; if (Y + Ht > GetTargetHeight()) Ht = GetTargetHeight() - Y; @@ -907,14 +907,18 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); } - u32 X = GetTargetRectangle().left; - u32 Y = GetTargetRectangle().top; - u32 Width = (GetTargetRectangle().right - GetTargetRectangle().left); - u32 Height = (GetTargetRectangle().bottom - GetTargetRectangle().top); + int X = GetTargetRectangle().left; + int Y = GetTargetRectangle().top; + int Width = GetTargetRectangle().right - GetTargetRectangle().left; + int Height = GetTargetRectangle().bottom - GetTargetRectangle().top; // Sanity check + if (X < 0) X = 0; + if (Y < 0) Y = 0; if (X > s_backbuffer_width) X = s_backbuffer_width; if (Y > s_backbuffer_height) Y = s_backbuffer_height; + if (Width < 0) Width = 0; + if (Height < 0) Height = 0; if (Width > (s_backbuffer_width - X)) Width = s_backbuffer_width - X; if (Height > (s_backbuffer_height - Y)) Height = s_backbuffer_height - Y; @@ -1149,10 +1153,10 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - u32 SupersampleCoefficient = (s_LastAA % 3) + 1; + int SupersampleCoeficient = (s_LastAA % 3) + 1; s_LastEFBScale = g_ActiveConfig.iEFBScale; - CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoefficient); + CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp index 08c1ecc64d..0e37c3adb6 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp @@ -299,7 +299,7 @@ GLuint FramebufferManager::ResolveAndGetDepthTarget(const EFBRectangle &source_r } void XFBSource::Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, u32 width, u32 height) const + const MathUtil::Rectangle &drawrc, int width, int height) const { // Texture map xfbSource->texture onto the main buffer diff --git a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.h b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.h index d077b2f2ac..ffe3399705 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.h @@ -63,7 +63,7 @@ struct XFBSource : public XFBSourceBase void CopyEFB(float Gamma); void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight); void Draw(const MathUtil::Rectangle &sourcerc, - const MathUtil::Rectangle &drawrc, u32 width, u32 height) const; + const MathUtil::Rectangle &drawrc, int width, int height) const; const GLuint texture; }; diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index 3f62db8787..e3c35a6511 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -323,8 +323,8 @@ Renderer::Renderer() return; // TODO: fail // Decide frambuffer size - s_backbuffer_width = GLInterface->GetBackBufferWidth(); - s_backbuffer_height = GLInterface->GetBackBufferHeight(); + s_backbuffer_width = (int)GLInterface->GetBackBufferWidth(); + s_backbuffer_height = (int)GLInterface->GetBackBufferHeight(); // Handle VSync on/off #ifdef __APPLE__ @@ -1047,7 +1047,7 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons // Textured triangles are necessary because of post-processing shaders // Disable all other stages - for (unsigned int i = 1; i < 8; ++i) + for (int i = 1; i < 8; ++i) OGL::TextureCache::DisableStage(i); // Update GLViewPort -- cgit v1.2.3 From f7729b9a69034c8b190ac681f89075d37f42302b Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 16 Jan 2013 17:09:09 -0600 Subject: Remove some unused resource files. --- Source/Core/DolphinWX/Src/Debugger/CodeWindow.cpp | 11 +- .../DolphinWX/Src/Debugger/CodeWindowFunctions.cpp | 9 - Source/Core/DolphinWX/Src/Globals.h | 2 - Source/Core/DolphinWX/resources/toolbar_browse.xpm | 202 -------------- .../DolphinWX/resources/toolbar_debugger_pause.c | 277 ------------------ .../DolphinWX/resources/toolbar_debugger_play.c | 278 ------------------ .../Core/DolphinWX/resources/toolbar_file_open.xpm | 141 ---------- .../DolphinWX/resources/toolbar_fullscreen.xpm | 132 --------- Source/Core/DolphinWX/resources/toolbar_help.xpm | 283 ------------------- Source/Core/DolphinWX/resources/toolbar_pause.c | 277 ------------------ Source/Core/DolphinWX/resources/toolbar_pause.xpm | 148 ---------- Source/Core/DolphinWX/resources/toolbar_play.c | 278 ------------------ Source/Core/DolphinWX/resources/toolbar_play.xpm | 149 ---------- .../DolphinWX/resources/toolbar_plugin_dsp.xpm | 303 -------------------- .../DolphinWX/resources/toolbar_plugin_gfx.xpm | 310 --------------------- .../DolphinWX/resources/toolbar_plugin_options.c | 286 ------------------- .../DolphinWX/resources/toolbar_plugin_options.xpm | 112 -------- .../DolphinWX/resources/toolbar_plugin_pad.xpm | 228 --------------- .../Core/DolphinWX/resources/toolbar_refresh.xpm | 192 ------------- Source/Core/DolphinWX/resources/toolbar_stop.xpm | 126 --------- 20 files changed, 3 insertions(+), 3741 deletions(-) delete mode 100644 Source/Core/DolphinWX/resources/toolbar_browse.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_debugger_pause.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_debugger_play.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_file_open.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_fullscreen.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_help.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_pause.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_pause.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_play.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_play.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_plugin_dsp.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_plugin_gfx.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_plugin_options.c delete mode 100644 Source/Core/DolphinWX/resources/toolbar_plugin_options.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_plugin_pad.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_refresh.xpm delete mode 100644 Source/Core/DolphinWX/resources/toolbar_stop.xpm (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/Debugger/CodeWindow.cpp b/Source/Core/DolphinWX/Src/Debugger/CodeWindow.cpp index 2917f1637d..1c0776862c 100644 --- a/Source/Core/DolphinWX/Src/Debugger/CodeWindow.cpp +++ b/Source/Core/DolphinWX/Src/Debugger/CodeWindow.cpp @@ -52,10 +52,7 @@ extern "C" // Bitmaps { - #include "../../resources/toolbar_play.c" - #include "../../resources/toolbar_pause.c" #include "../../resources/toolbar_add_memorycheck.c" - #include "../../resources/toolbar_debugger_delete.c" #include "../../resources/toolbar_add_breakpoint.c" } @@ -563,23 +560,21 @@ bool CCodeWindow::JITBlockLinking() void CCodeWindow::InitBitmaps() { // load original size 48x48 - m_Bitmaps[Toolbar_DebugGo] = wxGetBitmapFromMemory(toolbar_play_png); m_Bitmaps[Toolbar_Step] = wxGetBitmapFromMemory(toolbar_add_breakpoint_png); m_Bitmaps[Toolbar_StepOver] = wxGetBitmapFromMemory(toolbar_add_memcheck_png); m_Bitmaps[Toolbar_Skip] = wxGetBitmapFromMemory(toolbar_add_memcheck_png); m_Bitmaps[Toolbar_GotoPC] = wxGetBitmapFromMemory(toolbar_add_memcheck_png); m_Bitmaps[Toolbar_SetPC] = wxGetBitmapFromMemory(toolbar_add_memcheck_png); - m_Bitmaps[Toolbar_DebugPause] = wxGetBitmapFromMemory(toolbar_pause_png); // scale to 24x24 for toolbar - for (size_t n = Toolbar_DebugGo; n < ToolbarDebugBitmapMax; n++) + for (size_t n = 0; n < ToolbarDebugBitmapMax; n++) m_Bitmaps[n] = wxBitmap(m_Bitmaps[n].ConvertToImage().Scale(24, 24)); } void CCodeWindow::PopulateToolbar(wxAuiToolBar* toolBar) { - int w = m_Bitmaps[Toolbar_DebugGo].GetWidth(), - h = m_Bitmaps[Toolbar_DebugGo].GetHeight(); + int w = m_Bitmaps[0].GetWidth(), + h = m_Bitmaps[0].GetHeight(); toolBar->SetToolBitmapSize(wxSize(w, h)); toolBar->AddTool(IDM_STEP, _("Step"), m_Bitmaps[Toolbar_Step]); diff --git a/Source/Core/DolphinWX/Src/Debugger/CodeWindowFunctions.cpp b/Source/Core/DolphinWX/Src/Debugger/CodeWindowFunctions.cpp index 05915ecd20..706b398dce 100644 --- a/Source/Core/DolphinWX/Src/Debugger/CodeWindowFunctions.cpp +++ b/Source/Core/DolphinWX/Src/Debugger/CodeWindowFunctions.cpp @@ -54,15 +54,6 @@ #include "ConfigManager.h" -extern "C" // Bitmaps -{ - #include "../../resources/toolbar_play.c" - #include "../../resources/toolbar_pause.c" - #include "../../resources/toolbar_add_memorycheck.c" - #include "../../resources/toolbar_debugger_delete.c" - #include "../../resources/toolbar_add_breakpoint.c" -} - // Save and load settings // ----------------------------- void CCodeWindow::Load() diff --git a/Source/Core/DolphinWX/Src/Globals.h b/Source/Core/DolphinWX/Src/Globals.h index 36a37de6cc..85ac104923 100644 --- a/Source/Core/DolphinWX/Src/Globals.h +++ b/Source/Core/DolphinWX/Src/Globals.h @@ -26,8 +26,6 @@ enum { - Toolbar_DebugGo, - Toolbar_DebugPause, Toolbar_Step, Toolbar_StepOver, Toolbar_Skip, diff --git a/Source/Core/DolphinWX/resources/toolbar_browse.xpm b/Source/Core/DolphinWX/resources/toolbar_browse.xpm deleted file mode 100644 index 1c4ea9fb26..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_browse.xpm +++ /dev/null @@ -1,202 +0,0 @@ -/* XPM */ -static const char *toolbar_browse_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 148 2", -" c #14100F", -". c #161211", -"X c #191614", -"o c #1C1816", -"O c #1E1C1B", -"+ c #24211F", -"@ c #252322", -"# c #292524", -"$ c #242628", -"% c #272829", -"& c #2C2D2D", -"* c #323233", -"= c #3C3E3F", -"- c #3D3F40", -"; c #414345", -": c #4A4D4F", -"> c #4B4E50", -", c #4E5153", -"< c #505456", -"1 c #50585D", -"2 c #425C69", -"3 c #4A626E", -"4 c #54636B", -"5 c #5E656A", -"6 c #4D6672", -"7 c #4F6A77", -"8 c #516A76", -"9 c #546D7B", -"0 c #596D79", -"q c #5D727D", -"w c #6A6C6E", -"e c #656E73", -"r c #6F7274", -"t c #61727C", -"y c #5D7684", -"u c #5D7E90", -"i c #617783", -"p c #617986", -"a c #647C89", -"s c #67808D", -"d c #6C828E", -"f c #738087", -"g c #778288", -"h c #628294", -"j c #698594", -"k c #6D8897", -"l c #678799", -"z c #6C8B9D", -"x c #728691", -"c c #758995", -"v c #7A8C95", -"b c #738C9A", -"n c #798E9B", -"m c #75909F", -"M c #7B909C", -"N c #6F8FA0", -"B c #708FA0", -"V c #7492A4", -"C c #7A95A6", -"Z c #7997A9", -"A c #7D9AAA", -"S c #869094", -"D c #84949D", -"F c #89969F", -"G c #8597A1", -"H c #8798A2", -"J c #8C9BA5", -"K c #829DAC", -"L c #8B9EAA", -"P c #939EA5", -"I c #839FB0", -"U c #8EA1AC", -"Y c #91A2AD", -"T c #9BA6AC", -"R c #85A1B3", -"E c #8AA4B4", -"W c #8EA8B8", -"Q c #93A5B1", -"! c #96A8B3", -"~ c #9BAAB2", -"^ c #94ACBC", -"/ c #9DAFBB", -"( c #9CB0BD", -") c #A2AEB4", -"_ c #A0AFB8", -"` c #A7B2B7", -"' c #ADB1B3", -"] c #A4B3BC", -"[ c #AAB5BC", -"{ c #AEB9BF", -"} c #B0B9BF", -"| c #BDBEBF", -" . c #9DB3C2", -".. c #A2B6C4", -"X. c #A3B9C7", -"o. c #ACBAC2", -"O. c #A6BBC9", -"+. c #AABECB", -"@. c #B3BDC3", -"#. c #B1BFC8", -"$. c #AEC2CE", -"%. c #B6C0C6", -"&. c #B9C2C6", -"*. c #B4C2CC", -"=. c #BDC5CB", -"-. c #BEC8CE", -";. c #AEC2D0", -":. c #B2C5D1", -">. c #B9C7D0", -",. c #B5C8D3", -"<. c #BBCBD5", -"1. c #B7CBD9", -"2. c #BECED8", -"3. c #C1C3C5", -"4. c #C0C7CB", -"5. c #C2CACE", -"6. c #C4CDD2", -"7. c #C8CFD3", -"8. c #C0CFD9", -"9. c #C5D1D7", -"0. c #CCD2D6", -"q. c #C4D2DB", -"w. c #CBD6DD", -"e. c #CED8DF", -"r. c #D1D6D9", -"t. c #D4D9DD", -"y. c #D8DCDF", -"u. c #C5D6E1", -"i. c #CBD7E0", -"p. c #CDD9E1", -"a. c #D3DDE3", -"s. c #DADFE2", -"d. c #D6E0E7", -"f. c #DCE2E6", -"g. c #D5E1E9", -"h. c #DBE4E9", -"j. c #E1E4E6", -"k. c #E1E6EA", -"l. c #E4E9ED", -"z. c #E9ECEE", -"x. c #E6ECF1", -"c. c #EAEEF1", -"v. c #EDF1F4", -"b. c #F2F4F6", -"n. c #F5F7F8", -"m. c #F7F8FA", -"M. c #FBFCFC", -"N. c None", -/* pixels */ -"N.N.N.N.N.N.N.N.N.N.N.N.N.N.` @.&.=.5.7.5.4.=.@.[ N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.N.N.N.N.N.N.` 7.f.k.k.j.s.r.0.6.5.5.5.6.7.0.y.j.k.k.f.0.} N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.N.N.N.} f.l.t.5.{ [ [ { %.=.5.6.6.-.*.*.o.[ _ ~ T ~ ` &.r.k.j.&.N.N.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.N.@.b.s.o.) @.6.f.x.n.M.M.m.n.v.c.x.h.d.a.p.i.q.<.:.O.( Q U ) 0.b.5.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.7.b.[ ] 9.h.x.c.v.b.n.M.M.n.v.v.l.k.h.a.a.p.w.q.<.,.:.;.$.O.( L T z.s.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.M.@.>.d.d.h.k.l.c.v.n.M.M.n.v.v.l.k.h.a.a.p.w.q.<.,.:.$.+.O.X.X.^ Q m.N.N.N.N.N.N.N.N.N.N.N.", -"N.>.M.a.w.p.a.h.k.l.c.v.b.n.n.b.v.c.l.k.h.a.a.w.q.8.<.,.$.$.+.O.X. .^ ..m.x.N.N.N.N.N.N.N.N.N.N.", -"N.N.8.M.h.i.a.d.h.l.z.c.v.v.v.v.v.x.l.h.d.a.p.w.q.2.<.,.$.$.+.O. .( +.c.v.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.u +.n.m.l.d.d.h.l.l.c.v.v.c.c.x.l.h.d.a.p.i.q.2.,.:.+.O.X.O.:.d.M.l.+.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.u u V $.k.m.m.b.c.x.l.l.c.l.a.9.6.6.6.-.=.*.<.2.<.<.2.i.h.v.m.c.w.+.X.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h h h B E *.a.z.b.M.M.f.6.7.0.5.=.=.4.7.0.5.6.l.M.M.M.b.l.a.q.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h l z z N B Z K ^ .%.r.6.@.@.-.7.0.7.&.@.&.0.0.y.b.x.h.d.a.w.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h l z B V Z A I K ] r.@.%.k.M.M.M.M.M.M.m.a.{ =.0.6.x.l.h.a.w.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h l z B V Z A Z [ t.[ t.M.M.M.M.M.M.M.M.M.M.m.-.{ r.5.l.h.a.w.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h l z B V Z Z ! y.[ s.M.M.M.M.M.M.M.M.M.M.M.M.M.6.@.r.6.h.a.w.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.N.h l l B V Z C r.@.w.n.M.M.M.M.M.M.M.M.M.M.M.M.M.v.@.=.6.e.a.w.<.:.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.N.N.b A V V V o.7.-.f.M.M.M.M.M.M.M.M.M.M.M.M.M.M.n.t.[ 0.-.h.g.*.N.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.N.[ b.0.c h b 0.@.s.k.m.m.m.M.M.M.M.M.M.M.m.m.n.n.b.a.-.&.=.T 5.b.%.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.5.n.T q 6 2 v 0.-.f.k.b.m.m.m.M.M.M.M.M.m.m.n.b.b.v.a.e.@.7.6 8 F z.y.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.M.Y 8 9 9 7 ) 6.w.f.k.b.n.m.M.M.M.M.M.M.m.m.n.b.b.l.a.a.#.0.x 8 8 v m.N.N.N.N.N.N.N.N.N.N.N.", -"N.6.M.J y d d a @.=.s.j.l.c.n.m.M.M.M.M.M.M.M.m.n.b.v.f.s.a.=.0.L a a c n.v.N.N.N.N.N.N.N.N.N.N.", -"N.N.w.b.! n M n &.=.f.k.z.v.b.m.M.M.M.M.M.M.m.m.n.b.z.j.f.s.5.7.~ c L f.b.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h -.m.f.@.Y &.=.f.l.z.b.n.m.m.M.M.M.M.M.M.m.n.v.z.k.f.s.5.6.o.0.m.x.+.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.u u A >.c.z.0.=.s.l.c.b.n.m.M.M.M.M.M.M.m.m.n.v.z.k.f.f.=.5.t.n.i.+.X.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h h h V ^ o.5.0.c.c.b.n.m.m.M.M.M.M.M.m.m.n.b.z.l.f.f.%.0.<.i.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h l z z z C 0.=.b.c.b.n.m.M.M.M.M.M.M.m.m.n.b.z.k.j.f.%.7.q.i.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h l z B V B =.=.k.b.b.n.m.m.M.M.M.M.m.m.n.b.v.z.k.c.6.6.-.a.w.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h l z B V V U t.=.m.n.n.n.n.m.m.m.m.m.n.n.b.c.z.v.k.@.0.6.d.w.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.h h l z B V Z V @.7.0.M.m.m.m.m.m.m.m.n.n.n.b.b.n.v.@.0.-.h.a.w.<.$.O.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.N.h l z N V Z A C 7.5.0.m.M.M.M.M.M.M.M.M.m.m.m.c.%.0.=.=.h.a.w.<.:.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.N.N.z C V V Z A K K 7.7.=.z.M.M.M.M.M.m.m.m.n.t.@.0.&.t.6.w.a.g.*.N.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.N.` z.0.n j B A R W E =.t.=.6.s.z.v.v.c.k.r.=.5.y.=.@.6.f.w * ' b.@.N.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.=.m.) t 3 2 3 9 a k C A ! 5.r.0.5.5.5.5.6.0.0.@.[ o.n ~ r . % S v.r.N.N.N.N.N.N.N.N.N.N.N.", -"N.N.M.Y 6 8 8 9 9 8 8 8 8 9 9 9 d Y { %.&.@.` H i 9 9 6 7 4 & ; - o $ g M.N.N.N.N.N.N.N.N.N.N.N.", -"N.9.M.G y a a a a a a a a a a a p y y p p p y y p a a a s 0 & : e = o & 3.M.N.N.N.N.N.N.N.N.N.N.", -"N.N.t.c.L c b n n n n n n n n n n n n n n n n n n n n n n C t @ > e = X = 5 N.N.N.N.N.N.N.N.N.N.", -"N.N.h 8.m.t.] Y L L U U Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y U U L Q f # : e = o @ N.N.N.N.N.N.N.N.N.N.", -"N.N.u u K 8.v.v.f.6.#.o.] ( ( / / / / / / / / / ( ( ( ..o.-.t.n.| # : e = O & N.N.N.N.N.N.N.N.N.", -"N.N.h h h h V ( 8.h.v.b.v.x.k.f.a.a.a.e.e.a.a.a.h.k.c.b.M.M.m.c.x.T # : e = O & N.N.N.N.N.N.N.N.", -"N.N.h h l z z z B Z E .*.2.p.h.l.x.v.b.n.m.M.M.M.M.M.M.b.x.h.d.a.g.P # : e = O & N.N.N.N.N.N.N.", -"N.N.h h l z B V C A K R E W ^ .X.+.:.8.i.a.h.c.b.M.M.n.v.x.k.h.a.w.u.F # > e = O & N.N.N.N.N.N.", -"N.u h h l z B V Z A I E W ^ ...O.$.,.q.p.d.k.c.n.M.M.n.v.x.k.h.a.w.<.1.D % , e = O & N.N.N.N.N.", -"N.N.h h l z B V Z A I E W ^ ...O.$.,.q.p.d.k.c.n.M.M.n.v.x.k.h.a.w.<.$.,.1 o < e = O & N.N.N.N.", -"N.N.x h l z B V Z A I E W ^ ...O.$.,.q.p.d.k.c.n.M.M.n.v.x.k.h.a.w.2.:.Q N.N.+ < e = O & N.N.N.", -"N.N.N.c k z N V Z A I E W ^ ...O.$.,.q.p.d.k.c.n.M.M.n.v.x.l.h.d.w.o.H N.N.N.N.@ < e = + @ N.N.", -"N.N.N.N.N.c b m C A R E ^ ^ .X.O.$.,.q.p.d.l.v.m.M.M.M.n.c.h.9.[ H N.N.N.N.N.N.N.@ < 5 * o N.N.", -"N.N.N.N.N.N.N.N.v n C K E ^ / ..O.$.<.q.a.d.l.x.c.v.k.0.@.~ F N.N.N.N.N.N.N.N.N.N.N.# ; & X N.N.", -"N.N.N.N.N.N.N.N.N.N.N.N.N.N.v D D G H J J J J J F N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.& N.N.N.N." -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_debugger_pause.c b/Source/Core/DolphinWX/resources/toolbar_debugger_pause.c deleted file mode 100644 index d2d21a30de..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_debugger_pause.c +++ /dev/null @@ -1,277 +0,0 @@ -static const unsigned char toolbar_pause_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, 0x14, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x34, -0x2f, 0x30, 0x34, 0x79, 0x5e, 0xa3, 0xd5, 0x00, 0x00, 0x0c, 0x2e, 0x49, -0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x4b, 0x6c, 0x5d, 0xd7, 0x75, -0x86, 0xbf, 0xbd, 0xf7, 0x79, 0xdc, 0x87, 0x28, 0x5d, 0x52, 0x22, 0x29, -0x25, 0x96, 0x2c, 0x45, 0xb0, 0x55, 0x35, 0x4e, 0xa4, 0xa2, 0xa3, 0x0c, -0x6a, 0x2b, 0x40, 0x50, 0x4f, 0x0a, 0xc8, 0xb3, 0x0e, 0x0c, 0x23, 0xca, -0xa4, 0x4a, 0x1c, 0xc0, 0x4a, 0x07, 0x1d, 0x09, 0x45, 0x64, 0x18, 0xa9, -0x03, 0x03, 0xae, 0x65, 0xb5, 0x40, 0x91, 0x64, 0xa0, 0x00, 0x0d, 0xa7, -0x85, 0xd3, 0x0e, 0xda, 0xa2, 0x69, 0xa1, 0x38, 0x9d, 0x14, 0x28, 0x50, -0x39, 0xb1, 0x91, 0x0a, 0xb2, 0x65, 0x3d, 0x28, 0x89, 0x22, 0xef, 0x25, -0xef, 0x9b, 0xf7, 0x3c, 0xf6, 0x5e, 0x1d, 0xec, 0x73, 0x1f, 0x94, 0x48, -0x89, 0xb2, 0x83, 0x1a, 0xde, 0xc0, 0xc1, 0xb9, 0x8f, 0x7d, 0xcf, 0xf9, -0xff, 0xb5, 0xfe, 0xfd, 0xaf, 0xb5, 0x0f, 0xa9, 0x44, 0x84, 0xcf, 0xf3, -0xd0, 0x9f, 0x35, 0x80, 0x4f, 0x3b, 0x82, 0xcf, 0xf2, 0xe6, 0xa7, 0x4f, -0xff, 0x58, 0x0d, 0x5f, 0xff, 0xe8, 0x47, 0x7f, 0xf6, 0x89, 0xa4, 0xa0, -0x7e, 0x57, 0x12, 0xfa, 0xe1, 0x0f, 0xff, 0xe5, 0xa0, 0x88, 0x9c, 0x10, -0x71, 0x27, 0x9c, 0x73, 0x07, 0x9d, 0x93, 0x63, 0x22, 0xae, 0xe6, 0x9c, -0xc3, 0x39, 0x87, 0x88, 0xbb, 0xee, 0x9c, 0xbb, 0xe1, 0x9c, 0xbb, 0xe4, -0x9c, 0x7b, 0xaf, 0xd5, 0xea, 0xff, 0x7c, 0x93, 0xcb, 0x08, 0x3c, 0x1e, -0x99, 0x4f, 0x45, 0xe0, 0xcd, 0x37, 0xff, 0xa3, 0x26, 0xe2, 0x5e, 0x10, -0x91, 0x33, 0x22, 0x72, 0xdc, 0x03, 0x15, 0x26, 0x40, 0x8f, 0x5e, 0x6f, -0x7c, 0x6f, 0x71, 0xce, 0x35, 0x9d, 0x73, 0xff, 0x68, 0xad, 0xfb, 0xfb, -0xf5, 0xf5, 0xfc, 0x97, 0x05, 0xf8, 0xe1, 0x01, 0x20, 0xdb, 0x21, 0xf2, -0x89, 0x09, 0xbc, 0xf5, 0xd6, 0xa5, 0x73, 0x20, 0x67, 0x9c, 0x93, 0x9a, -0x88, 0x50, 0x2a, 0xc5, 0x54, 0xab, 0x55, 0xa6, 0xa6, 0xa6, 0x50, 0x4a, -0x11, 0x45, 0xf1, 0x08, 0x6c, 0x96, 0x65, 0xf4, 0xfb, 0x5d, 0xba, 0xdd, -0x3e, 0x9d, 0x4e, 0x8b, 0x4e, 0xa7, 0x43, 0x9e, 0x67, 0x93, 0xe4, 0xde, -0xb5, 0xd6, 0xfe, 0x45, 0x9a, 0x72, 0xb9, 0x20, 0xe0, 0x86, 0x64, 0x1e, -0x45, 0xe2, 0xb1, 0xd7, 0xc0, 0xdb, 0x6f, 0xbf, 0x7b, 0x42, 0x29, 0x75, -0x51, 0x6b, 0x7d, 0x50, 0x6b, 0xcd, 0xcc, 0xcc, 0x0c, 0x4f, 0x3e, 0xb9, -0x97, 0xdd, 0xbb, 0xcb, 0x54, 0x2a, 0x01, 0x41, 0xa0, 0x09, 0x02, 0x83, -0xb5, 0xe0, 0x1c, 0xf4, 0x7a, 0x29, 0xdd, 0x6e, 0x42, 0xab, 0xd5, 0xa7, -0xd1, 0x68, 0x33, 0x33, 0x33, 0x4d, 0x9a, 0xa6, 0xb4, 0x5a, 0x6b, 0xdc, -0xbd, 0xbb, 0x44, 0x92, 0x24, 0x00, 0xcf, 0x2a, 0xa5, 0xfe, 0x2b, 0x0c, -0xed, 0x5f, 0x65, 0x99, 0x7e, 0x0d, 0x50, 0x05, 0x89, 0x21, 0x91, 0x2d, -0xc7, 0x63, 0x65, 0xe0, 0xc2, 0x85, 0xff, 0x3c, 0xa7, 0x94, 0xfa, 0x3e, -0xc0, 0xdc, 0xdc, 0x2c, 0xcf, 0x3c, 0xb3, 0x9f, 0xb9, 0xb9, 0x98, 0x38, -0xd6, 0x38, 0xc7, 0x08, 0xf4, 0xc3, 0x5e, 0x2f, 0x2f, 0x37, 0x59, 0x5c, -0x5c, 0xa2, 0xdf, 0x5f, 0xc7, 0xb9, 0x9c, 0x95, 0x95, 0x15, 0x96, 0x97, -0x97, 0x47, 0x19, 0x11, 0x71, 0xbf, 0xb2, 0x56, 0xfe, 0x54, 0x24, 0x68, -0x00, 0x16, 0x70, 0x0f, 0xcb, 0xc2, 0xb6, 0x33, 0x70, 0xe1, 0xc2, 0xaf, -0x2e, 0x6a, 0xad, 0x4f, 0xc5, 0x71, 0xcc, 0x57, 0xbf, 0x7a, 0x84, 0xa7, -0x9f, 0xde, 0x41, 0xa9, 0xa4, 0x46, 0xe0, 0xd6, 0xd7, 0x2d, 0xab, 0xab, -0x29, 0xed, 0x76, 0xc6, 0x60, 0xe0, 0x0f, 0x6b, 0x2d, 0xce, 0x59, 0xa2, -0xc8, 0x10, 0xc7, 0x21, 0xe5, 0x72, 0x4c, 0xad, 0x36, 0xc5, 0xf4, 0x74, -0x8d, 0xbb, 0x77, 0x97, 0xf9, 0xf8, 0xe3, 0x1b, 0x4c, 0x4f, 0xcf, 0x50, -0x2e, 0x97, 0x59, 0x5c, 0xbc, 0xc5, 0xfa, 0xfa, 0x3a, 0xc0, 0x1f, 0x29, -0x25, 0xff, 0x2a, 0x92, 0x3f, 0x0f, 0x41, 0x83, 0x8d, 0xeb, 0xe2, 0x81, -0xb1, 0xad, 0x0c, 0xbc, 0xfd, 0xf6, 0xbb, 0x17, 0xb5, 0xd6, 0xa7, 0xaa, -0xd5, 0x2a, 0xcf, 0x3e, 0xfb, 0x0c, 0x07, 0x0e, 0x84, 0xa3, 0x88, 0x36, -0x1a, 0x96, 0xa5, 0xa5, 0x94, 0x7e, 0x3f, 0xc7, 0x39, 0x8b, 0xb5, 0xae, -0x38, 0xdb, 0x89, 0xb3, 0xc3, 0x5a, 0x8b, 0xb5, 0x39, 0x79, 0xee, 0xa8, -0xd5, 0x76, 0x30, 0x3f, 0x3f, 0x4f, 0x9a, 0xe6, 0xbc, 0xff, 0xfe, 0x07, -0x64, 0x59, 0x82, 0xb5, 0x96, 0xbb, 0x77, 0xef, 0xd0, 0x6a, 0x35, 0x87, -0xeb, 0xe2, 0x37, 0x22, 0xea, 0x8f, 0x95, 0x8a, 0xea, 0x80, 0xdd, 0x2a, -0x0b, 0x8f, 0x2c, 0x64, 0x6f, 0xbd, 0x75, 0xe9, 0x22, 0x70, 0x6a, 0xd7, -0xae, 0x1a, 0xcf, 0x3f, 0xff, 0x15, 0xf6, 0xef, 0x0f, 0x8b, 0x88, 0xc3, -0xd5, 0xab, 0x39, 0x8b, 0x8b, 0x39, 0x49, 0x22, 0x28, 0xa5, 0x00, 0x85, -0x2a, 0x9c, 0xdd, 0x9f, 0x55, 0x71, 0x8c, 0xe2, 0x05, 0x40, 0xa3, 0xb1, -0xc6, 0xaf, 0x7f, 0xfd, 0x3e, 0x6b, 0x6b, 0x6b, 0x1c, 0x3d, 0xfa, 0xfb, -0x68, 0x6d, 0x70, 0x4e, 0x98, 0x9b, 0x9b, 0xa7, 0x54, 0xaa, 0x0c, 0x7f, -0xf7, 0x15, 0x11, 0xfb, 0x13, 0xc0, 0xdc, 0x77, 0x91, 0xed, 0x13, 0x78, -0xf3, 0xcd, 0x7f, 0x3f, 0x23, 0x22, 0xa7, 0x4a, 0xa5, 0x12, 0x5f, 0xff, -0xfa, 0x11, 0x66, 0x66, 0x02, 0x9c, 0x83, 0x7a, 0x5d, 0xf8, 0xe8, 0x23, -0x61, 0x30, 0x78, 0x14, 0x7d, 0x46, 0x84, 0xfc, 0xeb, 0xf1, 0x1b, 0x11, -0xb8, 0x7d, 0x7b, 0x91, 0x0f, 0x3f, 0xfc, 0x90, 0xc3, 0x87, 0x9f, 0x1e, -0xd9, 0xef, 0xfc, 0xfc, 0x3c, 0x41, 0x30, 0x52, 0xf6, 0x9f, 0xe4, 0x79, -0xef, 0x15, 0x40, 0x4f, 0x16, 0xbd, 0x6d, 0x11, 0x78, 0xe3, 0x8d, 0x7f, -0x3b, 0x2e, 0x22, 0xe7, 0x8d, 0x31, 0x7c, 0xed, 0x6b, 0xcf, 0x30, 0x33, -0xe3, 0x23, 0x7f, 0xf3, 0xa6, 0xe5, 0xce, 0x1d, 0x6f, 0x7f, 0x20, 0x0c, -0x15, 0xb8, 0xb9, 0x14, 0xc7, 0xdf, 0x0f, 0xdf, 0x8f, 0x39, 0xf8, 0xef, -0xfa, 0xfd, 0x0e, 0x37, 0x6f, 0x5e, 0x67, 0xdf, 0xbe, 0x2f, 0x22, 0x22, -0x28, 0xa5, 0x99, 0x9d, 0x9d, 0x65, 0x42, 0xf6, 0x67, 0xb3, 0xac, 0x7b, -0x68, 0x2b, 0x9c, 0x0f, 0xc9, 0x80, 0x5c, 0x14, 0x81, 0xa3, 0x47, 0x9f, -0x62, 0xff, 0xfe, 0x32, 0xce, 0xc1, 0x8d, 0x1b, 0x29, 0xab, 0xab, 0x79, -0x51, 0x88, 0xec, 0xa8, 0x38, 0x79, 0xf0, 0x82, 0x88, 0x8c, 0x88, 0x8c, -0x81, 0x8f, 0x19, 0xf8, 0xcf, 0x64, 0xc3, 0x77, 0x22, 0xd0, 0xe9, 0xb4, -0x69, 0x36, 0xd7, 0x08, 0xc3, 0x12, 0x22, 0x8e, 0x38, 0x2e, 0xb1, 0x63, -0xc7, 0xd4, 0x70, 0xd2, 0x2e, 0x11, 0xf7, 0x97, 0x6c, 0x21, 0xa3, 0x4d, -0x5d, 0xe8, 0xf5, 0xd7, 0xff, 0xf9, 0x9b, 0x5a, 0xeb, 0xe3, 0xbb, 0x76, -0xed, 0xe4, 0xa9, 0xa7, 0x76, 0xa3, 0x94, 0xa2, 0x5e, 0xcf, 0x68, 0x34, -0x32, 0x94, 0xd2, 0x13, 0x52, 0x10, 0x3e, 0xf8, 0xe0, 0x32, 0x8d, 0x46, -0x9d, 0x6e, 0xb7, 0x43, 0xb3, 0xd9, 0xe0, 0xcb, 0x5f, 0x3e, 0xce, 0xe1, -0xc3, 0x47, 0x0a, 0x32, 0x7e, 0xd6, 0xb5, 0x6b, 0x57, 0x69, 0xb7, 0xd7, -0xe8, 0xf7, 0xfb, 0x74, 0x3a, 0x6d, 0x0e, 0x1c, 0x38, 0xc4, 0xfc, 0xfc, -0xbe, 0x11, 0x71, 0xf0, 0x24, 0x94, 0x52, 0x38, 0xe7, 0x3f, 0xab, 0xd5, -0xa6, 0x69, 0xb5, 0x5a, 0xc3, 0x80, 0xbc, 0x94, 0x24, 0xcd, 0x57, 0x81, -0x8f, 0xb6, 0x45, 0x40, 0x44, 0xce, 0x89, 0x08, 0x47, 0x8f, 0x7e, 0x89, -0x9d, 0x3b, 0x23, 0x06, 0x03, 0xc7, 0xe2, 0xe2, 0x3a, 0xce, 0x29, 0x94, -0x92, 0x11, 0x81, 0xf7, 0xde, 0xfb, 0x6f, 0xae, 0x5e, 0xfd, 0x0d, 0xdf, -0xf8, 0xc6, 0x1f, 0x02, 0x7b, 0x80, 0x43, 0x54, 0xab, 0xf3, 0xa4, 0xa9, -0x1b, 0x65, 0xe3, 0xca, 0x95, 0x0f, 0x58, 0x5c, 0xfc, 0xa8, 0x98, 0x33, -0x1c, 0x55, 0x96, 0x97, 0x53, 0x44, 0xc0, 0x39, 0x29, 0xf4, 0x2f, 0x38, -0x97, 0xe3, 0x9c, 0x43, 0x29, 0x30, 0xc6, 0x50, 0xad, 0x56, 0xe9, 0x76, -0xdb, 0x43, 0xc7, 0x7b, 0x05, 0x38, 0xf3, 0x48, 0x02, 0xaf, 0xbd, 0xf6, -0x4f, 0x27, 0xb5, 0xd6, 0x07, 0xa7, 0xa7, 0x6b, 0xcc, 0xce, 0x56, 0x71, -0x0e, 0x6e, 0xdd, 0xea, 0x93, 0x65, 0x76, 0x14, 0xfd, 0x61, 0x02, 0x96, -0x96, 0x6e, 0xf3, 0xf2, 0xcb, 0x27, 0x39, 0x72, 0x64, 0xff, 0xe8, 0xf7, -0x69, 0x6a, 0xf9, 0xc5, 0x2f, 0x96, 0x0b, 0x02, 0x8e, 0x46, 0x63, 0xe5, -0x81, 0x39, 0x49, 0x92, 0xf3, 0xb3, 0x9f, 0xfd, 0xcf, 0x28, 0x43, 0x9e, -0x84, 0xbb, 0x6f, 0x3d, 0x29, 0x2a, 0x95, 0x2a, 0xbd, 0x6e, 0xbb, 0xc8, -0x92, 0x3b, 0x79, 0xfa, 0xf4, 0x8f, 0xbf, 0x77, 0xbf, 0x9d, 0x3e, 0xb0, -0x06, 0x44, 0xe4, 0x94, 0x88, 0x63, 0xcf, 0x9e, 0xdd, 0x4c, 0x4f, 0x97, -0x69, 0xb7, 0x53, 0xd6, 0xd6, 0xd6, 0x27, 0x9a, 0x30, 0xef, 0xf5, 0xd6, -0x3a, 0xd6, 0xd6, 0x1a, 0x1b, 0x80, 0x81, 0x77, 0x9a, 0x21, 0x78, 0x11, -0xa1, 0xdd, 0x6e, 0x3e, 0x74, 0xce, 0x70, 0x1d, 0xf9, 0x9b, 0x3b, 0x10, -0x41, 0x2b, 0x85, 0x42, 0xa8, 0x56, 0xca, 0x80, 0x1a, 0x8a, 0xff, 0xc9, -0x5e, 0xaf, 0x7e, 0xfc, 0x7e, 0xbc, 0x1b, 0x08, 0x9c, 0x3b, 0xf7, 0x0f, -0x35, 0x11, 0xf7, 0x42, 0x10, 0x84, 0xcc, 0xce, 0xce, 0x14, 0x96, 0x39, -0x04, 0xef, 0x8a, 0x82, 0xe4, 0x89, 0x74, 0x3a, 0x2d, 0xe6, 0xe7, 0x6b, -0x88, 0x50, 0x48, 0xc1, 0x1f, 0xad, 0xd6, 0xb0, 0x25, 0x10, 0xfa, 0xfd, -0x1e, 0x7b, 0xf7, 0x4e, 0x3f, 0x30, 0xa7, 0x5e, 0xef, 0x8f, 0xa4, 0x33, -0x5e, 0xf4, 0x5e, 0xfb, 0x4a, 0x15, 0x55, 0xa0, 0x90, 0x51, 0x1c, 0x97, -0x40, 0xa9, 0xe2, 0x1a, 0x72, 0xf2, 0x7e, 0x02, 0x1b, 0x24, 0xe4, 0x9c, -0x3c, 0xa7, 0xb5, 0x50, 0xad, 0x56, 0xa8, 0x56, 0x23, 0xb2, 0xcc, 0x51, -0xaf, 0xf7, 0x0a, 0xcd, 0x7b, 0x8b, 0x1b, 0x46, 0xb0, 0xdb, 0xed, 0xf0, -0xc4, 0x13, 0xb3, 0x38, 0x1f, 0xb4, 0x51, 0xfa, 0x93, 0x64, 0xdc, 0x36, -0xf7, 0x7a, 0xdd, 0x4d, 0xe7, 0x0c, 0x06, 0x76, 0x43, 0xab, 0x2d, 0x4e, -0x0a, 0xd0, 0x0a, 0xa5, 0x14, 0x5a, 0x29, 0x9c, 0x38, 0x9c, 0x40, 0x10, -0x18, 0xd4, 0xd8, 0xc9, 0x8e, 0x3d, 0x34, 0x03, 0x22, 0x72, 0x5c, 0xc4, -0x51, 0xa9, 0x54, 0x28, 0x95, 0x42, 0xda, 0xed, 0x64, 0x43, 0xe4, 0x27, -0xdb, 0x82, 0x7b, 0xf7, 0xee, 0x32, 0x33, 0xb3, 0x13, 0x6b, 0xd9, 0x70, -0x34, 0x9b, 0xe9, 0x48, 0x16, 0x8d, 0xc6, 0xca, 0xa6, 0x73, 0xea, 0xf5, -0xde, 0xc4, 0xe2, 0x1d, 0xdb, 0xb0, 0x42, 0x11, 0x68, 0x4d, 0x60, 0x34, -0x46, 0x1b, 0xb4, 0x86, 0x52, 0x29, 0x9e, 0xc8, 0x10, 0xb5, 0x87, 0x66, -0xc0, 0xef, 0xa6, 0x34, 0x41, 0x10, 0x50, 0xa9, 0x94, 0xb8, 0x73, 0x67, -0x15, 0xe7, 0x6c, 0x11, 0x99, 0x8d, 0x0b, 0x38, 0x4d, 0x13, 0x0e, 0x1f, -0xfe, 0x3d, 0xac, 0x9d, 0xf4, 0x7c, 0x0a, 0x37, 0xf1, 0x04, 0xb2, 0x2c, -0xe5, 0xf0, 0xe1, 0xfd, 0x5b, 0xce, 0x19, 0x06, 0x04, 0xf1, 0xe0, 0x8d, -0x06, 0xa3, 0x15, 0x46, 0x6b, 0x10, 0x87, 0x28, 0x8d, 0x56, 0x3e, 0xfe, -0xc5, 0xef, 0x4f, 0x3c, 0x82, 0x80, 0xd4, 0xc0, 0x11, 0xc7, 0x71, 0xd1, -0xcb, 0x0f, 0x0a, 0x5b, 0xdb, 0x68, 0x9f, 0xa0, 0x68, 0x36, 0xd7, 0x28, -0x95, 0xe2, 0x07, 0xe4, 0xe1, 0xf5, 0x3d, 0x5c, 0xc0, 0xad, 0x4d, 0xe7, -0xdc, 0xb9, 0xd3, 0x2a, 0x9a, 0x3b, 0x87, 0x73, 0x82, 0xc2, 0x61, 0x94, -0xf2, 0xe0, 0x8d, 0xc6, 0x68, 0x8d, 0x20, 0x38, 0xbc, 0xa4, 0xfc, 0x5d, -0x37, 0x6f, 0x3a, 0xef, 0x5b, 0x03, 0xee, 0xf8, 0x50, 0x87, 0xce, 0x41, -0xbb, 0xdd, 0x9b, 0x88, 0xbc, 0xbf, 0xcc, 0xf0, 0xdc, 0xef, 0x77, 0xd9, -0xbb, 0x77, 0x6e, 0x14, 0xdd, 0xb1, 0x25, 0x8e, 0x9d, 0x65, 0x7d, 0xbd, -0xbf, 0xc5, 0x9c, 0x71, 0xb7, 0x2a, 0x62, 0xd1, 0x4a, 0xa1, 0x15, 0x18, -0x6d, 0x08, 0x4d, 0x80, 0x56, 0x3e, 0x4b, 0x5a, 0xb9, 0x91, 0x63, 0x6d, -0x8b, 0x80, 0xb7, 0x33, 0x5d, 0x80, 0xa0, 0x88, 0xfe, 0x64, 0xa7, 0x39, -0x26, 0x51, 0x2e, 0x07, 0x23, 0x57, 0xd9, 0x4a, 0x42, 0x95, 0x4a, 0xb8, -0xe9, 0x9c, 0x3c, 0x9f, 0x94, 0x8f, 0xbf, 0x9e, 0x29, 0xb4, 0x1f, 0x18, -0x8d, 0x02, 0x8c, 0x76, 0xe4, 0x4e, 0x91, 0x65, 0xe9, 0x16, 0x7d, 0xd6, -0xa6, 0x19, 0x10, 0x94, 0x72, 0x63, 0x02, 0xd6, 0x47, 0x80, 0x22, 0x03, -0xe3, 0x16, 0x19, 0x6a, 0xb5, 0x9d, 0xa3, 0xc8, 0x3a, 0x37, 0xbe, 0x46, -0xb7, 0x9b, 0x14, 0x91, 0x95, 0x2d, 0xe7, 0xb4, 0x5a, 0x5d, 0xf2, 0xdc, -0x4b, 0xc8, 0x28, 0xaf, 0xfb, 0xd0, 0x18, 0xa2, 0x30, 0x20, 0x0c, 0x8c, -0x6f, 0xea, 0xac, 0xb7, 0xd2, 0x2c, 0xcb, 0x70, 0x63, 0x02, 0x97, 0x1f, -0x99, 0x01, 0x85, 0x22, 0x49, 0x12, 0xda, 0xed, 0x5e, 0x91, 0x91, 0x71, -0x4f, 0xef, 0x5b, 0x09, 0x3f, 0x37, 0x0c, 0xcb, 0x1b, 0xa2, 0x3b, 0xbc, -0x47, 0x1c, 0x07, 0xf4, 0x7a, 0xeb, 0x88, 0x08, 0xc6, 0xc4, 0x9b, 0xce, -0xf1, 0xeb, 0xa2, 0x85, 0xc2, 0xa1, 0x95, 0xf6, 0xe0, 0x83, 0x80, 0x28, -0x30, 0x04, 0xc6, 0x90, 0xd9, 0x1c, 0xa5, 0x15, 0x0a, 0x45, 0xaf, 0xd7, -0x9d, 0xcc, 0x40, 0xf3, 0x7e, 0x02, 0x1b, 0x6c, 0xd4, 0x39, 0x77, 0x49, -0x44, 0x48, 0x93, 0x01, 0xfd, 0xde, 0x3a, 0xc3, 0xdd, 0x9c, 0x12, 0xc1, -0x15, 0x05, 0x2c, 0xcf, 0xf3, 0xc2, 0x46, 0x1b, 0x0f, 0xd8, 0xa3, 0x73, -0x3e, 0x6a, 0xd6, 0x5a, 0xf2, 0x7c, 0xeb, 0x39, 0xc6, 0x78, 0x97, 0x31, -0x4a, 0x11, 0x05, 0x86, 0x52, 0x14, 0x50, 0x8a, 0x43, 0xe2, 0x30, 0xc0, -0x14, 0xc0, 0x15, 0x8a, 0x24, 0x4d, 0x8a, 0xe8, 0x8f, 0x08, 0x5c, 0x7a, -0x14, 0x81, 0xa6, 0x73, 0x42, 0xaf, 0xd7, 0x61, 0xb5, 0xb1, 0x4a, 0xb9, -0x14, 0xa3, 0x47, 0x99, 0x11, 0x10, 0x8b, 0x38, 0x87, 0xcd, 0x73, 0x8c, -0x31, 0x9b, 0x6e, 0xda, 0x2b, 0x95, 0x88, 0x3c, 0xcf, 0xc8, 0xf3, 0x14, -0xad, 0xf5, 0xa6, 0x73, 0xa6, 0xa7, 0xa7, 0x30, 0x4a, 0x13, 0x87, 0x21, -0x95, 0x38, 0xa6, 0x1c, 0x45, 0x94, 0xc2, 0x80, 0x30, 0x08, 0x50, 0xba, -0xf0, 0x1c, 0x11, 0xd6, 0x9a, 0x4d, 0xac, 0x95, 0xc9, 0x0c, 0x3c, 0x20, -0xa1, 0xfb, 0x0b, 0xd9, 0x65, 0x41, 0xe8, 0x75, 0x7b, 0x0c, 0x06, 0x7d, -0xcf, 0x5c, 0x1c, 0x81, 0x02, 0x8d, 0xa0, 0x44, 0xa1, 0xf0, 0x99, 0x78, -0xe2, 0x89, 0x27, 0xe9, 0xf7, 0x93, 0x11, 0xb0, 0xe1, 0x39, 0x49, 0x52, -0xb2, 0x2c, 0x23, 0xcb, 0x32, 0xe6, 0xe6, 0xf6, 0x6d, 0x3a, 0x27, 0x4f, -0x73, 0xe2, 0x30, 0xa0, 0x1c, 0x45, 0x54, 0xe2, 0x88, 0x72, 0x1c, 0x11, -0x47, 0x61, 0xe1, 0xff, 0xe0, 0x10, 0xac, 0x38, 0x9a, 0xcd, 0xb5, 0x0d, -0x4d, 0xde, 0x76, 0x32, 0xf0, 0x8e, 0x6f, 0x01, 0x7a, 0xd8, 0x3c, 0x27, -0x4b, 0x32, 0x8c, 0x02, 0xad, 0x14, 0x81, 0x56, 0x04, 0x5a, 0xd0, 0x80, -0x12, 0xa8, 0x96, 0xab, 0x5c, 0xb9, 0x72, 0x9b, 0x5e, 0x6f, 0x0c, 0x70, -0x65, 0xa5, 0xc5, 0xb5, 0x6b, 0x77, 0xc9, 0xb2, 0x9c, 0x34, 0xcd, 0x30, -0x26, 0xe2, 0xf2, 0xe5, 0x0f, 0xe9, 0x74, 0xd6, 0x47, 0x73, 0xee, 0x2d, -0xad, 0xb2, 0xb4, 0x78, 0x8f, 0x6a, 0x29, 0x62, 0xaa, 0x12, 0xb3, 0xa3, -0x1c, 0x53, 0x8a, 0x42, 0x02, 0xe3, 0xbd, 0xdf, 0x8a, 0x23, 0xb7, 0x8e, -0xc6, 0xea, 0x1a, 0x49, 0x9a, 0x61, 0x9d, 0x1d, 0xc2, 0x7b, 0x67, 0x61, -0xe1, 0x6c, 0xeb, 0x7e, 0x02, 0x0f, 0x3c, 0x95, 0x38, 0xf3, 0xca, 0x4f, -0x3e, 0x0e, 0xc3, 0xe0, 0xe0, 0x17, 0xf7, 0xed, 0x63, 0xdf, 0xfc, 0x3c, -0x51, 0x18, 0x10, 0x68, 0x0d, 0x78, 0x3f, 0xce, 0xad, 0x25, 0xcd, 0x2d, -0xb9, 0xf5, 0x87, 0xb5, 0x0e, 0xeb, 0x7c, 0x41, 0xb2, 0x85, 0xfb, 0x88, -0x13, 0x9c, 0xf8, 0x1e, 0x87, 0xa2, 0xeb, 0xd4, 0x28, 0x02, 0xa3, 0x08, -0x03, 0x53, 0x48, 0x27, 0xa2, 0x1c, 0x85, 0x44, 0x61, 0x80, 0x56, 0x8a, -0xdc, 0x39, 0x06, 0x69, 0x46, 0x77, 0x30, 0xa0, 0xb3, 0x3e, 0xe0, 0xb7, -0x57, 0xfe, 0x97, 0x6e, 0xbf, 0x47, 0x96, 0xdb, 0xa1, 0x84, 0x5e, 0x58, -0x58, 0x38, 0xfb, 0xc0, 0xf3, 0xd4, 0x4d, 0x36, 0x34, 0xf2, 0x73, 0x67, -0xdd, 0x99, 0x7a, 0xbd, 0xce, 0x9e, 0x99, 0x3d, 0x44, 0x81, 0x46, 0xa1, -0x09, 0xb4, 0x77, 0x23, 0xa3, 0x7c, 0xda, 0xb2, 0x22, 0x7d, 0xf9, 0xf0, -0x2c, 0x16, 0xa5, 0x7d, 0x01, 0x14, 0x05, 0x1a, 0x05, 0xc6, 0xb7, 0xc5, -0x46, 0x19, 0x8c, 0xd6, 0x44, 0x81, 0x21, 0x0e, 0x03, 0x4a, 0x51, 0x48, -0x1c, 0x86, 0x44, 0xa1, 0x41, 0x29, 0x45, 0x5e, 0x04, 0x21, 0xcd, 0x73, -0xd2, 0xdc, 0x72, 0xfb, 0xce, 0x22, 0x83, 0x24, 0xc1, 0x8e, 0xfa, 0x24, -0xae, 0x6f, 0x06, 0x7e, 0x53, 0x02, 0x22, 0x72, 0xde, 0x3a, 0x7b, 0x26, -0xcd, 0x52, 0x56, 0xea, 0xf7, 0x88, 0xbf, 0xf0, 0x05, 0x02, 0xed, 0xdb, -0xdc, 0xc0, 0x28, 0x42, 0x09, 0x08, 0x8d, 0x26, 0x37, 0x9a, 0xcc, 0x6a, -0xd2, 0x5c, 0x79, 0x4f, 0xd7, 0xca, 0x67, 0x62, 0x18, 0x79, 0x0c, 0x1a, -0x30, 0x46, 0x11, 0x68, 0x43, 0x18, 0x68, 0x6f, 0x95, 0x61, 0x40, 0x14, -0x04, 0x04, 0xc6, 0x67, 0x35, 0x77, 0x96, 0xdc, 0x59, 0x06, 0x69, 0xc6, -0x20, 0xcb, 0x58, 0x69, 0xd4, 0x69, 0xac, 0x36, 0xc9, 0xf2, 0xbc, 0xd8, -0x5e, 0x02, 0x70, 0x6e, 0x33, 0xf0, 0x9b, 0x4a, 0x08, 0xe0, 0xbb, 0xdf, -0xfd, 0xbb, 0x9f, 0x86, 0x41, 0xf0, 0xcd, 0x52, 0x14, 0xf2, 0xd4, 0x97, -0x0e, 0x31, 0xbd, 0xab, 0x46, 0x29, 0x0c, 0x88, 0xc3, 0x80, 0xa0, 0xb0, -0x39, 0x27, 0xe2, 0xed, 0xd2, 0xba, 0x09, 0x39, 0x15, 0x1b, 0x19, 0x7c, -0xe5, 0xd0, 0xca, 0xf7, 0x36, 0xa1, 0xd1, 0x04, 0xc6, 0x14, 0x47, 0xd1, -0xa0, 0x89, 0x90, 0x59, 0x4b, 0x92, 0x65, 0xf4, 0x93, 0x8c, 0x5e, 0x92, -0x70, 0xaf, 0x5e, 0xe7, 0xe3, 0x1b, 0xd7, 0x59, 0x4f, 0x92, 0x49, 0x02, -0x97, 0x17, 0x16, 0xce, 0xfe, 0xc1, 0x56, 0x04, 0x36, 0xdd, 0x13, 0x87, -0x46, 0xbf, 0x9a, 0xe7, 0xd9, 0xc9, 0x14, 0x6a, 0xd7, 0x6f, 0xde, 0x22, -0x38, 0x14, 0xa0, 0xa7, 0x76, 0xf8, 0xaa, 0x19, 0x86, 0x18, 0xa3, 0x09, -0x14, 0x50, 0x54, 0x4d, 0xe7, 0x1c, 0xae, 0xd8, 0xd7, 0x4e, 0x5a, 0x86, -0x2e, 0xaa, 0xb7, 0xd6, 0x1a, 0x53, 0x54, 0x73, 0x41, 0xb0, 0xce, 0x15, -0xe0, 0x73, 0xfa, 0x49, 0x46, 0x3f, 0x49, 0x58, 0x69, 0x34, 0xb8, 0x71, -0xeb, 0x26, 0x49, 0x9a, 0x93, 0x5b, 0x3b, 0x69, 0x9d, 0xa7, 0xb6, 0x02, -0xbf, 0x65, 0x06, 0x00, 0x5e, 0xfe, 0xce, 0xdf, 0xfe, 0xb9, 0x52, 0xfa, -0xaf, 0x4b, 0x51, 0x44, 0xb5, 0x5c, 0xe2, 0xf0, 0xa1, 0x83, 0xd4, 0xa6, -0xa6, 0x28, 0x47, 0x61, 0x91, 0x09, 0xdf, 0x35, 0x6a, 0xad, 0x46, 0x75, -0xc6, 0xc3, 0x2b, 0x46, 0x91, 0x86, 0xd1, 0xf3, 0x0b, 0xf1, 0xc0, 0x73, -0xeb, 0xb5, 0xee, 0x23, 0x9f, 0xd2, 0x4f, 0x52, 0x16, 0xef, 0xdc, 0xe5, -0xee, 0xf2, 0x12, 0x83, 0x24, 0x25, 0xcd, 0xb2, 0x49, 0xed, 0x7f, 0x6f, -0x61, 0xe1, 0xec, 0xdb, 0x9f, 0x88, 0x00, 0xc0, 0xb7, 0x4f, 0x5f, 0x78, -0x27, 0x30, 0xe6, 0x64, 0x5c, 0x90, 0x38, 0x78, 0xe0, 0x00, 0xd3, 0x3b, -0xc7, 0x24, 0xa2, 0x20, 0xc0, 0x14, 0x44, 0x86, 0x3b, 0xaa, 0x91, 0x7e, -0xc4, 0x93, 0x71, 0xe2, 0x1d, 0xca, 0x4b, 0xcd, 0x2f, 0xd2, 0x41, 0x9a, -0xb1, 0x9e, 0xa6, 0xb4, 0xbb, 0x5d, 0x6e, 0x2c, 0x2e, 0xd2, 0x6c, 0xb7, -0x19, 0x24, 0x29, 0xb9, 0xcd, 0xc9, 0xed, 0x08, 0xfc, 0x4f, 0x17, 0x16, -0xce, 0x7e, 0xeb, 0x61, 0xe0, 0xe1, 0x11, 0x4f, 0xa7, 0x03, 0x63, 0x4e, -0x25, 0x59, 0x76, 0x49, 0x44, 0x8e, 0x39, 0x67, 0xb9, 0x7a, 0xed, 0x1a, -0xf3, 0x7b, 0x66, 0xd9, 0x3b, 0x37, 0x4b, 0x25, 0x8e, 0x89, 0x42, 0x4b, -0x14, 0x18, 0x42, 0x63, 0x30, 0x5a, 0xa1, 0x95, 0x46, 0xa9, 0xa2, 0xef, -0xa1, 0xb0, 0x56, 0xeb, 0xc8, 0x9d, 0x23, 0xcd, 0xf2, 0xc2, 0x65, 0x72, -0xba, 0xfd, 0x75, 0x96, 0x56, 0x96, 0x59, 0xa9, 0xd7, 0xe9, 0x0f, 0x52, -0xd2, 0x2c, 0xf5, 0x6b, 0xc8, 0x3d, 0x1e, 0xf8, 0x47, 0x66, 0x00, 0xe0, -0xe5, 0x6f, 0xff, 0x4d, 0x2d, 0xcd, 0xf3, 0x4b, 0x81, 0x31, 0xc7, 0x46, -0x1e, 0x5e, 0x2e, 0x31, 0xb7, 0x7b, 0x0f, 0x33, 0xb5, 0x1a, 0xe5, 0x52, -0x4c, 0x38, 0x5a, 0x9c, 0x9e, 0x00, 0x82, 0x5f, 0x13, 0xe2, 0xb7, 0xa2, -0x99, 0xb5, 0xa4, 0x59, 0x4e, 0xab, 0xd3, 0x61, 0xad, 0xd5, 0xa4, 0xbe, -0xba, 0xca, 0x7a, 0xe2, 0x81, 0x67, 0x79, 0xb1, 0x37, 0x18, 0x57, 0xdc, -0x6d, 0x83, 0xdf, 0x16, 0x01, 0x80, 0xef, 0x9c, 0xbe, 0x50, 0x4b, 0xd2, -0xf4, 0x1d, 0xad, 0xf5, 0x73, 0x51, 0x68, 0x08, 0x03, 0xdf, 0xb7, 0x44, -0x61, 0xc8, 0xce, 0x1d, 0x3b, 0xa8, 0x56, 0xaa, 0xec, 0xa8, 0x56, 0x88, -0xc2, 0x08, 0x63, 0x0c, 0x00, 0xd6, 0xe6, 0x24, 0x69, 0xc6, 0x60, 0x30, -0xa0, 0xdb, 0xeb, 0xd2, 0xea, 0x74, 0x48, 0xd2, 0x94, 0x41, 0x9a, 0x91, -0xe5, 0x99, 0xb7, 0x5e, 0x67, 0x47, 0x45, 0xb0, 0x18, 0xe7, 0x16, 0x16, -0xce, 0xbe, 0xba, 0x5d, 0xf0, 0xdb, 0x26, 0x30, 0x1c, 0xdf, 0x3a, 0xf5, -0xc6, 0x39, 0xa5, 0xd4, 0xf7, 0x8d, 0xd6, 0x18, 0xe3, 0x8b, 0x53, 0x50, -0x78, 0xba, 0xdf, 0x88, 0x98, 0x91, 0x84, 0xc0, 0x2f, 0x58, 0xe7, 0x86, -0x36, 0x9b, 0x8f, 0xec, 0xd6, 0x39, 0x37, 0x92, 0x4b, 0x71, 0xfb, 0xeb, -0xc0, 0xa9, 0x85, 0x85, 0xb3, 0xbf, 0x7c, 0x1c, 0xf0, 0x8f, 0x4d, 0x00, -0xe0, 0xa5, 0x97, 0x5e, 0x3f, 0xa6, 0x94, 0x3a, 0xaf, 0x95, 0x3a, 0xa1, -0x0a, 0xdd, 0x6b, 0xa5, 0xbc, 0x1b, 0xe1, 0xb7, 0x86, 0x30, 0xec, 0xff, -0x0b, 0x19, 0x15, 0x51, 0x76, 0x32, 0x7e, 0xe4, 0x58, 0xdc, 0xb6, 0x09, -0x9c, 0x7f, 0xdc, 0xa8, 0x7f, 0x2a, 0x02, 0xc3, 0xf1, 0xe2, 0x8b, 0x3f, -0x78, 0x4e, 0x29, 0x4e, 0x69, 0xa5, 0x5f, 0x50, 0x4a, 0xd5, 0xb4, 0x1e, -0x6e, 0xc0, 0xc7, 0x0f, 0x91, 0x87, 0x80, 0x9d, 0x13, 0x84, 0x0d, 0xc0, -0x2f, 0x03, 0xe7, 0xd9, 0xa2, 0x41, 0xfb, 0x7f, 0x21, 0x30, 0x39, 0x5e, -0x7c, 0xf1, 0x07, 0x27, 0x81, 0xe3, 0xf8, 0xc7, 0x1e, 0x07, 0x8b, 0x63, -0x38, 0x9a, 0x78, 0xc0, 0xd7, 0xf1, 0xed, 0xf0, 0xa5, 0x85, 0x85, 0xb3, -0x37, 0x3e, 0xf5, 0x4d, 0x8b, 0xf1, 0x3b, 0xfb, 0x4b, 0xfd, 0x67, 0x35, -0x3e, 0xf7, 0xff, 0xec, 0xf1, 0xb9, 0x27, 0xf0, 0x7f, 0xca, 0x8f, 0x08, -0x2e, 0x45, 0xb6, 0x8c, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, -0x44, 0xae, 0x42, 0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_debugger_play.c b/Source/Core/DolphinWX/resources/toolbar_debugger_play.c deleted file mode 100644 index c77e26af54..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_debugger_play.c +++ /dev/null @@ -1,278 +0,0 @@ -static const unsigned char toolbar_play_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, 0x14, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x34, -0x2f, 0x30, 0x34, 0x79, 0x5e, 0xa3, 0xd5, 0x00, 0x00, 0x0c, 0x3b, 0x49, -0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x5b, 0x8c, 0x5d, 0xd5, 0x79, -0xc7, 0x7f, 0x6b, 0xad, 0xbd, 0xf7, 0x39, 0x67, 0x8e, 0xc7, 0x3e, 0x33, -0xe3, 0xb1, 0x31, 0xc1, 0xc6, 0xc4, 0x02, 0xcb, 0x15, 0xc1, 0x6e, 0x22, -0x45, 0xb2, 0xaa, 0x82, 0x93, 0x87, 0xf8, 0x05, 0xc5, 0x48, 0x3c, 0x54, -0x02, 0xa1, 0x38, 0x8a, 0x5a, 0x72, 0x91, 0xb8, 0x3c, 0xf0, 0xe4, 0x54, -0x71, 0x84, 0x52, 0x22, 0x24, 0x0a, 0x76, 0x2b, 0x55, 0x69, 0x1f, 0x8c, -0x54, 0xcd, 0x6b, 0x45, 0xda, 0x07, 0xd2, 0x44, 0x45, 0xb6, 0xd3, 0x48, -0xb4, 0x02, 0xc9, 0x24, 0x10, 0xf0, 0x05, 0x18, 0xdb, 0x83, 0x2f, 0x33, -0x73, 0xe6, 0x7e, 0x2e, 0xfb, 0xb2, 0xbe, 0xaf, 0x0f, 0x7b, 0x9f, 0xcb, -0xd8, 0x33, 0xe3, 0x31, 0x44, 0x45, 0x2c, 0x69, 0xe9, 0xdc, 0xf7, 0xfe, -0xff, 0xbf, 0xff, 0xb7, 0xfe, 0xdf, 0xb7, 0xd6, 0x8c, 0x51, 0x55, 0xbe, -0xc8, 0xc3, 0x7e, 0xde, 0x00, 0x3e, 0xeb, 0x08, 0x3e, 0xcf, 0x9b, 0x3f, -0xf9, 0xe4, 0x3f, 0x9b, 0xce, 0xf3, 0x5f, 0xfc, 0xe2, 0x6f, 0x3e, 0x55, -0x2a, 0x98, 0x3f, 0x55, 0x0a, 0xfd, 0xfc, 0xe7, 0xbf, 0xda, 0xa9, 0xaa, -0x07, 0x54, 0xe5, 0x80, 0x88, 0xec, 0x14, 0xd1, 0xbd, 0xaa, 0x52, 0x13, -0x11, 0x44, 0x04, 0x55, 0x19, 0x17, 0x91, 0x8b, 0x22, 0x72, 0x52, 0x44, -0xde, 0x99, 0x9f, 0x6f, 0xfe, 0x72, 0x85, 0xcb, 0x28, 0xdc, 0x1e, 0x99, -0xcf, 0x44, 0xe0, 0xa5, 0x97, 0xde, 0xa8, 0xa9, 0xca, 0x23, 0xaa, 0xfa, -0xb4, 0xaa, 0xee, 0xcb, 0x81, 0x2a, 0x7d, 0xa0, 0xbb, 0xcf, 0x97, 0xbf, -0xf6, 0x88, 0xc8, 0x9c, 0x88, 0xfc, 0xbb, 0xf7, 0xf2, 0xaf, 0xad, 0x56, -0x76, 0xaa, 0x00, 0xdf, 0x99, 0x00, 0xba, 0x1e, 0x22, 0x9f, 0x9a, 0xc0, -0xcb, 0x2f, 0x9f, 0x3c, 0x0a, 0xfa, 0xb4, 0x88, 0xd6, 0x54, 0x95, 0x72, -0xb9, 0x44, 0xb5, 0x5a, 0x65, 0x70, 0x70, 0x10, 0x63, 0x0c, 0x51, 0x54, -0xea, 0x82, 0x4d, 0xd3, 0x94, 0x66, 0x73, 0x89, 0xa5, 0xa5, 0x26, 0x8b, -0x8b, 0xf3, 0x2c, 0x2e, 0x2e, 0x92, 0x65, 0x69, 0x3f, 0xb9, 0xd3, 0xde, -0xfb, 0xe7, 0x92, 0x84, 0x33, 0x05, 0x01, 0xe9, 0x90, 0xb9, 0x15, 0x89, -0xdb, 0x5e, 0x03, 0xc7, 0x8e, 0x9d, 0x3e, 0x60, 0x8c, 0x39, 0x61, 0xad, -0xdd, 0x69, 0xad, 0x65, 0x78, 0x78, 0x98, 0xbb, 0xef, 0xbe, 0x83, 0x91, -0x91, 0x0a, 0x03, 0x03, 0x01, 0x41, 0x60, 0x09, 0x02, 0x87, 0xf7, 0x20, -0x02, 0x8d, 0x46, 0xc2, 0xd2, 0x52, 0xcc, 0xfc, 0x7c, 0x93, 0x7a, 0x7d, -0x81, 0xe1, 0xe1, 0x21, 0x92, 0x24, 0x61, 0x7e, 0x7e, 0x96, 0xab, 0x57, -0xaf, 0x11, 0xc7, 0x31, 0xc0, 0x83, 0xc6, 0x98, 0xff, 0x09, 0x43, 0xff, -0x77, 0x69, 0x6a, 0x9f, 0x07, 0x4c, 0x41, 0xa2, 0x43, 0x64, 0xd5, 0x71, -0x5b, 0x0a, 0x1c, 0x3f, 0xfe, 0xdf, 0x47, 0x8d, 0x31, 0x3f, 0x01, 0xd8, -0xb2, 0x65, 0x94, 0xfb, 0xef, 0xdf, 0xce, 0x96, 0x2d, 0x25, 0x4a, 0x25, -0x8b, 0x08, 0x5d, 0xd0, 0x6b, 0x3d, 0x9f, 0x9c, 0x9c, 0x63, 0x62, 0xe2, -0x1a, 0xcd, 0x66, 0x0b, 0x91, 0x8c, 0xa9, 0xa9, 0x29, 0x26, 0x27, 0x27, -0xbb, 0x8a, 0xa8, 0xca, 0x6f, 0xbd, 0xd7, 0xbf, 0x52, 0x0d, 0xea, 0x80, -0x07, 0x64, 0x2d, 0x15, 0xd6, 0xad, 0xc0, 0xf1, 0xe3, 0xbf, 0x3d, 0x61, -0xad, 0x3d, 0x5c, 0x2a, 0x95, 0x78, 0xe0, 0x81, 0xdd, 0xdc, 0x77, 0xdf, -0x06, 0xca, 0x65, 0xd3, 0x05, 0xd7, 0x6a, 0x79, 0x66, 0x66, 0x12, 0x16, -0x16, 0x52, 0xda, 0xed, 0x7c, 0x7a, 0xef, 0x11, 0xf1, 0x44, 0x91, 0xa3, -0x54, 0x0a, 0xa9, 0x54, 0x4a, 0xd4, 0x6a, 0x83, 0x0c, 0x0d, 0xd5, 0xb8, -0x7a, 0x75, 0x92, 0x8f, 0x3f, 0xbe, 0xc8, 0xd0, 0xd0, 0x30, 0x95, 0x4a, -0x85, 0x89, 0x89, 0xcb, 0xb4, 0x5a, 0x2d, 0x80, 0xbf, 0x34, 0x46, 0xff, -0x53, 0x35, 0x3b, 0x08, 0x41, 0x9d, 0xe5, 0xeb, 0xe2, 0xa6, 0xb1, 0x2e, -0x05, 0x8e, 0x1d, 0x3b, 0x7d, 0xc2, 0x5a, 0x7b, 0xb8, 0x5a, 0xad, 0xf2, -0xe0, 0x83, 0xf7, 0xb3, 0x63, 0x47, 0xd8, 0x8d, 0x68, 0xbd, 0xee, 0xb9, -0x76, 0x2d, 0xa1, 0xd9, 0xcc, 0x10, 0xf1, 0x78, 0x2f, 0xc5, 0xa3, 0xef, -0x7b, 0x14, 0xbc, 0xf7, 0x78, 0x9f, 0x91, 0x65, 0x42, 0xad, 0xb6, 0x81, -0xad, 0x5b, 0xb7, 0x92, 0x24, 0x19, 0xef, 0xbe, 0xfb, 0x1e, 0x69, 0x1a, -0xe3, 0xbd, 0xe7, 0xea, 0xd5, 0x2b, 0xcc, 0xcf, 0xcf, 0x75, 0xd6, 0xc5, -0x1f, 0x54, 0xcd, 0xb7, 0x8c, 0x89, 0xa6, 0x01, 0xbf, 0x9a, 0x0a, 0xb7, -0x2c, 0x64, 0x2f, 0xbf, 0x7c, 0xf2, 0x04, 0x70, 0x78, 0xd3, 0xa6, 0x1a, -0x07, 0x0f, 0x7e, 0x85, 0xed, 0xdb, 0xc3, 0x22, 0xe2, 0x70, 0xfe, 0x7c, -0xc6, 0xc4, 0x44, 0x46, 0x1c, 0x2b, 0xc6, 0x18, 0xc0, 0x60, 0x0a, 0x67, -0xcf, 0x1f, 0x4d, 0x31, 0xbb, 0xf1, 0x02, 0xa0, 0x5e, 0x9f, 0xe5, 0xf7, -0xbf, 0x7f, 0x97, 0xd9, 0xd9, 0x59, 0xf6, 0xec, 0xf9, 0x33, 0xac, 0x75, -0x88, 0x28, 0x5b, 0xb6, 0x6c, 0xa5, 0x5c, 0x1e, 0xe8, 0xfc, 0xee, 0x2b, -0xaa, 0xfe, 0x5f, 0x00, 0x77, 0xc3, 0x45, 0xd6, 0x4f, 0xe0, 0xa5, 0x97, -0xfe, 0xeb, 0x69, 0x55, 0x3d, 0x5c, 0x2e, 0x97, 0xf9, 0xc6, 0x37, 0x76, -0x33, 0x3c, 0x1c, 0x20, 0x02, 0xd3, 0xd3, 0xca, 0x87, 0x1f, 0x2a, 0xed, -0xf6, 0xad, 0xe8, 0xd3, 0x25, 0x94, 0x3f, 0xef, 0xbd, 0x50, 0x85, 0x4f, -0x3e, 0x99, 0xe0, 0xc2, 0x85, 0x0b, 0xec, 0xda, 0x75, 0x5f, 0xd7, 0x7e, -0xb7, 0x6e, 0xdd, 0x4a, 0x10, 0x74, 0x33, 0xfb, 0xe1, 0x2c, 0x6b, 0x3c, -0x05, 0xd8, 0xfe, 0xa2, 0xb7, 0x2e, 0x02, 0x2f, 0xbe, 0xf8, 0x9b, 0x7d, -0xaa, 0xfa, 0x8a, 0x73, 0x8e, 0xfd, 0xfb, 0xef, 0x67, 0x78, 0x38, 0x8f, -0xfc, 0xa5, 0x4b, 0x9e, 0x2b, 0x57, 0x72, 0xfb, 0x03, 0xa5, 0x93, 0x81, -0x2b, 0xa7, 0x62, 0xef, 0xf3, 0xce, 0xeb, 0x1e, 0x87, 0xfc, 0xb3, 0x66, -0x73, 0x91, 0x4b, 0x97, 0xc6, 0xd9, 0xb6, 0xed, 0x4b, 0xa8, 0x2a, 0xc6, -0x58, 0x46, 0x47, 0x47, 0xe9, 0x4b, 0xfb, 0x23, 0x69, 0xba, 0x74, 0xcf, -0x6a, 0x38, 0xd7, 0x50, 0x40, 0x4f, 0xa8, 0xc2, 0x9e, 0x3d, 0xf7, 0xb2, -0x7d, 0x7b, 0x05, 0x11, 0xb8, 0x78, 0x31, 0x61, 0x66, 0x26, 0x2b, 0x0a, -0x91, 0xef, 0x16, 0xa7, 0x5f, 0xff, 0xfa, 0x37, 0x34, 0x1a, 0x4b, 0xa8, -0x6a, 0x97, 0x48, 0x0f, 0x78, 0x8f, 0x41, 0xfe, 0x9e, 0x2e, 0xfb, 0x4c, -0x15, 0x16, 0x17, 0x17, 0x98, 0x9b, 0x9b, 0x25, 0x0c, 0xcb, 0xa8, 0x0a, -0xa5, 0x52, 0x99, 0x0d, 0x1b, 0x06, 0x3b, 0x5f, 0xda, 0xa4, 0x2a, 0x7f, -0xcb, 0x2a, 0x69, 0xb4, 0x22, 0x81, 0x17, 0x5e, 0x78, 0xfd, 0x3b, 0xaa, -0xba, 0x6f, 0xe3, 0xc6, 0x8d, 0xdc, 0x7b, 0xef, 0x08, 0xc6, 0x18, 0xa6, -0xa7, 0x53, 0xea, 0xf5, 0x14, 0xef, 0xa5, 0x3b, 0x3b, 0x85, 0xe8, 0xfa, -0xf5, 0xeb, 0xbc, 0xfe, 0xfa, 0xaf, 0x38, 0x7b, 0xf6, 0x5c, 0x97, 0x44, -0x3e, 0x3b, 0xc0, 0x6f, 0x34, 0x12, 0x2d, 0xc0, 0xf7, 0xde, 0x5f, 0x5c, -0x5c, 0x20, 0x4d, 0x63, 0x44, 0xf2, 0xf7, 0x6b, 0xb5, 0x21, 0x54, 0xbb, -0xca, 0x3e, 0x11, 0xc7, 0x73, 0x2b, 0xaa, 0xb0, 0x22, 0x01, 0x55, 0x3d, -0xaa, 0xaa, 0xec, 0xd9, 0xf3, 0x65, 0x36, 0x6e, 0x8c, 0x68, 0xb7, 0x85, -0x89, 0x89, 0x56, 0x5f, 0x1b, 0xd0, 0x53, 0x20, 0x4f, 0x25, 0x38, 0x78, -0xf0, 0x01, 0xce, 0x9d, 0xfb, 0x23, 0xa7, 0x4e, 0x9d, 0x5e, 0xa6, 0xc6, -0x72, 0x32, 0x5a, 0xa4, 0x89, 0x29, 0xc0, 0xd1, 0x05, 0x2c, 0xa2, 0xa4, -0x69, 0xa7, 0x16, 0x28, 0xce, 0x39, 0xaa, 0xd5, 0x2a, 0xc6, 0x74, 0xbe, -0xc7, 0x53, 0xeb, 0x22, 0xf0, 0xfc, 0xf3, 0xff, 0x71, 0x48, 0x55, 0x77, -0x0e, 0x0d, 0xd5, 0x18, 0x1d, 0xad, 0x22, 0x02, 0x97, 0x2f, 0x37, 0x49, -0xd3, 0x1e, 0xe0, 0x0e, 0x81, 0x8e, 0x45, 0x02, 0x3c, 0xfc, 0xf0, 0xd7, -0xf8, 0xf1, 0x8f, 0x1f, 0x65, 0x68, 0x28, 0xe2, 0x8d, 0x37, 0x4e, 0xf1, -0xe1, 0x87, 0x1f, 0xa1, 0x2a, 0x37, 0x11, 0xe9, 0x57, 0xa4, 0xa3, 0x50, -0x4e, 0x42, 0x6e, 0x50, 0xcc, 0x30, 0x30, 0x50, 0x2d, 0xf2, 0x46, 0x01, -0x39, 0xb4, 0xd2, 0x42, 0xbe, 0x89, 0x80, 0xaa, 0x1e, 0x56, 0x15, 0x36, -0x6f, 0x1e, 0x61, 0x68, 0xa8, 0xc2, 0xc2, 0x42, 0xc2, 0xec, 0x6c, 0xeb, -0x06, 0xe0, 0xd2, 0xf5, 0xfb, 0x99, 0x99, 0x3a, 0x77, 0xdd, 0x35, 0x82, -0x08, 0x0c, 0x0d, 0x0d, 0xf2, 0xec, 0xb3, 0x0f, 0xf3, 0xd8, 0x63, 0x7f, -0xc1, 0x47, 0x1f, 0x5d, 0xe0, 0xcd, 0x37, 0xff, 0x97, 0x66, 0xb3, 0xd9, -0x8d, 0x7c, 0x47, 0x89, 0x4e, 0xd4, 0x3b, 0xcd, 0x9d, 0xaa, 0x14, 0x37, -0x17, 0x50, 0xc5, 0x1a, 0x83, 0x41, 0xa9, 0x0e, 0x54, 0x00, 0xd3, 0x49, -0xfe, 0xbb, 0x1b, 0x8d, 0xe9, 0x7d, 0x6b, 0x12, 0x38, 0x7a, 0xf4, 0xdf, -0x6a, 0xaa, 0xf2, 0x48, 0x10, 0x84, 0x8c, 0x8e, 0x0e, 0x17, 0x96, 0xd9, -0xa2, 0xbf, 0xa3, 0xec, 0x00, 0xef, 0xa4, 0x50, 0x1c, 0x27, 0x54, 0x2a, -0x51, 0xb7, 0xb0, 0x89, 0xc0, 0xd7, 0xbf, 0x7e, 0x1f, 0xcf, 0x3f, 0xff, -0x18, 0x77, 0xdd, 0xb5, 0x91, 0xdf, 0xfd, 0xee, 0x4d, 0xc6, 0xc7, 0x2f, -0xf5, 0xa9, 0xd1, 0xe9, 0x4a, 0x57, 0x56, 0xc5, 0x98, 0xa2, 0x0a, 0x18, -0x70, 0xce, 0x51, 0x2a, 0x95, 0xa1, 0x9b, 0x72, 0x7a, 0xe8, 0x46, 0x02, -0xcb, 0x5a, 0x09, 0x11, 0x7d, 0xc8, 0x5a, 0xa5, 0x5a, 0x1d, 0xa0, 0x5a, -0x8d, 0x48, 0x53, 0x61, 0x7a, 0xba, 0x51, 0xf8, 0x77, 0x6e, 0x71, 0xd0, -0xf3, 0xf3, 0x1e, 0xa0, 0xbc, 0xdf, 0xe9, 0x1f, 0x51, 0x14, 0xf1, 0xbd, -0xef, 0x7d, 0x8b, 0xf3, 0xe7, 0xaf, 0x30, 0x36, 0x76, 0x8a, 0xc9, 0xc9, -0x29, 0x76, 0xef, 0xbe, 0x97, 0x30, 0x74, 0xcb, 0xa2, 0x2f, 0x22, 0xa8, -0x68, 0x01, 0xda, 0x60, 0x8c, 0xc1, 0x1a, 0x83, 0xa8, 0x20, 0x0a, 0x41, -0xe0, 0x30, 0x3d, 0x03, 0xd8, 0xbb, 0xa6, 0x02, 0xaa, 0xba, 0x4f, 0x55, -0x18, 0x18, 0x18, 0xa0, 0x5c, 0x0e, 0x59, 0x58, 0x88, 0x97, 0x45, 0x7e, -0x79, 0x5b, 0xe0, 0xbb, 0xef, 0xe7, 0xe4, 0x57, 0x9e, 0xbb, 0x76, 0xdd, -0xc9, 0x73, 0xcf, 0x3d, 0xca, 0xde, 0xbd, 0x3b, 0x78, 0xfb, 0xed, 0x33, -0x4c, 0x4c, 0x5c, 0x2d, 0xae, 0xd9, 0x59, 0xbc, 0xd2, 0x8b, 0x3e, 0x86, -0xc0, 0x5a, 0x02, 0x67, 0x71, 0xd6, 0x61, 0x2d, 0x94, 0xcb, 0xa5, 0x3e, -0x85, 0xa8, 0xdd, 0x82, 0x80, 0x1c, 0x10, 0x51, 0x82, 0x20, 0x60, 0x60, -0xa0, 0xcc, 0xc2, 0x42, 0xeb, 0x26, 0xc7, 0x59, 0xee, 0x42, 0x9e, 0x46, -0xa3, 0x41, 0xb9, 0x5c, 0xc2, 0x7b, 0x56, 0x9d, 0x51, 0x14, 0xf1, 0xed, -0x6f, 0xef, 0xe7, 0xa9, 0xa7, 0x0e, 0x91, 0xa6, 0x0d, 0x3e, 0xf8, 0xe0, -0x3c, 0xed, 0x76, 0xdc, 0x33, 0x01, 0xcd, 0xc1, 0x3b, 0x9b, 0xcf, 0xc0, -0x5a, 0x9c, 0x31, 0x58, 0x63, 0xb1, 0x26, 0x8f, 0x7f, 0x91, 0x69, 0x07, -0x6e, 0xa5, 0x40, 0x2d, 0x2f, 0x24, 0xa5, 0xa2, 0x97, 0x6f, 0xaf, 0xe8, -0x3c, 0xbd, 0x5a, 0xe0, 0x69, 0x36, 0x1b, 0x6c, 0xdb, 0x36, 0xb2, 0xaa, -0x02, 0xfd, 0x73, 0xdb, 0xb6, 0x11, 0x9e, 0x79, 0xe6, 0x51, 0xf6, 0xef, -0xdf, 0xcd, 0xc4, 0xc4, 0x65, 0xea, 0xf5, 0xd9, 0x5c, 0x09, 0x04, 0x6b, -0xc8, 0x09, 0x38, 0x5b, 0x4c, 0x83, 0xb5, 0x79, 0x4a, 0xf5, 0x9c, 0xe8, -0xe6, 0x71, 0xc3, 0x1a, 0x90, 0x7d, 0x9d, 0x3c, 0x14, 0x81, 0x85, 0x85, -0x06, 0xc6, 0xd8, 0x6e, 0x6e, 0xc2, 0xf2, 0x7e, 0x26, 0xff, 0x8d, 0xae, -0xb8, 0x06, 0xd6, 0x1a, 0xdf, 0xfc, 0xe6, 0xd7, 0xf8, 0xea, 0x57, 0x77, -0xf3, 0xc6, 0x1b, 0xef, 0x30, 0x39, 0x39, 0x87, 0x35, 0xa6, 0x20, 0xe0, -0x08, 0x5d, 0x80, 0x35, 0xf9, 0x75, 0xad, 0x91, 0xa2, 0x66, 0xac, 0xde, -0x51, 0x2f, 0x23, 0x90, 0xdb, 0x99, 0x2d, 0x22, 0x0e, 0x22, 0x82, 0x31, -0xfd, 0x9d, 0xe6, 0x72, 0x12, 0xcb, 0xad, 0x71, 0xfd, 0x04, 0x00, 0xca, -0xe5, 0x32, 0x43, 0x43, 0x83, 0x4c, 0x5e, 0x9f, 0xc3, 0x18, 0x83, 0x2b, -0x72, 0x3f, 0x70, 0x16, 0x03, 0x38, 0x2b, 0x64, 0x62, 0x48, 0xd3, 0x64, -0x95, 0x3e, 0x6b, 0x05, 0x02, 0x22, 0x8a, 0x31, 0xd2, 0x23, 0xe0, 0xf3, -0x08, 0x50, 0x28, 0xd0, 0x6b, 0x91, 0x7b, 0xa3, 0xd5, 0x6a, 0x22, 0x32, -0x74, 0x5b, 0x0a, 0xbc, 0xff, 0xfe, 0x25, 0xde, 0x7e, 0xfb, 0x1c, 0xad, -0x56, 0x8c, 0x2b, 0x52, 0x27, 0x74, 0x8e, 0x28, 0x0c, 0x08, 0x83, 0xdc, -0xa5, 0x8c, 0xcf, 0xad, 0x34, 0x4d, 0x53, 0xa4, 0x47, 0xe0, 0xcc, 0x9a, -0x04, 0x54, 0x05, 0x83, 0x21, 0x8e, 0x63, 0x16, 0x16, 0x1a, 0x85, 0x22, -0xbd, 0x9e, 0x5e, 0xc4, 0x70, 0x43, 0x06, 0xd1, 0x6c, 0xb6, 0xb9, 0xe3, -0x8e, 0x91, 0x75, 0x29, 0x30, 0x35, 0x35, 0xc7, 0x5b, 0x6f, 0x9d, 0x63, -0x6a, 0x6a, 0x96, 0x2c, 0xcb, 0x30, 0x08, 0xd6, 0xd8, 0x1c, 0x7c, 0x10, -0x10, 0x05, 0x8e, 0xc0, 0x39, 0x52, 0x9f, 0x61, 0xac, 0xc1, 0x60, 0xba, -0x6d, 0x49, 0x31, 0xe6, 0xd6, 0x24, 0x20, 0x22, 0x27, 0x8d, 0xb5, 0x07, -0x92, 0xb8, 0x4d, 0xb3, 0xd1, 0xa2, 0x93, 0x77, 0xa6, 0x53, 0x3d, 0xa1, -0xdb, 0xcb, 0x40, 0xaf, 0xf8, 0x84, 0x61, 0xb4, 0xa6, 0x02, 0xcd, 0x66, -0xcc, 0x3b, 0xef, 0x5c, 0xe0, 0xf2, 0xe5, 0xeb, 0xa4, 0x69, 0x4a, 0x96, -0x79, 0x50, 0xc1, 0x19, 0x43, 0x14, 0x38, 0xca, 0x51, 0x40, 0xb9, 0x14, -0x12, 0x05, 0x0e, 0x80, 0xcc, 0xe7, 0xe0, 0xe3, 0x24, 0x2e, 0xa2, 0xdf, -0x25, 0x70, 0xf2, 0x56, 0x04, 0xe6, 0x72, 0xd6, 0x8b, 0xcc, 0xd4, 0x67, -0xa8, 0x94, 0x4b, 0x24, 0x71, 0x82, 0xa8, 0x60, 0xc8, 0x15, 0x52, 0x01, -0x51, 0xed, 0x1d, 0xde, 0xdc, 0x62, 0x0d, 0x9c, 0x3d, 0x7b, 0x89, 0xf3, -0xe7, 0x2f, 0xd3, 0x6a, 0xb5, 0xc9, 0xb2, 0x0c, 0xdf, 0x05, 0x6f, 0x29, -0x85, 0x01, 0x03, 0xa5, 0x88, 0x4a, 0x14, 0x51, 0x0e, 0x03, 0x9c, 0x73, -0x64, 0xe2, 0xbb, 0xd7, 0x9d, 0x9d, 0x9b, 0xc3, 0x7b, 0xed, 0x57, 0xe0, -0x56, 0x29, 0xa4, 0x67, 0x14, 0x7d, 0xa4, 0xb1, 0xd4, 0xa0, 0xdd, 0x6e, -0x52, 0xad, 0x0e, 0x80, 0x0a, 0x81, 0x31, 0x39, 0x68, 0x35, 0x18, 0x3c, -0x5e, 0xa4, 0x78, 0xdd, 0xe9, 0x20, 0x6f, 0x76, 0xa1, 0x7a, 0x7d, 0x9e, -0x33, 0x67, 0xce, 0xb2, 0xb8, 0xd8, 0xe8, 0x15, 0x3e, 0xef, 0x31, 0x28, -0xce, 0x5a, 0xa2, 0xc0, 0x51, 0x89, 0xa2, 0x9c, 0x40, 0x29, 0x22, 0x0a, -0x1d, 0xaa, 0x90, 0x79, 0x8f, 0xa0, 0x78, 0x15, 0xe6, 0xe6, 0x66, 0x97, -0x35, 0x79, 0xeb, 0x51, 0xe0, 0x35, 0x63, 0xcc, 0xd1, 0x46, 0xa3, 0x81, -0xcf, 0x32, 0xd2, 0x38, 0xc5, 0x19, 0x8a, 0xf2, 0x0e, 0x06, 0x21, 0xf3, -0x79, 0x4a, 0x21, 0x79, 0x15, 0x6d, 0x36, 0x5b, 0xc5, 0x21, 0x56, 0x7e, -0x8d, 0x56, 0xab, 0xcd, 0x7b, 0xef, 0x7d, 0xc8, 0x95, 0x2b, 0x93, 0x85, -0xc5, 0x7a, 0xb4, 0x28, 0x56, 0xce, 0x1a, 0x9c, 0xc9, 0xc1, 0x97, 0xc2, -0x80, 0x6a, 0xb9, 0xc4, 0x40, 0x29, 0x22, 0x0c, 0x02, 0xac, 0x85, 0x24, -0xf3, 0x78, 0x15, 0x32, 0x2f, 0xd4, 0x67, 0x66, 0x89, 0x93, 0x14, 0x2f, -0xdd, 0xc8, 0xbc, 0x36, 0x36, 0x76, 0x64, 0xfe, 0x46, 0x02, 0xcb, 0x0a, -0xd9, 0xf1, 0xe3, 0x7f, 0xfd, 0x8e, 0x78, 0x3f, 0xee, 0xc5, 0x53, 0xaf, -0x4f, 0xe3, 0xb3, 0x04, 0x63, 0x20, 0xb0, 0x10, 0x58, 0x4b, 0xe4, 0x1c, -0x91, 0xb3, 0x84, 0xce, 0x10, 0x58, 0x70, 0x46, 0xd9, 0xba, 0x65, 0x33, -0x23, 0x23, 0x23, 0x78, 0x0f, 0x67, 0xcf, 0x8e, 0x73, 0xfa, 0xd4, 0x5b, -0x5c, 0xbb, 0x32, 0x09, 0x2a, 0x18, 0x15, 0xac, 0xe6, 0x37, 0x89, 0xac, -0xa5, 0x12, 0x06, 0x54, 0xcb, 0x11, 0x1b, 0x2a, 0x65, 0x36, 0x55, 0x07, -0x18, 0xac, 0x94, 0xf3, 0xe8, 0x07, 0xf9, 0xbe, 0x5d, 0x44, 0x49, 0x33, -0x4f, 0x9c, 0xa6, 0x5c, 0x9f, 0xbc, 0x8e, 0x97, 0xac, 0x3f, 0xfa, 0xaf, -0xde, 0x08, 0xfe, 0x26, 0x05, 0x8a, 0x44, 0xfa, 0xa5, 0x78, 0x79, 0x7a, -0x7a, 0x7a, 0x9a, 0xcd, 0xc3, 0x9b, 0x89, 0x02, 0x8b, 0xc1, 0x12, 0xd8, -0xdc, 0x8d, 0x9c, 0xc9, 0x01, 0xa5, 0x05, 0xfb, 0x5d, 0x77, 0x7f, 0x89, -0xb9, 0xd9, 0x05, 0xde, 0x7f, 0xf7, 0x2c, 0xcd, 0x56, 0x0b, 0x15, 0xcd, -0xdb, 0x00, 0x0c, 0xb8, 0xbc, 0x2d, 0x76, 0xc6, 0x75, 0xd3, 0xa6, 0x14, -0x06, 0x94, 0xa3, 0x90, 0x52, 0x18, 0x12, 0x85, 0x0e, 0x63, 0x0c, 0x99, -0x17, 0xbc, 0x08, 0x49, 0x96, 0x91, 0x64, 0x9e, 0x4f, 0xae, 0x4c, 0xd0, -0x8e, 0x63, 0x7c, 0xb7, 0x4f, 0x62, 0x7c, 0x6c, 0xec, 0xc8, 0x4a, 0x87, -0xc1, 0x37, 0x13, 0x50, 0xd5, 0x57, 0xbc, 0xf8, 0xa7, 0x93, 0x34, 0x61, -0x6a, 0xfa, 0x3a, 0xa5, 0x3b, 0xef, 0x24, 0xb0, 0x79, 0x9b, 0x1b, 0x38, -0x43, 0xa8, 0x01, 0xa1, 0xb3, 0x64, 0xce, 0x92, 0x7a, 0x4b, 0x92, 0x19, -0xce, 0xbf, 0xfb, 0x01, 0xc6, 0x0b, 0xe5, 0x20, 0x40, 0x34, 0xef, 0x2e, -0xc1, 0x61, 0x01, 0xe7, 0x0c, 0x81, 0x75, 0x84, 0x81, 0xcd, 0xad, 0x32, -0x0c, 0x88, 0x82, 0x80, 0xc0, 0x59, 0xc0, 0x90, 0x89, 0x27, 0x13, 0x4f, -0x3b, 0x49, 0x69, 0xa7, 0x29, 0x53, 0xf5, 0x69, 0xea, 0x33, 0x73, 0xa4, -0x59, 0x86, 0x48, 0x37, 0xfc, 0x47, 0x57, 0x02, 0x0f, 0xab, 0x1c, 0x6c, -0xfd, 0xe8, 0x47, 0xff, 0xf4, 0x6a, 0x18, 0x04, 0xdf, 0x29, 0x47, 0x21, -0xf7, 0x7e, 0xf9, 0x1e, 0x86, 0x36, 0xd5, 0x28, 0x87, 0x01, 0xa5, 0x30, -0x20, 0x28, 0xfc, 0x59, 0x54, 0xf1, 0xde, 0x93, 0x79, 0x21, 0xf3, 0x9e, -0xcc, 0xfb, 0xc2, 0x31, 0x84, 0x7c, 0x3f, 0x05, 0xd6, 0xe4, 0xbd, 0x4d, -0xe8, 0x2c, 0x81, 0x73, 0xc5, 0x2c, 0x1a, 0x34, 0x55, 0x52, 0x9f, 0xa7, -0x4b, 0x33, 0x4e, 0x69, 0xc4, 0x31, 0xd7, 0xa7, 0xa7, 0xf9, 0xf8, 0xe2, -0x38, 0xad, 0x38, 0xee, 0x27, 0x70, 0x66, 0x6c, 0xec, 0xc8, 0x9f, 0xaf, -0x46, 0x60, 0xc5, 0xa3, 0xc5, 0xd0, 0xd9, 0x9f, 0x66, 0x59, 0x7a, 0x28, -0x81, 0xda, 0xf8, 0xa5, 0xcb, 0x04, 0xf7, 0x04, 0xd8, 0xc1, 0x0d, 0x79, -0xd5, 0x0c, 0x43, 0x9c, 0xb3, 0x04, 0x06, 0x28, 0xaa, 0xa6, 0x14, 0xae, -0x24, 0xa2, 0xfd, 0xc7, 0x11, 0xf9, 0xce, 0xca, 0x80, 0x2d, 0xba, 0x4b, -0x63, 0x0c, 0x8a, 0xe2, 0x45, 0x0a, 0xf0, 0x19, 0xcd, 0x38, 0xa5, 0x19, -0xc7, 0x4c, 0xd5, 0xeb, 0x5c, 0xbc, 0x7c, 0x89, 0x38, 0xc9, 0xc8, 0xbc, -0xef, 0xb7, 0xce, 0xc3, 0xab, 0x81, 0x5f, 0x55, 0x01, 0x80, 0x1f, 0xfe, -0xe0, 0x1f, 0x9f, 0x35, 0xc6, 0xfe, 0x7d, 0x39, 0x8a, 0xa8, 0x56, 0xca, -0xec, 0xba, 0x67, 0x27, 0xb5, 0xc1, 0x41, 0x2a, 0x51, 0x58, 0x28, 0x61, -0x71, 0xd6, 0x62, 0xad, 0xe9, 0xd6, 0x99, 0x1c, 0x5e, 0x31, 0x0a, 0x19, -0x3a, 0x85, 0x5b, 0x35, 0x07, 0x9e, 0xf9, 0x3c, 0xd7, 0xf3, 0xc8, 0x27, -0x34, 0xe3, 0x84, 0x89, 0x2b, 0x57, 0xb9, 0x3a, 0x79, 0x8d, 0x76, 0x9c, -0x90, 0xa4, 0x69, 0x7f, 0xee, 0x3f, 0x33, 0x36, 0x76, 0xe4, 0xd8, 0xa7, -0x22, 0x00, 0xf0, 0xfd, 0x27, 0x8f, 0xbf, 0x16, 0x38, 0x77, 0xa8, 0x54, -0x90, 0xd8, 0xb9, 0x63, 0x07, 0x43, 0x1b, 0x7b, 0x24, 0xa2, 0x20, 0xc0, -0x15, 0x44, 0x3a, 0x3b, 0xaa, 0x6e, 0xfe, 0x14, 0xc5, 0x4e, 0x8a, 0xed, -0x63, 0x9e, 0x6a, 0xf9, 0x22, 0x6d, 0x27, 0x29, 0xad, 0x24, 0x61, 0x61, -0x69, 0x89, 0x8b, 0x13, 0x13, 0xcc, 0x2d, 0x2c, 0xd0, 0x8e, 0x13, 0x32, -0x9f, 0x91, 0xf9, 0x2e, 0xf8, 0x57, 0xc7, 0xc6, 0x8e, 0x7c, 0x77, 0x2d, -0xf0, 0x70, 0x8b, 0xd3, 0xe9, 0xc0, 0xb9, 0xc3, 0x71, 0x9a, 0x9e, 0x54, -0xd5, 0xbd, 0x22, 0x9e, 0xf3, 0x1f, 0x7d, 0xc4, 0xd6, 0xcd, 0xa3, 0xdc, -0xb1, 0x65, 0x94, 0x81, 0x52, 0x89, 0x28, 0xf4, 0x44, 0x81, 0x23, 0x74, -0x0e, 0x67, 0xf3, 0x0d, 0x48, 0xe7, 0x18, 0x44, 0xc9, 0x81, 0x7b, 0x2f, -0x64, 0x22, 0x24, 0x69, 0x56, 0xb8, 0x4c, 0xc6, 0x52, 0xb3, 0xc5, 0xb5, -0xa9, 0x49, 0xa6, 0xa6, 0xa7, 0x69, 0xb6, 0x13, 0x92, 0x34, 0xc9, 0xd7, -0x90, 0xdc, 0x1e, 0xf8, 0x5b, 0x2a, 0x00, 0xf0, 0xc3, 0xef, 0xff, 0x43, -0x2d, 0xc9, 0xb2, 0x93, 0x81, 0x73, 0x7b, 0xc3, 0xc0, 0x51, 0x0a, 0x43, -0x06, 0x2a, 0x65, 0xb6, 0x8c, 0x6c, 0x66, 0xb8, 0x56, 0xa3, 0x52, 0x2e, -0x11, 0x76, 0x17, 0x67, 0x4e, 0x00, 0xcd, 0xdb, 0x0d, 0xd1, 0x7c, 0xe3, -0x93, 0x7a, 0x4f, 0x92, 0x66, 0xcc, 0x2f, 0x2e, 0x32, 0x3b, 0x3f, 0xc7, -0xf4, 0xcc, 0x0c, 0xad, 0x38, 0x07, 0x9e, 0x66, 0x45, 0x95, 0xee, 0x55, -0xdc, 0x75, 0x83, 0x5f, 0x17, 0x01, 0x80, 0x1f, 0x3c, 0x79, 0xbc, 0x16, -0x27, 0xc9, 0x6b, 0xd6, 0xda, 0x87, 0xa2, 0xd0, 0x11, 0x06, 0x01, 0x61, -0x10, 0x10, 0x85, 0x21, 0x1b, 0x37, 0x6c, 0xa0, 0x3a, 0x50, 0x65, 0x43, -0x75, 0x80, 0x28, 0x8c, 0x70, 0x2e, 0x6f, 0xc8, 0xbc, 0xcf, 0x88, 0x93, -0x94, 0x76, 0xbb, 0xcd, 0x52, 0x63, 0x89, 0xf9, 0xc5, 0x45, 0xe2, 0x24, -0xa1, 0x9d, 0xa4, 0xa4, 0x59, 0xde, 0xd0, 0x79, 0x29, 0xda, 0x92, 0x3e, -0xbb, 0x1c, 0x1b, 0x3b, 0xf2, 0xd3, 0xf5, 0x82, 0x5f, 0x37, 0x81, 0xce, -0xf8, 0xee, 0xe1, 0x17, 0x8f, 0x1a, 0x63, 0x7e, 0xe2, 0xac, 0xc5, 0xb9, -0xbc, 0x38, 0x05, 0x85, 0xa7, 0xe7, 0x1b, 0x11, 0xd7, 0x4d, 0x21, 0xc8, -0x17, 0xac, 0x48, 0xc7, 0x66, 0xb3, 0xae, 0xdd, 0x8a, 0x48, 0x37, 0x5d, -0x8a, 0xdb, 0x8f, 0x03, 0x87, 0xc7, 0xc6, 0x8e, 0x9c, 0xba, 0x1d, 0xf0, -0xb7, 0x4d, 0x00, 0xe0, 0x89, 0x27, 0x5e, 0xd8, 0x6b, 0x8c, 0x79, 0xc5, -0x1a, 0x73, 0xc0, 0xd8, 0xde, 0xc6, 0xdb, 0x16, 0x95, 0xda, 0x16, 0xb6, -0xd3, 0x39, 0xd7, 0x14, 0x95, 0x6e, 0x94, 0x65, 0xd9, 0x49, 0x1d, 0x90, -0xf7, 0xf7, 0xaf, 0xdc, 0x6e, 0xd4, 0x3f, 0x13, 0x81, 0xce, 0x78, 0xfc, -0xf1, 0x9f, 0x3d, 0x64, 0x0c, 0x87, 0xad, 0xb1, 0x8f, 0x18, 0x63, 0x6a, -0xbd, 0x0d, 0x78, 0x6f, 0xc7, 0xd3, 0x01, 0x9c, 0xef, 0x25, 0x96, 0x01, -0x3f, 0x03, 0xbc, 0xc2, 0x2a, 0x0d, 0xda, 0xff, 0x0b, 0x81, 0xfe, 0xf1, -0xf8, 0xe3, 0x3f, 0x3b, 0x04, 0xec, 0x23, 0x3f, 0xf6, 0xd8, 0x59, 0xcc, -0xce, 0x98, 0x23, 0x07, 0x3c, 0x4e, 0xde, 0x0e, 0x9f, 0x1c, 0x1b, 0x3b, -0x72, 0xf1, 0x33, 0xdf, 0xb4, 0x18, 0x7f, 0xb2, 0xbf, 0xd4, 0x7f, 0x5e, -0xe3, 0x0b, 0xff, 0xcf, 0x1e, 0x5f, 0x78, 0x02, 0xff, 0x07, 0xe2, 0x1a, -0xeb, 0x6e, 0x4b, 0x67, 0x61, 0x8b, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, -0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_file_open.xpm b/Source/Core/DolphinWX/resources/toolbar_file_open.xpm deleted file mode 100644 index 74ed5a17e3..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_file_open.xpm +++ /dev/null @@ -1,141 +0,0 @@ -/* XPM */ -static const char *toolbar_file_open_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 87 1", -" c #B09454", -". c #B69B5C", -"X c #BA9F5E", -"o c #BFA45D", -"O c #B59A65", -"+ c #BEA263", -"@ c #BDA269", -"# c #C2A551", -"$ c #C5A955", -"% c #C9AE57", -"& c #C2A65D", -"* c #C5A95E", -"= c #C8AC5B", -"- c #CDB25C", -"; c #D1B45F", -": c #C6AB60", -"> c #CBAF64", -", c #C4A96A", -"< c #CBB165", -"1 c #CDB36D", -"2 c #D2B661", -"3 c #D6B962", -"4 c #DABD65", -"5 c #D4B86F", -"6 c #C4AF79", -"7 c #D0B971", -"8 c #D2B978", -"9 c #DEC167", -"0 c #DFC272", -"q c #DEC37A", -"w c #E6C265", -"e c #E3C46A", -"r c #E7C86C", -"t c #EACC6E", -"y c #FBD465", -"u c #FAD56C", -"i c #FDD96F", -"p c #E5C772", -"a c #E6C975", -"s c #EECF70", -"d c #E6CB7A", -"f c #E9CE7D", -"g c #EFD071", -"h c #F4D474", -"j c #FAD771", -"k c #FAD976", -"l c #F6D778", -"z c #F7DA7B", -"x c #FADB7B", -"c c #FEE07D", -"v c #DCCC8E", -"b c #DECE91", -"n c #DFD099", -"m c #E7CD81", -"M c #EAD284", -"N c #EAD48B", -"B c #F7DB83", -"V c #FBDE83", -"C c #F4DD8E", -"Z c #E1D395", -"A c #EBD791", -"S c #EBD995", -"D c #E6D89C", -"F c #ECDC9C", -"G c #F6DF90", -"H c #FBE086", -"J c #FBE28B", -"K c #FFE98E", -"L c #F7E091", -"P c #FCE592", -"I c #FFE995", -"U c #FCEA9B", -"Y c #ECDFA2", -"T c #ECE0A5", -"R c #ECE1A8", -"E c #FDEEA3", -"W c #FDEFA8", -"Q c #FFF1A5", -"! c #FEF2AC", -"~ c #F6EEB9", -"^ c #FEF4B2", -"/ c #FFF9B7", -"( c #FFF6BA", -") c #FFF8BD", -"_ c #FFFBC3", -"` c #FFFEC9", -"' c None", -/* pixels */ -"'''''''''''''''''''''''''''''''''''''. 6''''''''", -"'''''''''''''''''''''''''''''.Xo&&=$#*b_`'''''''", -"'''''''''''''''''''''+:><2222----%$fHJJJJJJJJJ'''''''", -"''''''''CPJJHVVVxxxkhhtree432;&fHHHHHHHHH'''''''", -"'''''''OLPJJHVVVxxxkhhtree432;*dHVVVVVVVV'''''''", -"'''''''OLPJJHVVVxxxkhhtree432;*dHVVVVVVVV'''''''", -"'''''''OLPJJHVVVxxxkhhtree432;*aHxxxxxxxx'''''''", -"'''''''OLPJJHVVVxxxkhhtree432;*axxxxxxxxx'''''''", -"'''''''OLPJJJHVVxxxkhhtrre4432*pxxxxxxxxx'''''''", -"'''''''OLPJJJHVVxxxkhhtrre4432*pxxxxxxxxx'''''''", -"'''''''OLPJJJHVVxxxkhhtrre4432*pkkkkkkkkk'''''''", -"'''''''OGPJJJHVVxxxkhhtrre9432*rkkkkkkkkk'''''''", -"'''''''OGPJJJHVVxxxkhhtrre9432*ekjjjjjjj''''''''", -"'''''''OGPJJJHVVxxxkhhttre9432*ejjjjjjjj''''''''", -"'''''''OGPJJJHVVxxxkhhttre9432*eiuuuuuu'''''''''", -"''''''''CPJJJHVVxxxkhhttee4''''eiuuuuu''''''''''", -"''''''''NIJJJHVVxxxkhht''''''''wuuuu''''''''''''", -"'''''''''CPJJHVVzzl''''''''''''wyyy'''''''''''''", -"'''''''''''MJBB''''''''''''''''wyy''''''''''''''", -"'''''''''''''''''''''''''''''''wy'''''''''''''''", -"'''''''''''''''''''''''''''''''3''''''''''''''''" -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_fullscreen.xpm b/Source/Core/DolphinWX/resources/toolbar_fullscreen.xpm deleted file mode 100644 index 8d492ca57e..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_fullscreen.xpm +++ /dev/null @@ -1,132 +0,0 @@ -/* XPM */ -static const char *toolbar_fullscreen_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 78 1", -" c #0EA437", -". c #0EA539", -"X c #3FAD34", -"o c #74BC1D", -"O c #7BBE1D", -"+ c #54B332", -"@ c #64B72E", -"# c #6FBB29", -"$ c #76BD25", -"% c #7BBF24", -"& c #73BD2A", -"* c #7ABF29", -"= c #7EC027", -"- c #7DC02F", -"; c #80C125", -": c #83C32E", -"> c #82C337", -", c #88C537", -"< c #88C53C", -"1 c #8CC742", -"2 c #95CB56", -"3 c #95CC5E", -"4 c #97CD63", -"5 c #98CD62", -"6 c #A3D274", -"7 c #7FC1E3", -"8 c #ACD78D", -"9 c #AED88F", -"0 c #ADD891", -"q c #B0D994", -"w c #B5DC9F", -"e c #B9DDA4", -"r c #BBDEAB", -"t c #BDDFB0", -"y c #BFE0B3", -"u c #C1E1B5", -"i c #C2E2BB", -"p c #80C1E3", -"a c #8BC6E5", -"s c #8FC9E6", -"d c #92CAE7", -"f c #96CCE8", -"g c #9BCEE8", -"h c #9FD0EA", -"j c #A3D2EB", -"k c #ABD6EC", -"l c #AFD8ED", -"z c #B3DAEE", -"x c #B8DCEF", -"c c #B4DBF0", -"v c #BBDEF0", -"b c #BFE0F1", -"n c #D1D0D0", -"m c #C6E3C2", -"M c #CBE6CD", -"N c #C5E9CF", -"B c #D3EBCE", -"V c #DCEECC", -"C c #CDE7D3", -"Z c #CFE8D8", -"A c #D2EFDE", -"S c #D6ECE6", -"D c #D7ECE9", -"F c #DAEDEE", -"G c #C4E2F3", -"H c #CAE6F6", -"J c #D6EBF6", -"K c #DCEFF6", -"L c #D4EBF9", -"P c #DCEFFC", -"I c #DFF0FC", -"U c #E1E0E0", -"Y c #ECF6EC", -"T c #E2F1FD", -"R c #EAF5FA", -"E c #F4FBF7", -"W c #F3F9FD", -"Q c gray100", -/* pixels */ -"nUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUn", -"UQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQU", -"UQWJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJWQU", -"UQT77pppppppppppppppppppppppppppppppppppppp77TQU", -"UQTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTQU", -"UQTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTQU", -"UQTssddddddddddddddddddddddddddddddddddddddssTQU", -"UQTddddddddddddddddddddddddddddddddddddddddddTQU", -"UQRffffffffffffffffffffffffffffffffffffffffffRQU", -"UQRgggggggggggggggggfffgjfgggggggggggggggggggRQU", -"UQRgggggggggggggggggkHHHPcgggggggggggggggggggRQU", -"UQRhhjjjjjjjjjjjjjhjLTTTTTvjjhjjjjjjjjjjjjjhhRQU", -"UQRjjjjjjjjjjjjjjjjkITIIITPPLjjjjjjjjjjjjjjjjRQU", -"UQRjjjjkkkkkkkkkkjjvPIIIIITTTGkjjkkkkkkkkkkjjRQU", -"UQRkkjkjkkkkkkkkkkHTIIIIIIIIIIPHkkkkkkkkkkjkGWQU", -"UQRkkGLGlkkkklkzzlLTIIIIIIIIIITPzkllllllkzGLTWQU", -"UQWHGTTTGzHHvlGPPLLTIIIIIIIIIITPzlzzzzzzlLTTPWQU", -"UQWIIIITLLTTIHPTTTTIIIIIIIIIIIIPGzzzzzzzzLTIPWQU", -"UQWPIIIITTIITTIIIIIIIIIIIIIIIIITTGzxxxxvLPTIPWQU", -"UQWPIIIIIIIIIIIIIIIIIIIIIIIIIIIITGxvvvvbITIIPWQU", -"UQWPIIIIIIIIIIIIIIIIIIIIIIIIIIITPGvvvvvHTIIIPWQU", -"UQWPIIIIIIIIIIIIIIIIIIIIIIIIIIIIIILGGGGPTIIIPWQU", -"UQWPIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITHGPPPIIIIPWQU", -"UQWPIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIPPPTIIIIIPWQU", -"UQWPIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITTIIIIIIIPWQU", -"UQWPIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIPWQU", -"UQWPIIIIIIIIIIIIITTTTTTTTTTTTTTTTTTTTTIIIIIIPWQU", -"UQWPIIIIIIIITTTTTTKSZMmureeweryimMADKTTTTTTIPWQU", -"UQWPIIIITTTTFCt9621,:=OOOOOOOOOOO;:,126qyCFTTWQU", -"UQWPITTTDi83<=OOOO%%%=============%%%OOOO=<50YQU", -"UQWTTAw4>$oo%%***************************%%ooVQU", -"UQEr3-oo$***********************************$VQU", -"UQVoo$*************************************$$VQU", -"UQV&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&VQU", -"UQV&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&VQU", -"UQV##&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&##VQU", -"UQV@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VQU", -"UQB++++++++++++++++++++++++++++++++++++++++++BQU", -"UQBXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXBQU", -"UQN ...................................... NQU", -"UQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQU", -"UQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQU", -"UQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQU", -"UQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQU", -"UQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQU", -"UQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQU", -"UQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQU", -"nUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUn" -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_help.xpm b/Source/Core/DolphinWX/resources/toolbar_help.xpm deleted file mode 100644 index cdf5d7a9cb..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_help.xpm +++ /dev/null @@ -1,283 +0,0 @@ -/* XPM */ -static const char *toolbar_help_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 229 2", -" c #121F74", -". c #0F2276", -"X c #062D7C", -"o c #092D7C", -"O c #132376", -"+ c #192677", -"@ c #152678", -"# c #192678", -"$ c #132D7C", -"% c #1C2E7D", -"& c #04307F", -"* c #08317F", -"= c #16317F", -"- c #232F7E", -"; c #292D7E", -": c #362F7F", -"> c #22317E", -", c #012F83", -"< c #0A2E81", -"1 c #023483", -"2 c #093384", -"3 c #00398A", -"4 c #163C87", -"5 c #143D8A", -"6 c #013F90", -"7 c #233482", -"8 c #2B3581", -"9 c #2D3D87", -"0 c #223C88", -"q c #293F88", -"w c #373784", -"e c #303C86", -"r c #473E89", -"t c #00408D", -"y c #0E4089", -"u c #03488F", -"i c #16438B", -"p c #014493", -"a c #014B94", -"s c #0B4D92", -"d c #004F9A", -"f c #134F93", -"g c #055097", -"h c #0B5094", -"j c #01559C", -"k c #00589E", -"l c #085A9E", -"z c #125094", -"x c #115698", -"c c #22458D", -"v c #2C448B", -"b c #2D4A8F", -"n c #33478D", -"m c #3B448B", -"M c #35498F", -"N c #224F95", -"B c #255596", -"V c #2A5194", -"C c #245C9D", -"Z c #2C5E9D", -"A c #395495", -"S c #375798", -"D c #355A9A", -"F c #3A5B9A", -"G c #2D619E", -"H c #3E639E", -"J c #005CA3", -"K c #0D5EA1", -"L c #0262A6", -"P c #0065AB", -"I c #0069AE", -"U c #1563A5", -"Y c #1C66A5", -"T c #1F68A6", -"R c #176BAB", -"E c #0064B2", -"W c #006DB2", -"Q c #106FB0", -"! c #0071B6", -"~ c #0C73B5", -"^ c #0074B9", -"/ c #1273B3", -"( c #1C79B6", -") c #2666A3", -"_ c #2C65A2", -"` c #2569A6", -"' c #2A6AA6", -"] c #266EA9", -"[ c #2C6EA9", -"{ c #3567A2", -"} c #3A65A1", -"| c #336BA5", -" . c #3A69A3", -".. c #336EA8", -"X. c #2C71AA", -"o. c #3373AB", -"O. c #3579AF", -"+. c #3D79AF", -"@. c #2176B2", -"#. c #297DB7", -"$. c #207FBB", -"%. c #3577B0", -"&. c #347AB2", -"*. c #3D7CB2", -"=. c #4F4A91", -"-. c #5B4E92", -";. c #435495", -":. c #465E9B", -">. c #4A5D9B", -",. c #555597", -"<. c #644E91", -"1. c #665898", -"2. c #43629E", -"3. c #49609D", -"4. c #55639E", -"5. c #4165A0", -"6. c #4B6DA5", -"7. c #566FA7", -"8. c #5A6BA4", -"9. c #536FAA", -"0. c #5670A7", -"q. c #5778AC", -"w. c #427CB1", -"e. c #517EB0", -"r. c #6E69A3", -"t. c #6B76AA", -"y. c #7174A9", -"u. c #8272A7", -"i. c #8476AA", -"p. c #8872A8", -"a. c #2580BB", -"s. c #2C83BD", -"d. c #3386BD", -"f. c #3488BF", -"g. c #398ABF", -"h. c #4585B7", -"j. c #4884B7", -"k. c #448BBD", -"l. c #488DBF", -"z. c #5282B3", -"x. c #5B81B1", -"c. c #5688B7", -"v. c #5488B8", -"b. c #7C89B6", -"n. c #738DB8", -"m. c #6091BD", -"M. c #348AC0", -"N. c #3692C8", -"B. c #3E95C9", -"V. c #428DC1", -"C. c #569ECA", -"Z. c #6295C0", -"A. c #679AC4", -"S. c #729CC5", -"D. c #7C9BC2", -"F. c #60A3CE", -"G. c #7DACCF", -"H. c #6CA7D1", -"J. c #6FABD3", -"K. c #8F84B4", -"L. c #998AB7", -"P. c #9B8FB9", -"I. c #A397BE", -"U. c #83ACCE", -"Y. c #8FAFCE", -"T. c #94A7C9", -"R. c #9DA7C9", -"E. c #97AECE", -"W. c #9BABCB", -"Q. c #92B4D2", -"!. c #93BFDC", -"~. c #99BFDA", -"^. c #A2A5C8", -"/. c #A0ABCB", -"(. c #B2A7C9", -"). c #B6AECD", -"_. c #A3B1CF", -"`. c #A6B4D1", -"'. c #AAB5D1", -"]. c #A7B8D4", -"[. c #ABBAD5", -"{. c #A0BED9", -"}. c #AEBFD8", -"|. c #B2BED7", -" X c #95C3DF", -".X c #A3C4DD", -"XX c #B7C2D9", -"oX c #B9C4DC", -"OX c #95C4E0", -"+X c #9DC7E2", -"@X c #9DC9E4", -"#X c #A2C7E0", -"$X c #A5CAE2", -"%X c #AECDE3", -"&X c #B0CCE2", -"*X c #BACCE0", -"=X c #BFD7E8", -"-X c #CDCCCC", -";X c #D0CFCF", -":X c #C7C5DB", -">X c #CDC4DB", -",X c #D4D3D3", -" O # % > > > > % + O > 4.'.gXhXdXqX-XjXjXjXjXjXjXjXjXjXjX", -"jXjXjXjXjXjXjXjXjX.>.>.>.;.;.M 9 > O O ;.'.hXhXrX,XjXjXjXjXjXjXjXjXjX", -"jXjXjXjXjXjXjXjXqXdXhX7X8.@ @ 7 M ;.>.>.>.>.>.>.>.>.>.>.>.>.;.M 7 @ @ 8.7XhXsX,XjXjXjXjXjXjXjXjX", -"jXjXjXjXjXjXjXqXhXhXXXv . 7 M >.>.>.:.:.:.:.:.:.:.:.:.:.:.:.>.>.>.M 7 . v XXhXsX.;.q @ % _.hXsX,XjXjXjXjXjXjX", -"jXjXjXjXjXXw D } H 2.2.c o 7.hXdX,XjXjXjX", -"jXjXjXsXhX[.o 4 F 5.} } { G e.gXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhX(.7 { } } 5.F 4 o [.hXwXjXjXjX", -"jXjXqXhXgXD 2 V } } { { { _ *XhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhX-.V | { } 5.V * S gXdX,XjXjX", -"jXjXsXhX].& i } .{ { | _ z.hXhXhXhXhXhXhXhXeX^.E.3XhXhXhXhXhXhXhXhXI.7 ..{ { } } i X ].hXqXjXjX", -"jXX; ..| { { .B 1 6.hXsX-XjX", -"jXwXhX6Xy j _ { | | | | _ 3XhXhXhXhXhXhXhX1.N O.o.' m.hXhXhXhXhXhXhX4X; | | | | { { j y 6XhX,XjX", -"jXrXhXE.1 / %.{ | .........X6XuXgXhXhXhXiX: [ o.X.T U.hXhXhXhXhXhXhX>X; o...| | { O.Q 1 E.hXqXjX", -"jXdXhXx.t ( d...| ....o.o.[ o.w.v.Z.S.U.D.5 l l d *.pXhXhXhXhXhXhXhXL.0 o.....| ..d.( t x.hXrXjX", -" c #BB221B", -", c #9C2721", -"< c #9F2821", -"1 c #A32821", -"2 c #AA2821", -"3 c #B32821", -"4 c #BC2821", -"5 c #A2312A", -"6 c #AB312A", -"7 c #B3312A", -"8 c #BC312A", -"9 c #C7150D", -"0 c #C41B13", -"q c #CB1E16", -"w c #D31D15", -"e c #C3231B", -"r c #CB241C", -"t c #D1221A", -"y c #C42921", -"u c #CB2921", -"i c #D32921", -"p c #C1322A", -"a c #AE544F", -"s c #AF5751", -"d c #B05954", -"f c #B25D58", -"g c #B5645F", -"h c #CB5A55", -"j c #CF5D58", -"k c #D25A55", -"l c #D15D58", -"z c #D5615B", -"x c #CC6762", -"c c #CFA9A6", -"v c #D3AEAB", -"b c #DAAEAC", -"n c #DBB0AE", -"m c #D5BAB9", -"M c #E3B1AF", -"N c #E4B6B4", -"B c #EAB6B4", -"V c #CDCCCC", -"C c #D0CFCF", -"Z c #DFCAC9", -"A c #D4D3D3", -"S c #D8D7D7", -"D c #D7D8D6", -"F c #D8D8D7", -"G c #DCDCDB", -"H c #E6C5C4", -"J c #E9C5C4", -"K c #E2CECD", -"L c #EBCECC", -"P c #E5D0CF", -"I c #EED0CE", -"U c #E4D3D1", -"Y c #EED3D2", -"T c #E0DFDF", -"R c #F0DCDB", -"E c #E0E0DF", -"W c #E8E0DF", -"Q c #E3E3E3", -"! c #EBE4E4", -"~ c #E7E8E7", -"^ c #E8E8E7", -"/ c #E8E7E8", -"( c #E6EBEA", -") c #ECECEC", -"_ c #F1E7E7", -"` c #F0E8E7", -"' c #F3EAEA", -"] c #E9F0EF", -"[ c #F0F0EF", -"{ c #ECF2F2", -"} c #F2F2F2", -"| c #F5FBFB", -" . c #FAFCFC", -".. c None", -/* pixels */ -"....................................F D V V V V V V V V D F ....................................", -"..............................F V V A S G Q Q Q ~ Q Q G F A V V F ..............................", -"..........................A V A G ~ ^ ) ) ) ) ^ ^ ) ) ) ) ^ ~ G A V A ..........................", -"......................F V D Q ^ ) ^ ^ ) ) ) ) ) ) ) ) ) ) ^ ^ ) ^ Q S V S ......................", -"....................V A Q ) ^ ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ^ ^ ^ ) Q A V ....................", -"................G V F ^ ) ^ ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ^ ^ ^ G V G ................", -"..............F V Q ) ^ ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ^ ) Q V S ..............", -"............F V Q ) / ) ) ) ) ) ) ) ) ) ) [ [ [ [ [ [ ) ) ) ) ) ) ) ) ) ) ^ ) Q V S ............", -"..........G V Q ) ^ ) ) ) ) ) ) ) ) [ } } } } } } } } } [ ) ) ) ) ) ) ) ) ) ^ ^ Q V G ..........", -"..........V T ) ^ ) ) ) ) ) ) ) } } } } } } } } } } } } } } } [ ) ) ) ) ) ) ) ^ ) Q V ..........", -"........V F ) ^ ) ) ) ) ) ) ) } } } } } } } } } } } } } } } } } } [ ) ) ) ) ) ) ^ ) G V ........", -"......G C ^ ^ ) ) ) ) ) ) } } } } } } } } } } } } } } } } } } } } } [ ) ) ) ) ) ) ^ ^ A F ......", -"......V Q ) ) ) ) ) ) ) } } } } } } } } } } } } } } } } } } } } } } } [ ) ) ) ) ) ) ^ Q V ......", -"....D A ) ^ ) ) ) ) ) } } } } | | | | | | } } } } } } | | | | | | } } } [ ) ) ) ) ) ^ ) S A ....", -"....V Q ) ) ) ) ) ) [ } } | J k l l j h x ' | } } | R z k l j j h H | } } ) ) ) ) ) ) ^ Q V ....", -"..G A ^ ) ) ) ) ) [ } } } | M 9 0 0 0 O 4 ` | | | .Y q 9 0 0 & O M | } } } [ ) ) ) ) ^ ) A G ..", -"..V G ) ) ) ) ) ) } } } } | B q r r e e p ' .| | .Y i r r r e & b { ~ ~ ^ ) ) ) ) ) ^ ) T V ..", -"..V ~ ) ) ) ) ) ) } } } } | B w t r r e p ' .} } | L i t r r e & b { Q Q Q G G Q ^ ) ) ^ ^ V ..", -"G A ^ ) ) ) ) ) [ } } } } | B w t r r e p ' | } } | I i t r r e & b { ~ Q Q Q G G G G ~ ) ) A G ", -"S S ) ) ) ) ) ) } } } } } .B w r r e e p _ | } } | Y i t r r e & b { ~ Q Q Q G G G F D G / G D ", -"V G ) ) ) ) ) [ } } } } } .B q r r e > 8 _ | } } | Y u r r e e & b { ~ Q Q Q E G G G F A A F V ", -"V Q ) ) ) ) ) [ } } } } } .B 0 e e e > 8 ' .| | .Y u e e e > & b { ~ Q Q Q E G G G F A A V V ", -"V Q ) ) ) ) ) [ } } } } } .N 0 e e > > 8 ' . . . .Y y e e > > % b { ^ ~ Q Q Q G G G F A A V V ", -"V Q ) ) ) ) ) [ } } } } } .N & > > > * 8 ' . . . .Y 4 > > > : % b { ^ ~ Q Q Q G G G F A A C V ", -"V Q ) ) ) ) ) [ } } } } } .N % > : : * 7 ' . . . .Y 4 > > : : @ b { ^ ~ Q Q Q G G G F A A C V ", -"V Q ) ) ) ) ) [ } } } } } | n % : : : $ 7 ' . . . .Y 3 : : : ; @ b { ^ ~ Q Q Q G G G F A A V V ", -"V Q ) ) ) ) ) [ } } } } } { b @ ; ; ; $ 6 ' .| | .Y 3 ; ; ; ; + v { ~ ~ Q Q Q G G G F A A V V ", -"C G ) ) ) ) ) [ } } } } ) { b + ; ; - # 6 ` | | | .U 2 ; ; ; - + v { ~ Q Q Q E G G G F A A V V ", -"S S ) ) ) ) ) [ } } } } ^ { v + - - - # 5 ! | } } .U 2 - - - - X v { ~ Q Q Q E G G G D A A V S ", -"G A ^ ) ) ) ) ) } } } ) ~ { v X - = = o 5 ! | } } | P 1 - - = = X v { ~ Q Q Q G G G G D A C V G ", -"..V ~ ) ) ) ) ) [ } } Q Q { v X = = = o 5 ! } } } | K < = = = = X v { Q Q Q Q G G G F A A C V ..", -"..C G ) ) ) ) ) ) } ) Q Q { v X = = = o 5 ! } } [ } K < = = = = X v ] Q Q Q E G G G F A A V C ..", -"..G A ) ) ) ) ) ) } ~ Q Q ) c . . . , W } ) ) } Z o . . . c ) Q Q E G G G G D A A V G ..", -"....V Q ) ) ) ) ) ) Q Q Q ( m a d d d s g ! ) ) ) { U f d d d d a m ( Q Q G G G G F A A V V ....", -"....D D ) ) ) ) ) ) G E Q Q ~ ( ) ) { { { ) ) ) ) ^ ) { { { ) ) ( Q Q Q G G G G F D A A V D ....", -"......V Q ) ) ) ) ^ G G Q Q Q Q Q ~ ~ ~ ^ ^ ^ ^ ^ ^ ^ ~ ~ ~ Q Q Q Q Q G G G G G D A A V V ......", -"......G A ^ ) ) ) Q G G G E Q Q Q Q Q Q ~ ~ ~ ~ ~ ~ ~ ~ Q Q Q Q Q Q G G G G G F A A C V G ......", -"........V G ) ) ) Q G G G G G Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q E G G G G G F D A A V V ........", -"..........V Q ) ) E F G G G G G Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q G G G G G G F D A A V V ..........", -"..........G V Q ) G D F G G G G G G E Q Q Q Q Q Q Q Q Q E G G G G G G G F D A A V V G ..........", -"............F V Q G A D F G G G G G G G G G G G G G G G G G G G G G G F A A A V V F ............", -"..............F V S A A A D F G G G G G G G G G G G G G G G G G G F D A A A V V F ..............", -"................G V V A A A A D F G G G G G G G G G G G G G G F D A A A A V V G ................", -"....................V V C A A A A D F F F G G G G G G F F D D A A A A C V V ....................", -"......................G V V C A A A A A A D D D D D D A A A A A A C V V G ......................", -"..........................A V V V A A A A A A A A A A A A A C V V V A ..........................", -"..............................G A V V V V A A A A A A V V V V A G ..............................", -"....................................G F A V V V V V V A F G ...................................." -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_play.c b/Source/Core/DolphinWX/resources/toolbar_play.c deleted file mode 100644 index c77e26af54..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_play.c +++ /dev/null @@ -1,278 +0,0 @@ -static const unsigned char toolbar_play_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, 0x14, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x34, -0x2f, 0x30, 0x34, 0x79, 0x5e, 0xa3, 0xd5, 0x00, 0x00, 0x0c, 0x3b, 0x49, -0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x5b, 0x8c, 0x5d, 0xd5, 0x79, -0xc7, 0x7f, 0x6b, 0xad, 0xbd, 0xf7, 0x39, 0x67, 0x8e, 0xc7, 0x3e, 0x33, -0xe3, 0xb1, 0x31, 0xc1, 0xc6, 0xc4, 0x02, 0xcb, 0x15, 0xc1, 0x6e, 0x22, -0x45, 0xb2, 0xaa, 0x82, 0x93, 0x87, 0xf8, 0x05, 0xc5, 0x48, 0x3c, 0x54, -0x02, 0xa1, 0x38, 0x8a, 0x5a, 0x72, 0x91, 0xb8, 0x3c, 0xf0, 0xe4, 0x54, -0x71, 0x84, 0x52, 0x22, 0x24, 0x0a, 0x76, 0x2b, 0x55, 0x69, 0x1f, 0x8c, -0x54, 0xcd, 0x6b, 0x45, 0xda, 0x07, 0xd2, 0x44, 0x45, 0xb6, 0xd3, 0x48, -0xb4, 0x02, 0xc9, 0x24, 0x10, 0xf0, 0x05, 0x18, 0xdb, 0x83, 0x2f, 0x33, -0x73, 0xe6, 0x7e, 0x2e, 0xfb, 0xb2, 0xbe, 0xaf, 0x0f, 0x7b, 0x9f, 0xcb, -0xd8, 0x33, 0xe3, 0x31, 0x44, 0x45, 0x2c, 0x69, 0xe9, 0xdc, 0xf7, 0xfe, -0xff, 0xbf, 0xff, 0xb7, 0xfe, 0xdf, 0xb7, 0xd6, 0x8c, 0x51, 0x55, 0xbe, -0xc8, 0xc3, 0x7e, 0xde, 0x00, 0x3e, 0xeb, 0x08, 0x3e, 0xcf, 0x9b, 0x3f, -0xf9, 0xe4, 0x3f, 0x9b, 0xce, 0xf3, 0x5f, 0xfc, 0xe2, 0x6f, 0x3e, 0x55, -0x2a, 0x98, 0x3f, 0x55, 0x0a, 0xfd, 0xfc, 0xe7, 0xbf, 0xda, 0xa9, 0xaa, -0x07, 0x54, 0xe5, 0x80, 0x88, 0xec, 0x14, 0xd1, 0xbd, 0xaa, 0x52, 0x13, -0x11, 0x44, 0x04, 0x55, 0x19, 0x17, 0x91, 0x8b, 0x22, 0x72, 0x52, 0x44, -0xde, 0x99, 0x9f, 0x6f, 0xfe, 0x72, 0x85, 0xcb, 0x28, 0xdc, 0x1e, 0x99, -0xcf, 0x44, 0xe0, 0xa5, 0x97, 0xde, 0xa8, 0xa9, 0xca, 0x23, 0xaa, 0xfa, -0xb4, 0xaa, 0xee, 0xcb, 0x81, 0x2a, 0x7d, 0xa0, 0xbb, 0xcf, 0x97, 0xbf, -0xf6, 0x88, 0xc8, 0x9c, 0x88, 0xfc, 0xbb, 0xf7, 0xf2, 0xaf, 0xad, 0x56, -0x76, 0xaa, 0x00, 0xdf, 0x99, 0x00, 0xba, 0x1e, 0x22, 0x9f, 0x9a, 0xc0, -0xcb, 0x2f, 0x9f, 0x3c, 0x0a, 0xfa, 0xb4, 0x88, 0xd6, 0x54, 0x95, 0x72, -0xb9, 0x44, 0xb5, 0x5a, 0x65, 0x70, 0x70, 0x10, 0x63, 0x0c, 0x51, 0x54, -0xea, 0x82, 0x4d, 0xd3, 0x94, 0x66, 0x73, 0x89, 0xa5, 0xa5, 0x26, 0x8b, -0x8b, 0xf3, 0x2c, 0x2e, 0x2e, 0x92, 0x65, 0x69, 0x3f, 0xb9, 0xd3, 0xde, -0xfb, 0xe7, 0x92, 0x84, 0x33, 0x05, 0x01, 0xe9, 0x90, 0xb9, 0x15, 0x89, -0xdb, 0x5e, 0x03, 0xc7, 0x8e, 0x9d, 0x3e, 0x60, 0x8c, 0x39, 0x61, 0xad, -0xdd, 0x69, 0xad, 0x65, 0x78, 0x78, 0x98, 0xbb, 0xef, 0xbe, 0x83, 0x91, -0x91, 0x0a, 0x03, 0x03, 0x01, 0x41, 0x60, 0x09, 0x02, 0x87, 0xf7, 0x20, -0x02, 0x8d, 0x46, 0xc2, 0xd2, 0x52, 0xcc, 0xfc, 0x7c, 0x93, 0x7a, 0x7d, -0x81, 0xe1, 0xe1, 0x21, 0x92, 0x24, 0x61, 0x7e, 0x7e, 0x96, 0xab, 0x57, -0xaf, 0x11, 0xc7, 0x31, 0xc0, 0x83, 0xc6, 0x98, 0xff, 0x09, 0x43, 0xff, -0x77, 0x69, 0x6a, 0x9f, 0x07, 0x4c, 0x41, 0xa2, 0x43, 0x64, 0xd5, 0x71, -0x5b, 0x0a, 0x1c, 0x3f, 0xfe, 0xdf, 0x47, 0x8d, 0x31, 0x3f, 0x01, 0xd8, -0xb2, 0x65, 0x94, 0xfb, 0xef, 0xdf, 0xce, 0x96, 0x2d, 0x25, 0x4a, 0x25, -0x8b, 0x08, 0x5d, 0xd0, 0x6b, 0x3d, 0x9f, 0x9c, 0x9c, 0x63, 0x62, 0xe2, -0x1a, 0xcd, 0x66, 0x0b, 0x91, 0x8c, 0xa9, 0xa9, 0x29, 0x26, 0x27, 0x27, -0xbb, 0x8a, 0xa8, 0xca, 0x6f, 0xbd, 0xd7, 0xbf, 0x52, 0x0d, 0xea, 0x80, -0x07, 0x64, 0x2d, 0x15, 0xd6, 0xad, 0xc0, 0xf1, 0xe3, 0xbf, 0x3d, 0x61, -0xad, 0x3d, 0x5c, 0x2a, 0x95, 0x78, 0xe0, 0x81, 0xdd, 0xdc, 0x77, 0xdf, -0x06, 0xca, 0x65, 0xd3, 0x05, 0xd7, 0x6a, 0x79, 0x66, 0x66, 0x12, 0x16, -0x16, 0x52, 0xda, 0xed, 0x7c, 0x7a, 0xef, 0x11, 0xf1, 0x44, 0x91, 0xa3, -0x54, 0x0a, 0xa9, 0x54, 0x4a, 0xd4, 0x6a, 0x83, 0x0c, 0x0d, 0xd5, 0xb8, -0x7a, 0x75, 0x92, 0x8f, 0x3f, 0xbe, 0xc8, 0xd0, 0xd0, 0x30, 0x95, 0x4a, -0x85, 0x89, 0x89, 0xcb, 0xb4, 0x5a, 0x2d, 0x80, 0xbf, 0x34, 0x46, 0xff, -0x53, 0x35, 0x3b, 0x08, 0x41, 0x9d, 0xe5, 0xeb, 0xe2, 0xa6, 0xb1, 0x2e, -0x05, 0x8e, 0x1d, 0x3b, 0x7d, 0xc2, 0x5a, 0x7b, 0xb8, 0x5a, 0xad, 0xf2, -0xe0, 0x83, 0xf7, 0xb3, 0x63, 0x47, 0xd8, 0x8d, 0x68, 0xbd, 0xee, 0xb9, -0x76, 0x2d, 0xa1, 0xd9, 0xcc, 0x10, 0xf1, 0x78, 0x2f, 0xc5, 0xa3, 0xef, -0x7b, 0x14, 0xbc, 0xf7, 0x78, 0x9f, 0x91, 0x65, 0x42, 0xad, 0xb6, 0x81, -0xad, 0x5b, 0xb7, 0x92, 0x24, 0x19, 0xef, 0xbe, 0xfb, 0x1e, 0x69, 0x1a, -0xe3, 0xbd, 0xe7, 0xea, 0xd5, 0x2b, 0xcc, 0xcf, 0xcf, 0x75, 0xd6, 0xc5, -0x1f, 0x54, 0xcd, 0xb7, 0x8c, 0x89, 0xa6, 0x01, 0xbf, 0x9a, 0x0a, 0xb7, -0x2c, 0x64, 0x2f, 0xbf, 0x7c, 0xf2, 0x04, 0x70, 0x78, 0xd3, 0xa6, 0x1a, -0x07, 0x0f, 0x7e, 0x85, 0xed, 0xdb, 0xc3, 0x22, 0xe2, 0x70, 0xfe, 0x7c, -0xc6, 0xc4, 0x44, 0x46, 0x1c, 0x2b, 0xc6, 0x18, 0xc0, 0x60, 0x0a, 0x67, -0xcf, 0x1f, 0x4d, 0x31, 0xbb, 0xf1, 0x02, 0xa0, 0x5e, 0x9f, 0xe5, 0xf7, -0xbf, 0x7f, 0x97, 0xd9, 0xd9, 0x59, 0xf6, 0xec, 0xf9, 0x33, 0xac, 0x75, -0x88, 0x28, 0x5b, 0xb6, 0x6c, 0xa5, 0x5c, 0x1e, 0xe8, 0xfc, 0xee, 0x2b, -0xaa, 0xfe, 0x5f, 0x00, 0x77, 0xc3, 0x45, 0xd6, 0x4f, 0xe0, 0xa5, 0x97, -0xfe, 0xeb, 0x69, 0x55, 0x3d, 0x5c, 0x2e, 0x97, 0xf9, 0xc6, 0x37, 0x76, -0x33, 0x3c, 0x1c, 0x20, 0x02, 0xd3, 0xd3, 0xca, 0x87, 0x1f, 0x2a, 0xed, -0xf6, 0xad, 0xe8, 0xd3, 0x25, 0x94, 0x3f, 0xef, 0xbd, 0x50, 0x85, 0x4f, -0x3e, 0x99, 0xe0, 0xc2, 0x85, 0x0b, 0xec, 0xda, 0x75, 0x5f, 0xd7, 0x7e, -0xb7, 0x6e, 0xdd, 0x4a, 0x10, 0x74, 0x33, 0xfb, 0xe1, 0x2c, 0x6b, 0x3c, -0x05, 0xd8, 0xfe, 0xa2, 0xb7, 0x2e, 0x02, 0x2f, 0xbe, 0xf8, 0x9b, 0x7d, -0xaa, 0xfa, 0x8a, 0x73, 0x8e, 0xfd, 0xfb, 0xef, 0x67, 0x78, 0x38, 0x8f, -0xfc, 0xa5, 0x4b, 0x9e, 0x2b, 0x57, 0x72, 0xfb, 0x03, 0xa5, 0x93, 0x81, -0x2b, 0xa7, 0x62, 0xef, 0xf3, 0xce, 0xeb, 0x1e, 0x87, 0xfc, 0xb3, 0x66, -0x73, 0x91, 0x4b, 0x97, 0xc6, 0xd9, 0xb6, 0xed, 0x4b, 0xa8, 0x2a, 0xc6, -0x58, 0x46, 0x47, 0x47, 0xe9, 0x4b, 0xfb, 0x23, 0x69, 0xba, 0x74, 0xcf, -0x6a, 0x38, 0xd7, 0x50, 0x40, 0x4f, 0xa8, 0xc2, 0x9e, 0x3d, 0xf7, 0xb2, -0x7d, 0x7b, 0x05, 0x11, 0xb8, 0x78, 0x31, 0x61, 0x66, 0x26, 0x2b, 0x0a, -0x91, 0xef, 0x16, 0xa7, 0x5f, 0xff, 0xfa, 0x37, 0x34, 0x1a, 0x4b, 0xa8, -0x6a, 0x97, 0x48, 0x0f, 0x78, 0x8f, 0x41, 0xfe, 0x9e, 0x2e, 0xfb, 0x4c, -0x15, 0x16, 0x17, 0x17, 0x98, 0x9b, 0x9b, 0x25, 0x0c, 0xcb, 0xa8, 0x0a, -0xa5, 0x52, 0x99, 0x0d, 0x1b, 0x06, 0x3b, 0x5f, 0xda, 0xa4, 0x2a, 0x7f, -0xcb, 0x2a, 0x69, 0xb4, 0x22, 0x81, 0x17, 0x5e, 0x78, 0xfd, 0x3b, 0xaa, -0xba, 0x6f, 0xe3, 0xc6, 0x8d, 0xdc, 0x7b, 0xef, 0x08, 0xc6, 0x18, 0xa6, -0xa7, 0x53, 0xea, 0xf5, 0x14, 0xef, 0xa5, 0x3b, 0x3b, 0x85, 0xe8, 0xfa, -0xf5, 0xeb, 0xbc, 0xfe, 0xfa, 0xaf, 0x38, 0x7b, 0xf6, 0x5c, 0x97, 0x44, -0x3e, 0x3b, 0xc0, 0x6f, 0x34, 0x12, 0x2d, 0xc0, 0xf7, 0xde, 0x5f, 0x5c, -0x5c, 0x20, 0x4d, 0x63, 0x44, 0xf2, 0xf7, 0x6b, 0xb5, 0x21, 0x54, 0xbb, -0xca, 0x3e, 0x11, 0xc7, 0x73, 0x2b, 0xaa, 0xb0, 0x22, 0x01, 0x55, 0x3d, -0xaa, 0xaa, 0xec, 0xd9, 0xf3, 0x65, 0x36, 0x6e, 0x8c, 0x68, 0xb7, 0x85, -0x89, 0x89, 0x56, 0x5f, 0x1b, 0xd0, 0x53, 0x20, 0x4f, 0x25, 0x38, 0x78, -0xf0, 0x01, 0xce, 0x9d, 0xfb, 0x23, 0xa7, 0x4e, 0x9d, 0x5e, 0xa6, 0xc6, -0x72, 0x32, 0x5a, 0xa4, 0x89, 0x29, 0xc0, 0xd1, 0x05, 0x2c, 0xa2, 0xa4, -0x69, 0xa7, 0x16, 0x28, 0xce, 0x39, 0xaa, 0xd5, 0x2a, 0xc6, 0x74, 0xbe, -0xc7, 0x53, 0xeb, 0x22, 0xf0, 0xfc, 0xf3, 0xff, 0x71, 0x48, 0x55, 0x77, -0x0e, 0x0d, 0xd5, 0x18, 0x1d, 0xad, 0x22, 0x02, 0x97, 0x2f, 0x37, 0x49, -0xd3, 0x1e, 0xe0, 0x0e, 0x81, 0x8e, 0x45, 0x02, 0x3c, 0xfc, 0xf0, 0xd7, -0xf8, 0xf1, 0x8f, 0x1f, 0x65, 0x68, 0x28, 0xe2, 0x8d, 0x37, 0x4e, 0xf1, -0xe1, 0x87, 0x1f, 0xa1, 0x2a, 0x37, 0x11, 0xe9, 0x57, 0xa4, 0xa3, 0x50, -0x4e, 0x42, 0x6e, 0x50, 0xcc, 0x30, 0x30, 0x50, 0x2d, 0xf2, 0x46, 0x01, -0x39, 0xb4, 0xd2, 0x42, 0xbe, 0x89, 0x80, 0xaa, 0x1e, 0x56, 0x15, 0x36, -0x6f, 0x1e, 0x61, 0x68, 0xa8, 0xc2, 0xc2, 0x42, 0xc2, 0xec, 0x6c, 0xeb, -0x06, 0xe0, 0xd2, 0xf5, 0xfb, 0x99, 0x99, 0x3a, 0x77, 0xdd, 0x35, 0x82, -0x08, 0x0c, 0x0d, 0x0d, 0xf2, 0xec, 0xb3, 0x0f, 0xf3, 0xd8, 0x63, 0x7f, -0xc1, 0x47, 0x1f, 0x5d, 0xe0, 0xcd, 0x37, 0xff, 0x97, 0x66, 0xb3, 0xd9, -0x8d, 0x7c, 0x47, 0x89, 0x4e, 0xd4, 0x3b, 0xcd, 0x9d, 0xaa, 0x14, 0x37, -0x17, 0x50, 0xc5, 0x1a, 0x83, 0x41, 0xa9, 0x0e, 0x54, 0x00, 0xd3, 0x49, -0xfe, 0xbb, 0x1b, 0x8d, 0xe9, 0x7d, 0x6b, 0x12, 0x38, 0x7a, 0xf4, 0xdf, -0x6a, 0xaa, 0xf2, 0x48, 0x10, 0x84, 0x8c, 0x8e, 0x0e, 0x17, 0x96, 0xd9, -0xa2, 0xbf, 0xa3, 0xec, 0x00, 0xef, 0xa4, 0x50, 0x1c, 0x27, 0x54, 0x2a, -0x51, 0xb7, 0xb0, 0x89, 0xc0, 0xd7, 0xbf, 0x7e, 0x1f, 0xcf, 0x3f, 0xff, -0x18, 0x77, 0xdd, 0xb5, 0x91, 0xdf, 0xfd, 0xee, 0x4d, 0xc6, 0xc7, 0x2f, -0xf5, 0xa9, 0xd1, 0xe9, 0x4a, 0x57, 0x56, 0xc5, 0x98, 0xa2, 0x0a, 0x18, -0x70, 0xce, 0x51, 0x2a, 0x95, 0xa1, 0x9b, 0x72, 0x7a, 0xe8, 0x46, 0x02, -0xcb, 0x5a, 0x09, 0x11, 0x7d, 0xc8, 0x5a, 0xa5, 0x5a, 0x1d, 0xa0, 0x5a, -0x8d, 0x48, 0x53, 0x61, 0x7a, 0xba, 0x51, 0xf8, 0x77, 0x6e, 0x71, 0xd0, -0xf3, 0xf3, 0x1e, 0xa0, 0xbc, 0xdf, 0xe9, 0x1f, 0x51, 0x14, 0xf1, 0xbd, -0xef, 0x7d, 0x8b, 0xf3, 0xe7, 0xaf, 0x30, 0x36, 0x76, 0x8a, 0xc9, 0xc9, -0x29, 0x76, 0xef, 0xbe, 0x97, 0x30, 0x74, 0xcb, 0xa2, 0x2f, 0x22, 0xa8, -0x68, 0x01, 0xda, 0x60, 0x8c, 0xc1, 0x1a, 0x83, 0xa8, 0x20, 0x0a, 0x41, -0xe0, 0x30, 0x3d, 0x03, 0xd8, 0xbb, 0xa6, 0x02, 0xaa, 0xba, 0x4f, 0x55, -0x18, 0x18, 0x18, 0xa0, 0x5c, 0x0e, 0x59, 0x58, 0x88, 0x97, 0x45, 0x7e, -0x79, 0x5b, 0xe0, 0xbb, 0xef, 0xe7, 0xe4, 0x57, 0x9e, 0xbb, 0x76, 0xdd, -0xc9, 0x73, 0xcf, 0x3d, 0xca, 0xde, 0xbd, 0x3b, 0x78, 0xfb, 0xed, 0x33, -0x4c, 0x4c, 0x5c, 0x2d, 0xae, 0xd9, 0x59, 0xbc, 0xd2, 0x8b, 0x3e, 0x86, -0xc0, 0x5a, 0x02, 0x67, 0x71, 0xd6, 0x61, 0x2d, 0x94, 0xcb, 0xa5, 0x3e, -0x85, 0xa8, 0xdd, 0x82, 0x80, 0x1c, 0x10, 0x51, 0x82, 0x20, 0x60, 0x60, -0xa0, 0xcc, 0xc2, 0x42, 0xeb, 0x26, 0xc7, 0x59, 0xee, 0x42, 0x9e, 0x46, -0xa3, 0x41, 0xb9, 0x5c, 0xc2, 0x7b, 0x56, 0x9d, 0x51, 0x14, 0xf1, 0xed, -0x6f, 0xef, 0xe7, 0xa9, 0xa7, 0x0e, 0x91, 0xa6, 0x0d, 0x3e, 0xf8, 0xe0, -0x3c, 0xed, 0x76, 0xdc, 0x33, 0x01, 0xcd, 0xc1, 0x3b, 0x9b, 0xcf, 0xc0, -0x5a, 0x9c, 0x31, 0x58, 0x63, 0xb1, 0x26, 0x8f, 0x7f, 0x91, 0x69, 0x07, -0x6e, 0xa5, 0x40, 0x2d, 0x2f, 0x24, 0xa5, 0xa2, 0x97, 0x6f, 0xaf, 0xe8, -0x3c, 0xbd, 0x5a, 0xe0, 0x69, 0x36, 0x1b, 0x6c, 0xdb, 0x36, 0xb2, 0xaa, -0x02, 0xfd, 0x73, 0xdb, 0xb6, 0x11, 0x9e, 0x79, 0xe6, 0x51, 0xf6, 0xef, -0xdf, 0xcd, 0xc4, 0xc4, 0x65, 0xea, 0xf5, 0xd9, 0x5c, 0x09, 0x04, 0x6b, -0xc8, 0x09, 0x38, 0x5b, 0x4c, 0x83, 0xb5, 0x79, 0x4a, 0xf5, 0x9c, 0xe8, -0xe6, 0x71, 0xc3, 0x1a, 0x90, 0x7d, 0x9d, 0x3c, 0x14, 0x81, 0x85, 0x85, -0x06, 0xc6, 0xd8, 0x6e, 0x6e, 0xc2, 0xf2, 0x7e, 0x26, 0xff, 0x8d, 0xae, -0xb8, 0x06, 0xd6, 0x1a, 0xdf, 0xfc, 0xe6, 0xd7, 0xf8, 0xea, 0x57, 0x77, -0xf3, 0xc6, 0x1b, 0xef, 0x30, 0x39, 0x39, 0x87, 0x35, 0xa6, 0x20, 0xe0, -0x08, 0x5d, 0x80, 0x35, 0xf9, 0x75, 0xad, 0x91, 0xa2, 0x66, 0xac, 0xde, -0x51, 0x2f, 0x23, 0x90, 0xdb, 0x99, 0x2d, 0x22, 0x0e, 0x22, 0x82, 0x31, -0xfd, 0x9d, 0xe6, 0x72, 0x12, 0xcb, 0xad, 0x71, 0xfd, 0x04, 0x00, 0xca, -0xe5, 0x32, 0x43, 0x43, 0x83, 0x4c, 0x5e, 0x9f, 0xc3, 0x18, 0x83, 0x2b, -0x72, 0x3f, 0x70, 0x16, 0x03, 0x38, 0x2b, 0x64, 0x62, 0x48, 0xd3, 0x64, -0x95, 0x3e, 0x6b, 0x05, 0x02, 0x22, 0x8a, 0x31, 0xd2, 0x23, 0xe0, 0xf3, -0x08, 0x50, 0x28, 0xd0, 0x6b, 0x91, 0x7b, 0xa3, 0xd5, 0x6a, 0x22, 0x32, -0x74, 0x5b, 0x0a, 0xbc, 0xff, 0xfe, 0x25, 0xde, 0x7e, 0xfb, 0x1c, 0xad, -0x56, 0x8c, 0x2b, 0x52, 0x27, 0x74, 0x8e, 0x28, 0x0c, 0x08, 0x83, 0xdc, -0xa5, 0x8c, 0xcf, 0xad, 0x34, 0x4d, 0x53, 0xa4, 0x47, 0xe0, 0xcc, 0x9a, -0x04, 0x54, 0x05, 0x83, 0x21, 0x8e, 0x63, 0x16, 0x16, 0x1a, 0x85, 0x22, -0xbd, 0x9e, 0x5e, 0xc4, 0x70, 0x43, 0x06, 0xd1, 0x6c, 0xb6, 0xb9, 0xe3, -0x8e, 0x91, 0x75, 0x29, 0x30, 0x35, 0x35, 0xc7, 0x5b, 0x6f, 0x9d, 0x63, -0x6a, 0x6a, 0x96, 0x2c, 0xcb, 0x30, 0x08, 0xd6, 0xd8, 0x1c, 0x7c, 0x10, -0x10, 0x05, 0x8e, 0xc0, 0x39, 0x52, 0x9f, 0x61, 0xac, 0xc1, 0x60, 0xba, -0x6d, 0x49, 0x31, 0xe6, 0xd6, 0x24, 0x20, 0x22, 0x27, 0x8d, 0xb5, 0x07, -0x92, 0xb8, 0x4d, 0xb3, 0xd1, 0xa2, 0x93, 0x77, 0xa6, 0x53, 0x3d, 0xa1, -0xdb, 0xcb, 0x40, 0xaf, 0xf8, 0x84, 0x61, 0xb4, 0xa6, 0x02, 0xcd, 0x66, -0xcc, 0x3b, 0xef, 0x5c, 0xe0, 0xf2, 0xe5, 0xeb, 0xa4, 0x69, 0x4a, 0x96, -0x79, 0x50, 0xc1, 0x19, 0x43, 0x14, 0x38, 0xca, 0x51, 0x40, 0xb9, 0x14, -0x12, 0x05, 0x0e, 0x80, 0xcc, 0xe7, 0xe0, 0xe3, 0x24, 0x2e, 0xa2, 0xdf, -0x25, 0x70, 0xf2, 0x56, 0x04, 0xe6, 0x72, 0xd6, 0x8b, 0xcc, 0xd4, 0x67, -0xa8, 0x94, 0x4b, 0x24, 0x71, 0x82, 0xa8, 0x60, 0xc8, 0x15, 0x52, 0x01, -0x51, 0xed, 0x1d, 0xde, 0xdc, 0x62, 0x0d, 0x9c, 0x3d, 0x7b, 0x89, 0xf3, -0xe7, 0x2f, 0xd3, 0x6a, 0xb5, 0xc9, 0xb2, 0x0c, 0xdf, 0x05, 0x6f, 0x29, -0x85, 0x01, 0x03, 0xa5, 0x88, 0x4a, 0x14, 0x51, 0x0e, 0x03, 0x9c, 0x73, -0x64, 0xe2, 0xbb, 0xd7, 0x9d, 0x9d, 0x9b, 0xc3, 0x7b, 0xed, 0x57, 0xe0, -0x56, 0x29, 0xa4, 0x67, 0x14, 0x7d, 0xa4, 0xb1, 0xd4, 0xa0, 0xdd, 0x6e, -0x52, 0xad, 0x0e, 0x80, 0x0a, 0x81, 0x31, 0x39, 0x68, 0x35, 0x18, 0x3c, -0x5e, 0xa4, 0x78, 0xdd, 0xe9, 0x20, 0x6f, 0x76, 0xa1, 0x7a, 0x7d, 0x9e, -0x33, 0x67, 0xce, 0xb2, 0xb8, 0xd8, 0xe8, 0x15, 0x3e, 0xef, 0x31, 0x28, -0xce, 0x5a, 0xa2, 0xc0, 0x51, 0x89, 0xa2, 0x9c, 0x40, 0x29, 0x22, 0x0a, -0x1d, 0xaa, 0x90, 0x79, 0x8f, 0xa0, 0x78, 0x15, 0xe6, 0xe6, 0x66, 0x97, -0x35, 0x79, 0xeb, 0x51, 0xe0, 0x35, 0x63, 0xcc, 0xd1, 0x46, 0xa3, 0x81, -0xcf, 0x32, 0xd2, 0x38, 0xc5, 0x19, 0x8a, 0xf2, 0x0e, 0x06, 0x21, 0xf3, -0x79, 0x4a, 0x21, 0x79, 0x15, 0x6d, 0x36, 0x5b, 0xc5, 0x21, 0x56, 0x7e, -0x8d, 0x56, 0xab, 0xcd, 0x7b, 0xef, 0x7d, 0xc8, 0x95, 0x2b, 0x93, 0x85, -0xc5, 0x7a, 0xb4, 0x28, 0x56, 0xce, 0x1a, 0x9c, 0xc9, 0xc1, 0x97, 0xc2, -0x80, 0x6a, 0xb9, 0xc4, 0x40, 0x29, 0x22, 0x0c, 0x02, 0xac, 0x85, 0x24, -0xf3, 0x78, 0x15, 0x32, 0x2f, 0xd4, 0x67, 0x66, 0x89, 0x93, 0x14, 0x2f, -0xdd, 0xc8, 0xbc, 0x36, 0x36, 0x76, 0x64, 0xfe, 0x46, 0x02, 0xcb, 0x0a, -0xd9, 0xf1, 0xe3, 0x7f, 0xfd, 0x8e, 0x78, 0x3f, 0xee, 0xc5, 0x53, 0xaf, -0x4f, 0xe3, 0xb3, 0x04, 0x63, 0x20, 0xb0, 0x10, 0x58, 0x4b, 0xe4, 0x1c, -0x91, 0xb3, 0x84, 0xce, 0x10, 0x58, 0x70, 0x46, 0xd9, 0xba, 0x65, 0x33, -0x23, 0x23, 0x23, 0x78, 0x0f, 0x67, 0xcf, 0x8e, 0x73, 0xfa, 0xd4, 0x5b, -0x5c, 0xbb, 0x32, 0x09, 0x2a, 0x18, 0x15, 0xac, 0xe6, 0x37, 0x89, 0xac, -0xa5, 0x12, 0x06, 0x54, 0xcb, 0x11, 0x1b, 0x2a, 0x65, 0x36, 0x55, 0x07, -0x18, 0xac, 0x94, 0xf3, 0xe8, 0x07, 0xf9, 0xbe, 0x5d, 0x44, 0x49, 0x33, -0x4f, 0x9c, 0xa6, 0x5c, 0x9f, 0xbc, 0x8e, 0x97, 0xac, 0x3f, 0xfa, 0xaf, -0xde, 0x08, 0xfe, 0x26, 0x05, 0x8a, 0x44, 0xfa, 0xa5, 0x78, 0x79, 0x7a, -0x7a, 0x7a, 0x9a, 0xcd, 0xc3, 0x9b, 0x89, 0x02, 0x8b, 0xc1, 0x12, 0xd8, -0xdc, 0x8d, 0x9c, 0xc9, 0x01, 0xa5, 0x05, 0xfb, 0x5d, 0x77, 0x7f, 0x89, -0xb9, 0xd9, 0x05, 0xde, 0x7f, 0xf7, 0x2c, 0xcd, 0x56, 0x0b, 0x15, 0xcd, -0xdb, 0x00, 0x0c, 0xb8, 0xbc, 0x2d, 0x76, 0xc6, 0x75, 0xd3, 0xa6, 0x14, -0x06, 0x94, 0xa3, 0x90, 0x52, 0x18, 0x12, 0x85, 0x0e, 0x63, 0x0c, 0x99, -0x17, 0xbc, 0x08, 0x49, 0x96, 0x91, 0x64, 0x9e, 0x4f, 0xae, 0x4c, 0xd0, -0x8e, 0x63, 0x7c, 0xb7, 0x4f, 0x62, 0x7c, 0x6c, 0xec, 0xc8, 0x4a, 0x87, -0xc1, 0x37, 0x13, 0x50, 0xd5, 0x57, 0xbc, 0xf8, 0xa7, 0x93, 0x34, 0x61, -0x6a, 0xfa, 0x3a, 0xa5, 0x3b, 0xef, 0x24, 0xb0, 0x79, 0x9b, 0x1b, 0x38, -0x43, 0xa8, 0x01, 0xa1, 0xb3, 0x64, 0xce, 0x92, 0x7a, 0x4b, 0x92, 0x19, -0xce, 0xbf, 0xfb, 0x01, 0xc6, 0x0b, 0xe5, 0x20, 0x40, 0x34, 0xef, 0x2e, -0xc1, 0x61, 0x01, 0xe7, 0x0c, 0x81, 0x75, 0x84, 0x81, 0xcd, 0xad, 0x32, -0x0c, 0x88, 0x82, 0x80, 0xc0, 0x59, 0xc0, 0x90, 0x89, 0x27, 0x13, 0x4f, -0x3b, 0x49, 0x69, 0xa7, 0x29, 0x53, 0xf5, 0x69, 0xea, 0x33, 0x73, 0xa4, -0x59, 0x86, 0x48, 0x37, 0xfc, 0x47, 0x57, 0x02, 0x0f, 0xab, 0x1c, 0x6c, -0xfd, 0xe8, 0x47, 0xff, 0xf4, 0x6a, 0x18, 0x04, 0xdf, 0x29, 0x47, 0x21, -0xf7, 0x7e, 0xf9, 0x1e, 0x86, 0x36, 0xd5, 0x28, 0x87, 0x01, 0xa5, 0x30, -0x20, 0x28, 0xfc, 0x59, 0x54, 0xf1, 0xde, 0x93, 0x79, 0x21, 0xf3, 0x9e, -0xcc, 0xfb, 0xc2, 0x31, 0x84, 0x7c, 0x3f, 0x05, 0xd6, 0xe4, 0xbd, 0x4d, -0xe8, 0x2c, 0x81, 0x73, 0xc5, 0x2c, 0x1a, 0x34, 0x55, 0x52, 0x9f, 0xa7, -0x4b, 0x33, 0x4e, 0x69, 0xc4, 0x31, 0xd7, 0xa7, 0xa7, 0xf9, 0xf8, 0xe2, -0x38, 0xad, 0x38, 0xee, 0x27, 0x70, 0x66, 0x6c, 0xec, 0xc8, 0x9f, 0xaf, -0x46, 0x60, 0xc5, 0xa3, 0xc5, 0xd0, 0xd9, 0x9f, 0x66, 0x59, 0x7a, 0x28, -0x81, 0xda, 0xf8, 0xa5, 0xcb, 0x04, 0xf7, 0x04, 0xd8, 0xc1, 0x0d, 0x79, -0xd5, 0x0c, 0x43, 0x9c, 0xb3, 0x04, 0x06, 0x28, 0xaa, 0xa6, 0x14, 0xae, -0x24, 0xa2, 0xfd, 0xc7, 0x11, 0xf9, 0xce, 0xca, 0x80, 0x2d, 0xba, 0x4b, -0x63, 0x0c, 0x8a, 0xe2, 0x45, 0x0a, 0xf0, 0x19, 0xcd, 0x38, 0xa5, 0x19, -0xc7, 0x4c, 0xd5, 0xeb, 0x5c, 0xbc, 0x7c, 0x89, 0x38, 0xc9, 0xc8, 0xbc, -0xef, 0xb7, 0xce, 0xc3, 0xab, 0x81, 0x5f, 0x55, 0x01, 0x80, 0x1f, 0xfe, -0xe0, 0x1f, 0x9f, 0x35, 0xc6, 0xfe, 0x7d, 0x39, 0x8a, 0xa8, 0x56, 0xca, -0xec, 0xba, 0x67, 0x27, 0xb5, 0xc1, 0x41, 0x2a, 0x51, 0x58, 0x28, 0x61, -0x71, 0xd6, 0x62, 0xad, 0xe9, 0xd6, 0x99, 0x1c, 0x5e, 0x31, 0x0a, 0x19, -0x3a, 0x85, 0x5b, 0x35, 0x07, 0x9e, 0xf9, 0x3c, 0xd7, 0xf3, 0xc8, 0x27, -0x34, 0xe3, 0x84, 0x89, 0x2b, 0x57, 0xb9, 0x3a, 0x79, 0x8d, 0x76, 0x9c, -0x90, 0xa4, 0x69, 0x7f, 0xee, 0x3f, 0x33, 0x36, 0x76, 0xe4, 0xd8, 0xa7, -0x22, 0x00, 0xf0, 0xfd, 0x27, 0x8f, 0xbf, 0x16, 0x38, 0x77, 0xa8, 0x54, -0x90, 0xd8, 0xb9, 0x63, 0x07, 0x43, 0x1b, 0x7b, 0x24, 0xa2, 0x20, 0xc0, -0x15, 0x44, 0x3a, 0x3b, 0xaa, 0x6e, 0xfe, 0x14, 0xc5, 0x4e, 0x8a, 0xed, -0x63, 0x9e, 0x6a, 0xf9, 0x22, 0x6d, 0x27, 0x29, 0xad, 0x24, 0x61, 0x61, -0x69, 0x89, 0x8b, 0x13, 0x13, 0xcc, 0x2d, 0x2c, 0xd0, 0x8e, 0x13, 0x32, -0x9f, 0x91, 0xf9, 0x2e, 0xf8, 0x57, 0xc7, 0xc6, 0x8e, 0x7c, 0x77, 0x2d, -0xf0, 0x70, 0x8b, 0xd3, 0xe9, 0xc0, 0xb9, 0xc3, 0x71, 0x9a, 0x9e, 0x54, -0xd5, 0xbd, 0x22, 0x9e, 0xf3, 0x1f, 0x7d, 0xc4, 0xd6, 0xcd, 0xa3, 0xdc, -0xb1, 0x65, 0x94, 0x81, 0x52, 0x89, 0x28, 0xf4, 0x44, 0x81, 0x23, 0x74, -0x0e, 0x67, 0xf3, 0x0d, 0x48, 0xe7, 0x18, 0x44, 0xc9, 0x81, 0x7b, 0x2f, -0x64, 0x22, 0x24, 0x69, 0x56, 0xb8, 0x4c, 0xc6, 0x52, 0xb3, 0xc5, 0xb5, -0xa9, 0x49, 0xa6, 0xa6, 0xa7, 0x69, 0xb6, 0x13, 0x92, 0x34, 0xc9, 0xd7, -0x90, 0xdc, 0x1e, 0xf8, 0x5b, 0x2a, 0x00, 0xf0, 0xc3, 0xef, 0xff, 0x43, -0x2d, 0xc9, 0xb2, 0x93, 0x81, 0x73, 0x7b, 0xc3, 0xc0, 0x51, 0x0a, 0x43, -0x06, 0x2a, 0x65, 0xb6, 0x8c, 0x6c, 0x66, 0xb8, 0x56, 0xa3, 0x52, 0x2e, -0x11, 0x76, 0x17, 0x67, 0x4e, 0x00, 0xcd, 0xdb, 0x0d, 0xd1, 0x7c, 0xe3, -0x93, 0x7a, 0x4f, 0x92, 0x66, 0xcc, 0x2f, 0x2e, 0x32, 0x3b, 0x3f, 0xc7, -0xf4, 0xcc, 0x0c, 0xad, 0x38, 0x07, 0x9e, 0x66, 0x45, 0x95, 0xee, 0x55, -0xdc, 0x75, 0x83, 0x5f, 0x17, 0x01, 0x80, 0x1f, 0x3c, 0x79, 0xbc, 0x16, -0x27, 0xc9, 0x6b, 0xd6, 0xda, 0x87, 0xa2, 0xd0, 0x11, 0x06, 0x01, 0x61, -0x10, 0x10, 0x85, 0x21, 0x1b, 0x37, 0x6c, 0xa0, 0x3a, 0x50, 0x65, 0x43, -0x75, 0x80, 0x28, 0x8c, 0x70, 0x2e, 0x6f, 0xc8, 0xbc, 0xcf, 0x88, 0x93, -0x94, 0x76, 0xbb, 0xcd, 0x52, 0x63, 0x89, 0xf9, 0xc5, 0x45, 0xe2, 0x24, -0xa1, 0x9d, 0xa4, 0xa4, 0x59, 0xde, 0xd0, 0x79, 0x29, 0xda, 0x92, 0x3e, -0xbb, 0x1c, 0x1b, 0x3b, 0xf2, 0xd3, 0xf5, 0x82, 0x5f, 0x37, 0x81, 0xce, -0xf8, 0xee, 0xe1, 0x17, 0x8f, 0x1a, 0x63, 0x7e, 0xe2, 0xac, 0xc5, 0xb9, -0xbc, 0x38, 0x05, 0x85, 0xa7, 0xe7, 0x1b, 0x11, 0xd7, 0x4d, 0x21, 0xc8, -0x17, 0xac, 0x48, 0xc7, 0x66, 0xb3, 0xae, 0xdd, 0x8a, 0x48, 0x37, 0x5d, -0x8a, 0xdb, 0x8f, 0x03, 0x87, 0xc7, 0xc6, 0x8e, 0x9c, 0xba, 0x1d, 0xf0, -0xb7, 0x4d, 0x00, 0xe0, 0x89, 0x27, 0x5e, 0xd8, 0x6b, 0x8c, 0x79, 0xc5, -0x1a, 0x73, 0xc0, 0xd8, 0xde, 0xc6, 0xdb, 0x16, 0x95, 0xda, 0x16, 0xb6, -0xd3, 0x39, 0xd7, 0x14, 0x95, 0x6e, 0x94, 0x65, 0xd9, 0x49, 0x1d, 0x90, -0xf7, 0xf7, 0xaf, 0xdc, 0x6e, 0xd4, 0x3f, 0x13, 0x81, 0xce, 0x78, 0xfc, -0xf1, 0x9f, 0x3d, 0x64, 0x0c, 0x87, 0xad, 0xb1, 0x8f, 0x18, 0x63, 0x6a, -0xbd, 0x0d, 0x78, 0x6f, 0xc7, 0xd3, 0x01, 0x9c, 0xef, 0x25, 0x96, 0x01, -0x3f, 0x03, 0xbc, 0xc2, 0x2a, 0x0d, 0xda, 0xff, 0x0b, 0x81, 0xfe, 0xf1, -0xf8, 0xe3, 0x3f, 0x3b, 0x04, 0xec, 0x23, 0x3f, 0xf6, 0xd8, 0x59, 0xcc, -0xce, 0x98, 0x23, 0x07, 0x3c, 0x4e, 0xde, 0x0e, 0x9f, 0x1c, 0x1b, 0x3b, -0x72, 0xf1, 0x33, 0xdf, 0xb4, 0x18, 0x7f, 0xb2, 0xbf, 0xd4, 0x7f, 0x5e, -0xe3, 0x0b, 0xff, 0xcf, 0x1e, 0x5f, 0x78, 0x02, 0xff, 0x07, 0xe2, 0x1a, -0xeb, 0x6e, 0x4b, 0x67, 0x61, 0x8b, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, -0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_play.xpm b/Source/Core/DolphinWX/resources/toolbar_play.xpm deleted file mode 100644 index e7bae8dc84..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_play.xpm +++ /dev/null @@ -1,149 +0,0 @@ -/* XPM */ -static const char *toolbar_play_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 95 2", -" c #9D0F08", -". c #A5160F", -"X c #AE170F", -"o c #B5160F", -"O c #A31710", -"+ c #A51A12", -"@ c #AA1B14", -"# c #A11E18", -"$ c #A81F18", -"% c #B31A13", -"& c #BC1A11", -"* c #A5211A", -"= c #AD231C", -"- c #B3231C", -"; c #BC241C", -": c #AA2B24", -"> c #AE322B", -", c #B9322B", -"< c #B03933", -"1 c #CA1006", -"2 c #CE170E", -"3 c #D1180F", -"4 c #C31B12", -"5 c #CC1A12", -"6 c #D11A11", -"7 c #C3241C", -"8 c #CB241C", -"9 c #D3231B", -"0 c #D32C25", -"q c #D23B34", -"w c #B4403B", -"e c #AF4B45", -"r c #B84C46", -"t c #B6534E", -"y c #B65F5A", -"u c #BA635E", -"i c #BE6560", -"p c #BE6C67", -"a c #D24E47", -"s c #C0625D", -"d c #CE625C", -"f c #D7635E", -"g c #C46661", -"h c #CA6662", -"j c #CE6862", -"k c #D36762", -"l c #D36863", -"z c #DC6964", -"x c #DE716B", -"c c #C67874", -"v c #D07874", -"b c #C98581", -"n c #CD918D", -"m c #D2918D", -"M c #D39D9B", -"N c #E38985", -"B c #E6A39F", -"V c #D3A5A2", -"C c #DCB6B3", -"Z c #D7B9B6", -"A c #D8B9B6", -"S c #D8BBB9", -"D c #E3B5B2", -"F c #CDCCCC", -"G c #D9C4C2", -"H c #D0CFCF", -"J c #DBCBCA", -"K c #D4D3D3", -"L c #D8D7D7", -"P c #D7D8D6", -"I c #D8D8D7", -"U c #DCDCDB", -"Y c #EBC5C3", -"T c #E4CAC8", -"R c #E2D1D0", -"E c #EDD5D4", -"W c #E0DFDF", -"Q c #E9DBDA", -"! c #F1D9D8", -"~ c #E0E0DF", -"^ c #E4E3E3", -"/ c #EAE5E4", -"( c #E8E8E7", -") c #E8E7E8", -"_ c #E6E9E8", -"` c #ECECEC", -"' c #F2EDEC", -"] c #EEF0EF", -"[ c #F0F0EF", -"{ c #EDF2F2", -"} c #F2F3F2", -"| c #F1F8F7", -" . c #F4FBFB", -".. c #F9FEFE", -"X. c None", -/* pixels */ -"X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.I P F F F F F F F F P I X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.I F F K L U ^ ^ ^ ^ ^ ^ U I K F F I X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.X.X.X.X.X.K F K U ( ( ` ` ` ` ( ( ` ` ` ` ( ( U K F K X.X.X.X.X.X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.X.X.X.I F P ^ ( ` ( ( ` ` ` ` ` ` ` ` ` ` ( ( ` ( ^ L F L X.X.X.X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.X.X.F K ^ ` ( ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ( ( ( ` ^ K F X.X.X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.U F I ( ` ( ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ( ( ( U F U X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.I F ^ ` ( ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ( ` ^ F L X.X.X.X.X.X.X.", -"X.X.X.X.X.X.I F ^ ` ) ` ` ` ` ` ` ` ` ` ` [ [ [ [ [ [ ` ` ` ` ` ` ` ` ` ` ( ` ^ F L X.X.X.X.X.X.", -"X.X.X.X.X.U F ^ ` ( ` ` ` ` ` ` ` ` [ } } } } } } } } } [ ` ` ` ` ` ` ` ` ` ( ( ^ F U X.X.X.X.X.", -"X.X.X.X.X.F W ` ( ` ` ` ` ` ` ` } } } } } } } } } } } } } } } [ ` ` ` ` ` ` ` ( ` ^ F X.X.X.X.X.", -"X.X.X.X.F I ` ( ` ` ` ` ` ` ` } } } } } } } } } } } } } } } } } } [ ` ` ` ` ` ` ( ` U F X.X.X.X.", -"X.X.X.U H ( ( ` ` ` ` ` ` } } } } | } } } } } } } } } } } } } } } } [ ` ` ` ` ` ` ( ( K I X.X.X.", -"X.X.X.F ^ ` ` ` ` ` ` ` } } } } } E } .} } } } } } } } } } } } } } } [ ` ` ` ` ` ` ( ^ F X.X.X.", -"X.X.P K ` ( ` ` ` ` ` } } } } } .f a Y .. .} } } } } } } } } } } } } } [ ` ` ` ` ` ( ` L K X.X.", -"X.X.F ^ ` ` ` ` ` ` [ } } } } } .z 1 9 x ! .. .| | } } } } } } } } } } } ` ` ` ` ` ` ( ^ F X.X.", -"X.U K ( ` ` ` ` ` [ } } } } } } ..z 5 9 3 0 N ' .. .| | | } } } } } } } } } [ ` ` ` ` ( ` K U X.", -"X.F U ` ` ` ` ` ` } } } } } } } ..z 6 9 9 9 2 q B | ..} ` ` ` ( ( ( ( ( ( ( ` ` ` ` ` ( ` W F X.", -"X.F ^ ` ` ` ` ` ` } } } } } } } ..z 6 9 9 9 9 5 5 a D | | ` ` ` ( ( ( ^ ^ ^ U U ^ ( ` ` ( ( F X.", -"U K ( ` ` ` ` ` [ } } } } } } } ..z 6 9 9 9 8 8 8 4 4 d T .{ ` ` ( ( ( ^ ^ ^ U U U U ( ` ` K U ", -"L L ` ` ` ` ` ` } } } } } } } | ..z 5 9 9 8 8 8 8 7 7 & ; v Q .` ( ( ( ^ ^ ^ U U U I P U ) U P ", -"F U ` ` ` ` ` [ } } } } } } } | ..z 5 8 8 8 8 8 7 7 7 ; ; o , m / { _ ( ^ ^ ^ ~ U U U I K K I F ", -"F ^ ` ` ` ` ` [ } } } } } } | | ..l 4 8 8 8 8 7 7 7 ; ; ; - % X w V ` { ^ ^ ^ ~ U U U I K K F F ", -"F ^ ` ` ` ` ` [ } } } } } } | | .k 4 7 7 7 7 7 7 7 ; ; ; - - - @ + t A ` _ ^ ^ U U U I K K F F ", -"F ^ ` ` ` ` ` [ } } } } } } | } | l 4 7 7 7 7 7 ; ; ; ; - - - = = * + # y J _ ^ U U U I K K H F ", -"F ^ ` ` ` ` ` [ } } } } } | } ` | l & 7 7 7 ; ; ; ; ; - - - = = = * + # y J _ ^ U U U I K K H F ", -"F ^ ` ` ` ` ` [ } } } } } } ` ` | j & ; ; ; ; ; ; ; - - - - = = + + t Z ` _ ^ ^ U U U I K K F F ", -"F ^ ` ` ` ` ` [ } } } } } ` ` ` | h % ; ; ; ; ; - - - - - = $ . w V ` { ( ^ ^ ^ U U U I K K F F ", -"H U ` ` ` ` ` [ } } } } ` ( ` ` | h % - - - - - - - - = = . > n / { _ ( ^ ^ ^ ~ U U U I K K F F ", -"L L ` ` ` ` ` [ } } } } ( ( ( ` | g % - - - - - - - = @ = c Q .] ( ( ( ^ ^ ^ ~ U U U P K K F L ", -"U K ( ` ` ` ` ` } } } ` ( ( ( ` | g @ - - - - = = @ @ s T .} ` ` ( ( ( ^ ^ ^ U U U U P K H F U ", -"X.F ( ` ` ` ` ` [ } } ^ ^ ( ( ( { g @ = = = = @ + r C | | ` ` ` ( ( ( ^ ^ ^ ^ U U U I K K H F X.", -"X.H U ` ` ` ` ` ` } ` ^ ^ ( ( ( { i + = = $ . < M ' .] ` ` ` ( ( ( ( ^ ^ ^ ~ U U U I K K F H X.", -"X.U K ` ` ` ` ` ` } ( ^ ^ ^ ( ( { i + * O : b / .{ ` ` ` ` ( ( ( ( ^ ^ ^ ~ U U U U P K K F U X.", -"X.X.F ^ ` ` ` ` ` ` ^ ^ ^ ^ ^ ( { u * p R | { ` ` ` ` ( ( ( ( ( ^ ^ ^ ^ U U U U I K K F F X.X.", -"X.X.P P ` ` ` ` ` ` U ~ ^ ^ ^ ^ ` y e S { { ` ` ` ` ( ( ( ( ( ( ^ ^ ^ ^ U U U U I P K K F P X.X.", -"X.X.X.F ^ ` ` ` ` ( U U ^ ^ ^ ^ ^ G ^ { ( ( ( ( ( ( ( ( ( ( ^ ^ ^ ^ ^ U U U U U P K K F F X.X.X.", -"X.X.X.U K ( ` ` ` ^ U U U ~ ^ ^ ^ _ _ ^ ( ( ( ( ( ( ( ( ^ ^ ^ ^ ^ ^ U U U U U I K K H F U X.X.X.", -"X.X.X.X.F U ` ` ` ^ U U U U U ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ~ U U U U U I P K K F F X.X.X.X.", -"X.X.X.X.X.F ^ ` ` ~ I U U U U U ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ U U U U U U I P K K F F X.X.X.X.X.", -"X.X.X.X.X.U F ^ ` U P I U U U U U U ~ ^ ^ ^ ^ ^ ^ ^ ^ ^ ~ U U U U U U U I P K K F F U X.X.X.X.X.", -"X.X.X.X.X.X.I F ^ U K P I U U U U U U U U U U U U U U U U U U U U U U I K K K F F I X.X.X.X.X.X.", -"X.X.X.X.X.X.X.I F L K K K P I U U U U U U U U U U U U U U U U U U I P K K K F F I X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.U F F K K K K P I U U U U U U U U U U U U U U I P K K K K F F U X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.X.X.F F H K K K K P I I I U U U U U U I I P P K K K K H F F X.X.X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.X.X.X.U F F H K K K K K K P P P P P P K K K K K K H F F U X.X.X.X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.X.X.X.X.X.K F F F K K K K K K K K K K K K K H F F F K X.X.X.X.X.X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.U K F F F F K K K K K K F F F F K U X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.", -"X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.U I K F F F F F F K I U X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X." -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_plugin_dsp.xpm b/Source/Core/DolphinWX/resources/toolbar_plugin_dsp.xpm deleted file mode 100644 index 3d84871078..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_plugin_dsp.xpm +++ /dev/null @@ -1,303 +0,0 @@ -/* XPM */ -static const char *toolbar_plugin_dsp_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 249 2", -" c #3C3937", -". c #3F3C3A", -"X c #413E3C", -"o c #44413F", -"O c #464341", -"+ c #4A4745", -"@ c #4B4846", -"# c #4D4C4A", -"$ c #524F4E", -"% c #545252", -"& c #595655", -"* c #5A5857", -"= c #575959", -"- c #5D5C5B", -"; c #7D4945", -": c #7D504E", -"> c #615F5E", -", c #7C5856", -"< c #745D5B", -"1 c #7B5D5A", -"2 c #62605F", -"3 c #6F605D", -"4 c #7F605E", -"5 c #5F6363", -"6 c #656564", -"7 c #686665", -"8 c #6A6867", -"9 c #6C6B6A", -"0 c #746564", -"q c #796462", -"w c #736D6B", -"e c #7B6B6A", -"r c #67706F", -"t c #73706F", -"y c #6E7575", -"u c #747372", -"i c #7A7574", -"p c #757877", -"a c #7A7877", -"s c #777D7C", -"d c #7C7C7C", -"f c #9D1B14", -"g c #9B1E18", -"h c #A3170F", -"j c #A41A12", -"k c #AC1911", -"l c #A11F18", -"z c #B41B13", -"x c #BB1E15", -"c c #95241D", -"v c #9C221B", -"b c #BC2017", -"n c #B5251E", -"m c #BC231B", -"M c #9C2620", -"N c #952A24", -"B c #992A24", -"V c #962D28", -"C c #9D2F29", -"Z c #96322C", -"A c #9C332D", -"S c #943732", -"D c #9A3630", -"F c #933A35", -"G c #9E3934", -"H c #953F3A", -"J c #9B3F39", -"K c #A62D26", -"L c #AC2B23", -"P c #A22F29", -"I c #B42B24", -"U c #A6352E", -"Y c #AA332D", -"T c #B1312B", -"R c #A93630", -"E c #A23C35", -"W c #AA3B35", -"Q c #A43E38", -"! c #C11F17", -"~ c #C12017", -"^ c #C12119", -"/ c #8B413D", -"( c #9A413C", -") c #A3423D", -"_ c #A9413B", -"` c #884440", -"' c #834A46", -"] c #844F4C", -"[ c #9A4741", -"{ c #964A46", -"} c #9B4944", -"| c #9B4E49", -" . c #8C504C", -".. c #93524F", -"X. c #9A514D", -"o. c #825654", -"O. c #8D5653", -"+. c #965551", -"@. c #9D5753", -"#. c #9F5955", -"$. c #975E5A", -"%. c #995F5C", -"&. c #A44742", -"*. c #A34944", -"=. c #A34E49", -"-. c #AC4E48", -";. c #B14F4A", -":. c #A2524D", -">. c #A9524D", -",. c #A55954", -"<. c #A95F5B", -"1. c #93625F", -"2. c #9C615E", -"3. c #A9625E", -"4. c #B6625D", -"5. c #806562", -"6. c #826866", -"7. c #896966", -"8. c #866D6C", -"9. c #8C6B69", -"0. c #9C6562", -"q. c #9F6F6C", -"w. c #84716F", -"e. c #8C706E", -"r. c #9D716E", -"t. c #857270", -"y. c #8D7775", -"u. c #817F7E", -"i. c #897C7B", -"p. c #937B79", -"a. c #A36461", -"s. c #AB6662", -"d. c #A06966", -"f. c #AA6964", -"g. c #A76E6B", -"h. c #B06B66", -"j. c #B26D69", -"k. c #A6716E", -"l. c #AC716E", -"z. c #A17572", -"x. c #AC7672", -"c. c #AC7A76", -"v. c #AA7E7B", -"b. c #B17773", -"n. c #BC7C79", -"m. c #C1716C", -"M. c #7C807F", -"N. c #82807F", -"B. c #A5807D", -"V. c #AB817F", -"C. c #B3807C", -"Z. c #7D8382", -"A. c #848483", -"S. c #888685", -"D. c #848887", -"F. c #8A8887", -"G. c #868B8A", -"H. c #8D8B8A", -"J. c #9B8583", -"K. c #908F8E", -"L. c #91908F", -"P. c #98908F", -"I. c #8D9494", -"U. c #959493", -"Y. c #989695", -"T. c #949897", -"R. c #999897", -"E. c #959B9A", -"W. c #9C9C9B", -"Q. c #A28482", -"!. c #AB8583", -"~. c #AB8987", -"^. c #A78B89", -"/. c #B58784", -"(. c #B98682", -"). c #B28986", -"_. c #B38F8D", -"`. c #BA8F8C", -"'. c #A9918F", -"]. c #B2918E", -"[. c #A79694", -"{. c #AC9594", -"}. c #AB9896", -"|. c #A19F9E", -" X c #AA9C9B", -".X c #B39592", -"XX c #BA9491", -"oX c #B89A97", -"OX c #B49D9B", -"+X c #BA9B99", -"@X c #A1A09F", -"#X c #B5A19F", -"$X c #BBA09E", -"%X c #9DA3A3", -"&X c #A5A4A3", -"*X c #ABA6A5", -"=X c #A5A8A7", -"-X c #A9A8A7", -";X c #A5ABAA", -":X c #ACABAB", -">X c #BEA5A3", -",X c #B1AEAD", -"XkXkX0XA.dXvXkXH.", -"nXG x I i D.H.U.R.@X&X:X3X6X0XdXhXkXvXnXNX|.U.:X8X0X3X:XH.y ..b m k k.zXdXpXE `.cXkXdXN.0XkXhXF.", -"lXA x Y d H.U.R.W.&X-X:X3X6X0XdXfXkXxXnXMXK.F.:X3X3X,X&XA.9 4 m m z X.jXdXgX*.b.kXfXpXd 3XhXpXu.", -"kXC x U A.U.Y.W.&X&X-X:X3X3X6X0XdXfXhXkXMXH.u U.&X-X|.F.u 6 0 I m x J dXdXgX,.s.gXdX0Xd ,XdX3XA.", -"kXA x U D.R.W.|.&X-X-X:X1X3X3X6X0XfXvXMXSXR.6 u N.A.d w 7 > 6 Y m b A 0XdXgX<.,.sX0X3Xa :XdXR.R.", -"lXA x U F.&X@X&X&X-X-X:X:X3X6XdXkXvXMXZXAX6X- 7 8 9 8 6 2 * - Q m m A 4XdXgXs.:.9X6X-Xi 1X0Xu.GX", -"bXJ x Y S.=X&X-X-X-X:X,X3X0XdXkXvXvXnXnXMXAXu & > 2 > - & $ = ) b m C 3XdXgXf.=.5X3XW.a 3X&Xa GX", -"MX| x I i.:X:X:X:X:X:X3X6X0XdXhXkXkXkXvXZXFXdX$ % & & % $ + % ) b m A 4XdXdX3.:.2X1XS.N.3Xd |.GX", -"AXg.k m 8.;X&XW.W.&X-X,X3X0X0XdXdXfXhXMXZXAXFX1X# o + + O # Q m b A 0XdXsX,.#.:X-Xu L.Y.u GXGX", -"SX.Xj m O.D.F.K.R.&X-X:X3X8X0X0XiX0XkXMXMXZXZXSXfXi # X . @ 6 R m x ( sX0XsX&.0.;XY.9 Y.9 GXGXGX", -"GXuXv ~ J s S.K.Y.|.&X:X,X3X3X6X8XdXvXvXnXMXMXZXZXZXkX6X3XkXP.L m z @.dX0X0XE r.=Xd i u K.GXGXGX", -"GXvX[ x L t S.H.Y.W.&X-X:X3X3X3X6XhXkXvXvXnXnXMXMXnXnXnXnXcXe.n m k z.gX0X.GXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGX", -"GXGXGXGXGXGXGXGXGXGXGXhX6X6X0XsXsX0X9X9X0XsX0X8X3X3X7X:Xx.4.GXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGX", -"GXGXGXGXGXGXGXGXGXGXGXGXGXdX8X3X3X8X8X8X3X3X3X5X3X:X~.j.GXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGX", -"GXGXGXGXGXGXGXGXGXGXGXGXGXGXGXkXdX3X3X3X3X3X,X{.XXn.GXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGX" -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_plugin_gfx.xpm b/Source/Core/DolphinWX/resources/toolbar_plugin_gfx.xpm deleted file mode 100644 index aa147a96a6..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_plugin_gfx.xpm +++ /dev/null @@ -1,310 +0,0 @@ -/* XPM */ -static const char *toolbar_plugin_gfx_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 256 2", -" c #0C4F95", -". c #164C91", -"X c #1A4F91", -"o c #0E5096", -"O c #0E5298", -"+ c #135296", -"@ c #1A5395", -"# c #17589B", -"$ c #15488E", -"% c #3E6292", -"& c #145EA1", -"* c #1D5EA0", -"= c #0963A7", -"- c #0663A8", -"; c #0B65A9", -": c #0E6BAD", -"> c #0661A7", -", c #1462A4", -"< c #116BAD", -"1 c #1D6BAC", -"2 c #1566A9", -"3 c #1E70AE", -"4 c #056BB0", -"5 c #156FB0", -"6 c #0D74B4", -"7 c #0374B9", -"8 c #0A77B8", -"9 c #0A7BBB", -"0 c #0B78B7", -"q c #1372B2", -"w c #1D74B3", -"e c #157BBB", -"r c #1B7BBA", -"t c #226EAD", -"y c #2868A6", -"u c #366EA8", -"i c #396FA8", -"p c #3A6AA4", -"a c #2371AF", -"s c #3D70A9", -"d c #3572AC", -"f c #2374B3", -"g c #2579B6", -"h c #247CBB", -"j c #2B7DBA", -"k c #2976B3", -"l c #327AB5", -"z c #3D7CB3", -"x c #317EBB", -"c c #4D6B93", -"v c #446796", -"b c #567598", -"n c #4174AB", -"m c #497AAF", -"M c #4A79AE", -"N c #447DB2", -"B c #4A7EB2", -"V c #547EB0", -"C c #007DC5", -"Z c #0B80BF", -"A c #0F8CBF", -"S c #1888BA", -"D c #2C87AF", -"F c #3A87A9", -"G c #3886AA", -"H c #2488B3", -"J c #2780BE", -"K c #2B82BE", -"L c #3381BC", -"P c #3B83BD", -"I c #3D81B7", -"U c #56859E", -"Y c #708D9E", -"T c #7E959F", -"R c #4685A4", -"E c #4481B5", -"W c #4D82B5", -"Q c #4385BA", -"! c #4C85B9", -"~ c #4D8ABD", -"^ c #448ABD", -"/ c #5084B7", -"( c #5186B9", -") c #538BBD", -"_ c #5C88B7", -"` c #5485A1", -"' c #618FBC", -"] c #6D92BB", -"[ c #789BBB", -"{ c #7394A6", -"} c #0383C4", -"| c #0A82C1", -" . c #0B8DC3", -".. c #0086CA", -"X. c #018CCD", -"o. c #078CC8", -"O. c #1C85C3", -"+. c #1387C5", -"@. c #0190CE", -"#. c #1E93CF", -"$. c #1291CF", -"%. c #008FD1", -"&. c #0194D2", -"*. c #0897D4", -"=. c #0C99D6", -"-. c #0299D8", -";. c #0E9AD9", -":. c #0598D4", -">. c #1499D6", -",. c #1C9AD6", -"<. c #129AD8", -"1. c #1E9AD4", -"2. c #2485C3", -"3. c #2C86C2", -"4. c #2589C7", -"5. c #2C8BC5", -"6. c #2B8CC9", -"7. c #3386C2", -"8. c #3A86C1", -"9. c #3C8AC4", -"0. c #328EC9", -"q. c #378DC8", -"w. c #2993CE", -"e. c #3392CC", -"r. c #3B93CC", -"t. c #3393C7", -"y. c #229DD5", -"u. c #2B9DD5", -"i. c #239CD8", -"p. c #2A9FD9", -"a. c #3C99D3", -"s. c #2BA2DA", -"d. c #2CA6DA", -"f. c #34A3D7", -"g. c #34A4DA", -"h. c #3CA5DD", -"j. c #34AADC", -"k. c #3BADDE", -"l. c #428BC4", -"z. c #4D8EC3", -"x. c #538EC1", -"c. c #588FC1", -"v. c #4292CA", -"b. c #469ACE", -"n. c #5491C3", -"m. c #5B94C3", -"M. c #5F9BCB", -"N. c #499DD4", -"B. c #6999C2", -"V. c #6299C8", -"C. c #6995C0", -"Z. c #769DC3", -"A. c #53A4CF", -"S. c #41A7DF", -"D. c #44ACDE", -"F. c #4BAFDF", -"G. c #4AA4DA", -"H. c #58A8D8", -"J. c #59B0DF", -"K. c #63AED8", -"L. c #6AB1D4", -"P. c #78B7D6", -"I. c #6FA3CA", -"U. c #46AAE0", -"Y. c #4CADE2", -"T. c #52AFE3", -"R. c #4EB0E0", -"E. c #54B1E3", -"W. c #5CB5E4", -"Q. c #5EB6E8", -"!. c #61B7E4", -"~. c #65B9E6", -"^. c #6ABBE7", -"/. c #63BAEA", -"(. c #6CBDE9", -"). c #75BBE5", -"_. c #72BEE9", -"`. c #6FC1EE", -"'. c #75C1EB", -"]. c #7BC4EC", -"[. c #7DC6F0", -"{. c #8E8C8C", -"}. c #878584", -"|. c #939291", -" X c #9D9C9B", -".X c #999897", -"XX c #87989F", -"oX c #A09F9E", -"OX c #A1A09F", -"+X c #939DA7", -"@X c #849CB3", -"#X c #98A1A3", -"$X c #9CA7AA", -"%X c #85A2BF", -"&X c #99A5B4", -"*X c #A5A4A4", -"=X c #A9A7A6", -"-X c #ABA8A6", -";X c #ACABAB", -":X c #A2ACAF", -">X c #B1AEAC", -",X c #B2B0AF", -"X>X>X>X>X>X>X>X>X,X5X6X9XqXqXwXbXnXnXmXmXMXMXMXMXMXMXMXMXmXmXbXbXbX9XbXUXUXUX", -"UXUXUXUX-X:Xv % v c c c c b b b b Y T XX+X#X#X$X$X$X:X2X2X0X7XqXeXnXnXnXnXnXnXnXnXnXbXwXMX>XUXUX", -"UXUXUXUX;X&X@ $ . . . . . . . . . 9 @.o.o. . . .A A S S S H H D D F F F R R R ` ` U { bXCX;X|.UX", -"UXUXUXUX>X@X@ X @ @ @ @ @ @ @ @ @ 0 -.*.=.;.<.<.;.;.-.-.-.-.&.&.&.%.%.X.X.......} C 5.mXCX;X|.UX", -"UXUXUXUX>X[ @ @ @ @ @ @ @ @ @ # @ 5 <.,.1.i.i.i.i.i.,.>.=.:.&.&.&.&.X.X.X.X.......C t.NXCX;X|.UX", -"UXUXUXUX>XrXs n n s s s i i u u p l h.h.h.h.h.h.g.g.g.s.p.,.<.:.&.&.&.X.X.X.......C r.BXZX=X|.UX", -"UXUXUX-X>XrXn m m m B B B B B W B ( J.W.W.W.W.W.W.W.W.E.E.Y.D.k.d.d.s.s.y.y.y.1.#.$.A.CXAX*X|.UX", -"UXUXUX-X>X%Xn m N N N N N B B W W / H.W.!.!.!.!.!.!.W.W.W.E.E.R.D.k.j.j.j.g.f.f.f.u.L.ZXSX*X|.UX", -"UXUXUX-X;X[ N N N N N E E W W W / / H.~.~.~.^.^.~.~.~.!.W.W.E.E.F.D.j.j.j.g.f.f.f.u.L.AXSXOXUXUX", -"UXUXUX-X2XB.z N N E E E W ! W ( ( ( H.(.^.(.(.(.(.^.^.~.~.!.W.E.E.F.k.j.j.j.g.f.f.u.P.DXSXoXUXUX", -"UXUXUX-X5XB.z E E E E ! ! ! ( ) ) ) M.(._._._._._._.(.^.~.~.W.W.E.R.D.j.j.j.g.f.f.u.P.DXSX XUXUX", -"UXUXUX=X0XI.z E Q Q Q ! ~ ) ) ) ) ) M._.'.'.'.'.'._._.(.^.~.!.W.W.E.F.k.j.j.j.f.f.u.pXGXSX XUXUX", -"UXUXUX=X0XK.I Q Q Q Q ~ ~ ) ) c.c.m.M._.].].].].].'.'._.(.^.~.!.W.E.R.D.j.j.j.g.f.u.gXHXSX XUXUX", -"UXUXUX=X3XD.L Q ^ ^ ~ ~ ) x.n.n.m.m.m.).].].cXcX].].].'._.(.^.~.W.W.E.D.j.d.s.y.,.X.P.HXSX XUXUX", -"UXUXUX-XsX,.8 3 g L ^ ~ x.n.m.m.M.V.V.).vXvXvXvXvXcX].'._.(.~.W.E.D.h.s.;.:.&.X.X...pXKXSX XUXUX", -"UXUXUX-XiX=.} : : q w g l L P l.z.z.n.K.'.].].[.'.'.^.Q.E.Y.U.h.g.s.i.,.*.&.&.X.X...pXKXSX XUXUX", -"UXUXUX-XiX:.X.6 6 q w g g j j x L P P N./.(.`.`.(./.Q.E.T.Y.U.h.h.g.p.,.*.&.&.@.X...gXHXSX XUXUX", -"UXUXUX-XiX&.%.9 6 q w h j j L L 8.8.8.b././.(.(././.Q.E.T.Y.U.h.h.g.p.,.*.&.&.X.X...hXHXSX XUXUX", -"UXUXUX-XaX%.&.} 6 0 r h j K L 7.8.9.l.v.Q././././.Q.W.E.Y.Y.S.h.g.g.p.,.:.&.&.X.X...hXGXZX.XUXUX", -"UXUXUX>XP.X.X.X.0 0 r h J K 7.7.9.9.l.v.T.Q././.Q.W.E.E.Y.U.S.h.g.p.i.>.:.&.&.X.X...hXDXCX.XUXUX", -"UXUX-X>XL.X.X.&.Z 9 e S 2.3.7.7.q.q.v.v.F.W.W.W.W.E.E.Y.Y.U.h.h.g.p.i.>.&.&.&.X.X...xXFXCX.XUXUX", -"UXUX-X>XK...X.&.} 9 Z O.2.3.5.0.q.r.r.v.G.E.E.E.E.T.Y.Y.U.S.h.g.s.p.,.*.&.&.&.X.X...xXAXNX.XUXUX", -"UXUX-X.:.&.&.X.X.X...xXZXMX|.UXUX", -"UXUX-X5XH...X.X.@.} | | O.4.6.6.e.e.r.r.a.U.U.U.U.U.U.h.h.h.g.p.i.,.*.&.&.&.X.X...o.jXVXmX|.UXUX", -"UXUX-X2Xb.C } } ..| 9 | +.O.2.5.6.0.e.e.a.h.S.S.S.h.h.h.g.g.s.p.,.=.&.&.&.@.X.X...o.jXBXmX|.UXUX", -"UXUX-X3Xt.7 9 9 9 9 0 0 0 e r h J K K 3.3.0.e.e.e.e.e.e.w.w.w.#.$.@.@.X.X.X.X.X...o.lXMXbX|.UXUX", -"UXUX=X8XK 4 6 6 6 6 6 6 6 6 q w g g g g g j K K j j j h h h r e 0 0 0 0 8 8 8 8 7 0 4XmXbX|.UXUX", -"UXUX=X8Xj > ; ; - - > = = ; ; < < 1 1 t a f f f f f f f w w q < : < < < < < < < ; 2 &XnXbX|.UXUX", -"UXUX=X2XdXuXtXZ.Z.B.m.~ Q z l k t t 1 2 , , , , , , , , , , , , , , , , , , , & & & &XbXbX|.UXUX", -"UXUX-X=X-X;X;X,X5X5X5X3X3X3XfXfXsXyXyXyXuXtXZ.C.' _ W N d y y * # # # O o o + o + &XeXwX|.UXUX", -"UXUX-X-X-X-X-X-X-X-X-X-X-X=X=X=X-X-X;X>X,X5X0X9X9XbXzXlXlXlXlXdXiXuXrXrXZ.] _ V M p +XqX9X|.UXUX", -"UX=X*X*X*X*X*X*X=X=X=X=X=X-X-X-X-X-X-X-X;X;X;X>X,X5X5X6X7X7X7X9X9XwXwXbXbXbXkXkXmXkX2X7X9X|.UXUX", -"UXUXJXSXCXMXbX9X9X5X;X;X=X=X=X*X*X*X*X=X=X=X-X;X;X5X5X5X5X5X6X7X7X7X7X7X7X6X6X6X5X5X5X6X9X|.UXUX", -"UXUXUXUXUXUXUXUXUXUXPXPXPXJXAXCXNXmXbXbX9X0X5X5X;X;X;X;X;X;X>X,X5X5X5X5X5X5X5X5X5X>X;X5X7X|.UXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXmXmXbXbXMXbXbXnXmXmXMXMXMXNXMXMXmXbXbX9X0X6X5X;X-X-X=X=X*X;X6X|.UXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUX6X5X;X5X6X9X;X{.{.{.{.|..X.X*X7XbXMXMXMXCXCXCXSXJXJXZXMXbX9XbX7XUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUX5X;X;X5X6X9XbXbX6X5X5X>X;X=X*X X;X9X9X6X,X;X;X;X5XbXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUX>X;X;X,X5X7X9XbXmXMXCXZXAXZXZXCXMXMXbXwX9X0X5X;X;X;X;XUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUX;X;X>X5X6X9XbXmXMXCXCXZXAXAXAXZXCXMXmXbX9X7X5X>X;X;X;X;XUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUX;X;X;X>X5X7X9XbXmXMXCXZXAXAXSXAXZXAXCXMXmX9X9X5X,X;X;X;X;XUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUX>X;X>X5X7X9XbXmXCXZXAXSXSXSXSXZXSXJXCXCXmX7X6X5X;X;X;X*XUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUX*X5X>X5X9XqXbXMXCXZXAXSXSXSXSXAXSXKXJXMXSXmX5X5X;X>X;XUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUX;X6X5X7XqXbXMXCXZXAXSXSXSXSXAXAXKXLXSXmXLXCX;X5X6XUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUX-XwX9X9XbXmXMXCXZXAXSXSXAXZXCXJXPXPXmXMXIXJX;XUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUX{.6XmXMXMXMXCXCXZXZXZXZXZXCXSXIXIXPXmXCX5XUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*X9XMXAXSXJXJXJXJXSXAXSXLXCX7X{.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX|. X*X=X*X X|.}.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX" -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_plugin_options.c b/Source/Core/DolphinWX/resources/toolbar_plugin_options.c deleted file mode 100644 index 13976bf5ee..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_plugin_options.c +++ /dev/null @@ -1,286 +0,0 @@ -static const unsigned char toolbar_plugin_options_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, -0x38, 0x2f, 0x30, 0x34, 0x73, 0x4e, 0xa2, 0xdf, 0x00, 0x00, 0x0c, 0x97, -0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x99, 0x6b, 0x8c, 0x5d, 0xd5, -0x75, 0x80, 0xbf, 0xbd, 0xcf, 0xfb, 0xdc, 0x79, 0x5c, 0x63, 0x7b, 0x8c, -0x5f, 0x78, 0x10, 0x85, 0x16, 0xd3, 0x8a, 0x81, 0xa9, 0x11, 0x29, 0xc4, -0x0c, 0x24, 0x54, 0x51, 0xda, 0xca, 0xa6, 0xa0, 0x96, 0xaa, 0x1a, 0x33, -0x36, 0xd8, 0x40, 0x48, 0x8a, 0x93, 0x36, 0x25, 0x90, 0x84, 0x4e, 0x7e, -0xf5, 0x19, 0xd9, 0x56, 0xa8, 0xfa, 0xa3, 0x42, 0x63, 0x34, 0x4a, 0xa5, -0xb6, 0xa2, 0xc0, 0x7f, 0x5a, 0x9b, 0xa0, 0x04, 0x42, 0x6a, 0x3c, 0xd8, -0xc1, 0xd8, 0x01, 0x93, 0x19, 0xcf, 0xd8, 0xcc, 0xfb, 0xbe, 0x1f, 0xe7, -0xb5, 0x77, 0x7f, 0x9c, 0x7b, 0xaf, 0x67, 0x0c, 0xe3, 0xf8, 0x45, 0x50, -0x97, 0xb4, 0xaf, 0x8e, 0xce, 0x3d, 0x67, 0xef, 0xf5, 0xed, 0xb5, 0xf6, -0xda, 0x6b, 0xed, 0x23, 0xb4, 0xd6, 0xfc, 0x7f, 0x16, 0xf3, 0x4a, 0x77, -0xb8, 0x6d, 0xdb, 0xb6, 0x3e, 0xa0, 0x5b, 0x6b, 0xdd, 0xdd, 0xb8, 0x35, -0x02, 0x8c, 0x0e, 0x0f, 0x0f, 0x8f, 0x5c, 0xe9, 0xb1, 0x00, 0xc4, 0x95, -0xb0, 0xc0, 0xf6, 0x1d, 0x3b, 0xfa, 0xd0, 0x0c, 0x80, 0xde, 0xa2, 0x35, -0x59, 0xd0, 0x68, 0x7d, 0xb6, 0x35, 0x24, 0x0f, 0xbc, 0x00, 0xec, 0x1d, -0x1e, 0x1e, 0x1e, 0xbd, 0xec, 0x41, 0x1b, 0x72, 0x59, 0x00, 0x0f, 0x3f, -0xf2, 0x48, 0x0f, 0xb0, 0x07, 0x4d, 0x5f, 0x7a, 0x47, 0xa3, 0x35, 0x68, -0x34, 0xe8, 0xc5, 0x10, 0xe7, 0x8c, 0xb3, 0x0f, 0x18, 0x1c, 0x1e, 0x1e, -0xce, 0x5f, 0xba, 0xea, 0xa9, 0x5c, 0x16, 0xc0, 0xce, 0x5d, 0xbb, 0x0e, -0x40, 0x43, 0x79, 0x9d, 0xfe, 0xb8, 0x9e, 0x4f, 0x7b, 0x7b, 0x07, 0x8e, -0xe3, 0x62, 0x9a, 0x26, 0x4a, 0x29, 0x6a, 0xb5, 0x2a, 0x95, 0x4a, 0x99, -0x7c, 0x6e, 0x1e, 0xa5, 0x54, 0xf3, 0xf5, 0x51, 0xe0, 0xbe, 0xcb, 0x75, -0xad, 0xcb, 0x02, 0x78, 0xf4, 0xb1, 0xc7, 0xef, 0x02, 0x0e, 0xa6, 0x00, -0x1a, 0xdf, 0xcf, 0x70, 0x6b, 0x6f, 0x2f, 0x1b, 0x36, 0x6c, 0x60, 0xc5, -0x8a, 0x15, 0x78, 0x9e, 0x8f, 0x52, 0x8a, 0x72, 0xb9, 0xcc, 0xe4, 0xe4, -0x24, 0x47, 0x8e, 0xbc, 0xc3, 0x87, 0x27, 0x3f, 0xa0, 0x52, 0x29, 0x37, -0xbb, 0xc8, 0x4b, 0x29, 0xef, 0xd9, 0xbf, 0x7f, 0xff, 0xe1, 0xcf, 0x04, -0x00, 0xe0, 0xf1, 0xaf, 0x3c, 0xf1, 0x12, 0xb0, 0x15, 0xad, 0xe9, 0xe8, -0xcc, 0xf2, 0xe4, 0x93, 0x4f, 0xa2, 0x95, 0x46, 0x69, 0xc5, 0xfc, 0x7c, -0x0e, 0xd3, 0x34, 0xf0, 0x3c, 0x0f, 0xa5, 0x34, 0x41, 0x10, 0x70, 0xf8, -0xf0, 0x61, 0x7e, 0xfa, 0xd3, 0x37, 0x28, 0x97, 0x8a, 0x4d, 0xd7, 0xca, -0x9b, 0xa6, 0xf9, 0x85, 0xe7, 0x9f, 0x7f, 0xfe, 0xed, 0xcf, 0x04, 0xe0, -0x89, 0xaf, 0x7e, 0x6d, 0x03, 0x30, 0x4a, 0xc3, 0xf7, 0x6f, 0xbd, 0xe5, -0x56, 0x2c, 0xdb, 0x61, 0x7e, 0x7e, 0x9e, 0x24, 0x49, 0x50, 0x4a, 0x21, -0xa5, 0x64, 0xcd, 0x9a, 0x35, 0x6c, 0xdc, 0xb8, 0x91, 0x4c, 0x26, 0xc3, -0xcf, 0xde, 0x7a, 0x8b, 0xff, 0x3d, 0xf4, 0x33, 0x0a, 0xf9, 0x1c, 0x4a, -0x29, 0xb4, 0xd6, 0xa3, 0x9d, 0x9d, 0x9d, 0xbd, 0xfb, 0xf6, 0xed, 0x9b, -0xbf, 0xd8, 0xf1, 0xe5, 0xf9, 0xfe, 0xdc, 0xb5, 0xeb, 0xd1, 0x9e, 0xc7, -0x1e, 0x7b, 0x7c, 0xe0, 0x7c, 0xcf, 0xfc, 0xf3, 0x73, 0x3f, 0x18, 0x93, -0x52, 0xee, 0x95, 0x52, 0x22, 0xa5, 0xe4, 0xf0, 0xc8, 0x61, 0xe6, 0xe6, -0xe6, 0x90, 0x52, 0x62, 0x18, 0x06, 0x52, 0x4a, 0x92, 0x24, 0xe1, 0xd4, -0xa9, 0x53, 0xbc, 0xfa, 0xea, 0xab, 0x8c, 0x8e, 0x8e, 0xb2, 0xe9, 0xb6, -0xdb, 0xb8, 0xe5, 0x96, 0x5e, 0xfc, 0x4c, 0x06, 0xcb, 0xb2, 0x30, 0x0c, -0xa3, 0xbb, 0x58, 0x2c, 0xee, 0xb9, 0x58, 0xe5, 0xcf, 0x0b, 0xb0, 0x6b, -0xd7, 0xa3, 0x3d, 0x52, 0xca, 0x03, 0x42, 0x88, 0xa1, 0xaf, 0x3c, 0xf1, -0xd5, 0xad, 0xe7, 0xed, 0x44, 0xca, 0x41, 0x29, 0x65, 0x5e, 0x8a, 0x14, -0x62, 0x7e, 0x6e, 0x96, 0x26, 0x50, 0xb3, 0x19, 0x86, 0x01, 0xc0, 0x91, -0x23, 0x47, 0x18, 0x1f, 0x1f, 0xa7, 0xb7, 0xb7, 0x97, 0xf5, 0xeb, 0x37, -0x60, 0x59, 0x16, 0xa6, 0x69, 0x02, 0x6c, 0x7b, 0xe8, 0xa1, 0x87, 0xee, -0xbe, 0x22, 0x00, 0x3b, 0x77, 0xed, 0xea, 0x16, 0x42, 0x1c, 0x10, 0x42, -0x64, 0x85, 0x94, 0x48, 0x21, 0x87, 0xbe, 0xf6, 0x17, 0x4f, 0xf6, 0x2c, -0xd5, 0xc9, 0xbe, 0xbd, 0x7b, 0x0a, 0x2d, 0x2b, 0x08, 0x49, 0xa1, 0x58, -0x40, 0xa9, 0xe4, 0x13, 0x21, 0x2c, 0xcb, 0xe4, 0xbd, 0x63, 0xc7, 0xc8, -0xe7, 0xf3, 0xf4, 0xf6, 0xf6, 0xd2, 0xd9, 0x99, 0xc5, 0x34, 0x4d, 0x0c, -0xc3, 0x40, 0x6b, 0xfd, 0xec, 0x15, 0x01, 0x10, 0x42, 0x0c, 0x09, 0x21, -0xb2, 0x42, 0x08, 0x84, 0x10, 0x08, 0x29, 0xb2, 0x52, 0xc8, 0xa1, 0xdd, -0x5f, 0xff, 0x46, 0x76, 0xa9, 0x8e, 0xf6, 0xec, 0xf9, 0xfe, 0xf7, 0x84, -0x94, 0xa3, 0xa2, 0xa1, 0xec, 0xec, 0xec, 0x0c, 0xad, 0xf7, 0x85, 0xc0, -0x30, 0x0c, 0x4c, 0xd3, 0xc0, 0xb2, 0x2c, 0x1c, 0xd7, 0xe1, 0xc3, 0x93, -0x27, 0xe9, 0xea, 0x5a, 0x45, 0x57, 0xd7, 0xaa, 0xa6, 0x1b, 0x21, 0x84, -0xe8, 0xeb, 0xef, 0xef, 0x5f, 0x72, 0xa2, 0x2e, 0x08, 0x60, 0xe7, 0xae, -0x5d, 0x0f, 0x09, 0x44, 0xdf, 0xc2, 0xc1, 0x1b, 0xad, 0x47, 0x08, 0x39, -0x74, 0xde, 0xce, 0xa4, 0xdc, 0x2d, 0x85, 0x40, 0x08, 0x49, 0xb1, 0x50, -0x24, 0x8e, 0x63, 0x84, 0x10, 0x48, 0x29, 0x11, 0x42, 0x60, 0x9a, 0x16, -0xb6, 0x6d, 0xe3, 0x38, 0x0e, 0xa6, 0x65, 0x32, 0x3d, 0x3d, 0xc5, 0x75, -0xd7, 0xfd, 0xc6, 0x42, 0x00, 0x80, 0x87, 0x2e, 0x0b, 0x40, 0x20, 0x06, -0x9b, 0x4a, 0x3b, 0xae, 0xcb, 0xb5, 0xdd, 0xd7, 0x2e, 0x84, 0xd8, 0xfa, -0x57, 0xdf, 0x7c, 0xea, 0x6f, 0x96, 0xea, 0xec, 0xfb, 0xff, 0xf4, 0x0f, -0xaf, 0x08, 0x29, 0x0f, 0x36, 0x9f, 0x9f, 0x9b, 0x9d, 0x6d, 0xbd, 0x6b, -0x9a, 0xa9, 0x05, 0x6c, 0xdb, 0xc6, 0x75, 0x5d, 0x5c, 0xd7, 0xa5, 0x58, -0x2c, 0xb2, 0x7c, 0xf9, 0x72, 0x32, 0x99, 0x4c, 0x0b, 0x12, 0x38, 0xef, -0x7a, 0x3b, 0x2f, 0xc0, 0x23, 0x3b, 0x77, 0xf6, 0x01, 0xdd, 0x08, 0x81, -0x94, 0x06, 0xbf, 0xf7, 0xb9, 0x3b, 0x78, 0xf0, 0xc1, 0x07, 0x59, 0x7d, -0xf5, 0xea, 0x85, 0x10, 0x83, 0x4f, 0x7d, 0xeb, 0x99, 0x25, 0x07, 0x11, -0x42, 0x74, 0x0b, 0x21, 0x40, 0x08, 0x0a, 0xc5, 0x3c, 0x51, 0x14, 0x61, -0x34, 0xfc, 0xdf, 0xb6, 0x6d, 0x1c, 0xdb, 0xc6, 0x75, 0x1d, 0x1c, 0xc7, -0xc6, 0x30, 0x0c, 0x6a, 0xf5, 0x1a, 0x8e, 0xe3, 0x22, 0x65, 0x4b, 0x95, -0xee, 0xfe, 0xfe, 0xfe, 0x25, 0x5d, 0xf5, 0xbc, 0x00, 0x02, 0xb6, 0x90, -0xce, 0x02, 0x9e, 0xef, 0xb1, 0x76, 0xdd, 0x5a, 0x1c, 0xc7, 0x61, 0x60, -0x60, 0x00, 0xd7, 0xf3, 0x16, 0x42, 0x0c, 0x3d, 0xfd, 0xcc, 0x77, 0x3f, -0xe6, 0xab, 0x7f, 0xfd, 0xd4, 0x33, 0x43, 0x40, 0xb7, 0x48, 0xfb, 0x42, -0x0a, 0x49, 0x50, 0xaf, 0x23, 0x0d, 0x99, 0xba, 0x8f, 0xd5, 0x98, 0x7d, -0xc7, 0xc5, 0xb6, 0x6d, 0x2c, 0xd3, 0x24, 0x8a, 0x22, 0x2c, 0xdb, 0x3a, -0xb7, 0xab, 0x9b, 0x2f, 0x09, 0x00, 0xe8, 0x13, 0x8d, 0x0b, 0xcb, 0xb2, -0x59, 0xb7, 0x76, 0x2d, 0xc7, 0x4f, 0x9c, 0xa0, 0x5a, 0xad, 0xf2, 0xf0, -0x8e, 0xed, 0xb8, 0xae, 0xdb, 0x7c, 0x2e, 0x2b, 0x04, 0x43, 0xdf, 0xf9, -0xee, 0x60, 0x16, 0xe0, 0x99, 0x6f, 0x3f, 0xdb, 0xf7, 0xad, 0xa7, 0xbf, -0x73, 0x00, 0x18, 0x10, 0x88, 0x56, 0x67, 0xeb, 0xd6, 0xaf, 0xa7, 0x33, -0x9b, 0xc5, 0x32, 0x2d, 0x1c, 0xc7, 0xc6, 0xf5, 0x5c, 0x3c, 0xcf, 0xc3, -0x71, 0x1c, 0x2c, 0xcb, 0x42, 0x1a, 0x92, 0x30, 0x0c, 0xd3, 0x04, 0xf0, -0x12, 0x37, 0xd4, 0x45, 0x00, 0x1a, 0x7a, 0x34, 0x20, 0x84, 0x60, 0xc5, -0x8a, 0x15, 0x84, 0x51, 0xc4, 0xa1, 0x43, 0x6f, 0xf3, 0xc6, 0x1b, 0x6f, -0xd2, 0xd1, 0xd1, 0xc9, 0x03, 0x0f, 0xdc, 0x4f, 0x23, 0xd1, 0x44, 0x6b, -0x7a, 0x94, 0x52, 0x87, 0x9f, 0xf9, 0xf6, 0xb3, 0xbf, 0xd4, 0x5a, 0x1f, -0x00, 0xdd, 0x97, 0xee, 0xc5, 0x1a, 0xd7, 0xf3, 0xb8, 0xf7, 0xf7, 0xef, -0xe5, 0x9e, 0x7b, 0xbe, 0x80, 0x69, 0x9a, 0xd8, 0x8e, 0x8d, 0xe7, 0x79, -0xf8, 0x9e, 0x87, 0xeb, 0xb9, 0x2d, 0xf7, 0x01, 0xa8, 0x56, 0x2a, 0xc4, -0x71, 0xbc, 0x30, 0xc9, 0xbb, 0x28, 0x69, 0x15, 0x34, 0x3b, 0x76, 0x3c, -0xdc, 0x23, 0xa5, 0x4c, 0xe7, 0x4f, 0x6b, 0xda, 0xdb, 0x3b, 0x38, 0x7a, -0xf4, 0x28, 0x42, 0x08, 0xf2, 0x85, 0x02, 0xaf, 0xfe, 0xf7, 0xff, 0x70, -0xef, 0x17, 0xbf, 0xc8, 0xfd, 0x0f, 0xdc, 0xcf, 0x8b, 0x2f, 0xfe, 0x17, -0x5a, 0x29, 0xb4, 0x10, 0xdd, 0x82, 0x86, 0xda, 0x5a, 0xd3, 0xd5, 0xd5, -0xc5, 0xa6, 0x4d, 0xbf, 0xcb, 0x4d, 0x37, 0xdd, 0x44, 0xbd, 0x1e, 0xf0, -0xda, 0xc1, 0xd7, 0x70, 0x9a, 0xca, 0xfb, 0x3e, 0x7e, 0xc6, 0xc7, 0x73, -0x5d, 0x10, 0x82, 0x38, 0x49, 0x48, 0x12, 0x45, 0x9c, 0x24, 0xd4, 0x6b, -0x35, 0x92, 0x24, 0xb9, 0x24, 0x2b, 0x2c, 0xac, 0xc8, 0x3a, 0x9b, 0x17, -0x42, 0x4a, 0xda, 0xdb, 0xda, 0x38, 0x7d, 0xfa, 0x4c, 0x2b, 0x3a, 0xe4, -0xf3, 0x79, 0x0e, 0xbd, 0x7d, 0x88, 0xcf, 0xdd, 0x7e, 0x3b, 0x9b, 0x37, -0xdf, 0xc9, 0x8f, 0x7e, 0xf4, 0x3a, 0x68, 0x81, 0xe7, 0xba, 0xdc, 0xf0, -0x9b, 0xd7, 0xb3, 0x69, 0xd3, 0x26, 0x56, 0xae, 0x5c, 0x89, 0x52, 0x8a, -0xe9, 0xa9, 0x69, 0x8e, 0xfe, 0xfc, 0x5d, 0x12, 0x95, 0xe0, 0x79, 0x1e, -0x6d, 0x99, 0x0c, 0x6d, 0x6d, 0x19, 0x7c, 0xcf, 0xc7, 0x34, 0x4d, 0x92, -0x24, 0x26, 0x49, 0x12, 0xa2, 0x30, 0x24, 0x8a, 0x22, 0x2a, 0x95, 0x72, -0x2b, 0x6f, 0x6a, 0xc8, 0xe8, 0x45, 0x03, 0x2c, 0xa4, 0x97, 0x42, 0x10, -0x84, 0x01, 0x49, 0x92, 0x34, 0x62, 0xb4, 0x44, 0x20, 0x18, 0x1b, 0x3b, -0x85, 0x14, 0x82, 0xcf, 0xdf, 0xf9, 0x79, 0xd0, 0x90, 0xcd, 0x66, 0xb9, -0xfe, 0x86, 0xeb, 0x71, 0x1c, 0x07, 0xad, 0x34, 0x93, 0x93, 0x53, 0x9c, -0x38, 0x71, 0x82, 0x5c, 0x2e, 0x8f, 0x65, 0x99, 0xf8, 0xbe, 0x4f, 0xc6, -0xf7, 0x69, 0x6b, 0x6b, 0x23, 0x93, 0xf1, 0xb1, 0x6d, 0x1b, 0xad, 0x35, -0x61, 0x98, 0x10, 0x06, 0x21, 0x41, 0x10, 0x50, 0x28, 0xe4, 0xa9, 0xd7, -0xeb, 0x0b, 0x95, 0xcf, 0x0f, 0x0f, 0x0f, 0x8f, 0x5d, 0x82, 0x05, 0x52, -0xff, 0x85, 0x74, 0x0d, 0x14, 0x0a, 0x85, 0xc6, 0xee, 0x99, 0x6e, 0xf3, -0x86, 0x21, 0xd1, 0x1a, 0x26, 0x4e, 0x9f, 0x61, 0xe5, 0xe8, 0x2f, 0xb9, -0xe3, 0x8e, 0x3b, 0x5a, 0xef, 0x8d, 0x8d, 0x8e, 0x31, 0x3a, 0x36, 0xd6, -0x48, 0x9f, 0x4d, 0x7c, 0xcf, 0xc3, 0x71, 0x9d, 0xd6, 0xec, 0xfb, 0x19, -0x1f, 0xd7, 0x71, 0x00, 0x08, 0x82, 0x80, 0x7a, 0x10, 0x50, 0xad, 0xd5, -0xa8, 0xd5, 0xea, 0xcc, 0xce, 0xcc, 0x10, 0x45, 0xd1, 0x42, 0x17, 0x3a, -0x78, 0xa1, 0xca, 0x9f, 0x6b, 0x81, 0xd1, 0x85, 0x65, 0xe0, 0x47, 0x67, -0xce, 0xb0, 0xfe, 0x9a, 0x0d, 0x98, 0x86, 0x81, 0x65, 0x9f, 0xdd, 0x29, -0xb5, 0xd6, 0xbc, 0xfb, 0xee, 0x31, 0xe2, 0x28, 0xa1, 0x56, 0xaf, 0x32, -0x39, 0x39, 0x4d, 0x10, 0xd4, 0x11, 0x42, 0xe0, 0xfb, 0x5e, 0x9a, 0x2a, -0x38, 0x4e, 0xc3, 0xef, 0xd3, 0x85, 0x6b, 0xdb, 0x36, 0x42, 0xa6, 0x11, -0xa7, 0x1e, 0x04, 0x54, 0x2b, 0x55, 0x2a, 0x95, 0x0a, 0xb9, 0x7c, 0x8e, -0x42, 0x21, 0x7f, 0xee, 0x22, 0x7e, 0xf9, 0x62, 0x00, 0x16, 0xd5, 0x03, -0xdb, 0xb7, 0x6f, 0xd7, 0x86, 0x61, 0xe2, 0x38, 0x0e, 0xae, 0xe7, 0xb2, -0x7e, 0xfd, 0x35, 0x64, 0x3b, 0x97, 0xe1, 0xba, 0xee, 0xc7, 0x20, 0x1a, -0x79, 0xfc, 0xa2, 0x5c, 0xc7, 0xb2, 0x2c, 0x1c, 0xdb, 0x4e, 0x67, 0xdf, -0x75, 0x5b, 0xe1, 0x12, 0x01, 0x51, 0x18, 0x51, 0xa9, 0x56, 0x29, 0x16, -0x8a, 0xe4, 0xf3, 0x79, 0xf2, 0x85, 0x02, 0xc7, 0xdf, 0x3b, 0x46, 0xa9, -0x54, 0x24, 0x08, 0x02, 0x94, 0x52, 0x88, 0x38, 0x39, 0xf3, 0xc2, 0xbf, -0xfd, 0x70, 0xed, 0x25, 0x59, 0xa0, 0x61, 0x85, 0x11, 0xad, 0x75, 0x8f, -0x52, 0x09, 0x49, 0x9c, 0x90, 0xcf, 0xe7, 0x69, 0x6f, 0xef, 0x04, 0x01, -0x86, 0x61, 0xe0, 0xd8, 0x36, 0x86, 0x69, 0x20, 0xc5, 0xd9, 0xe8, 0x2b, -0x64, 0xba, 0x6b, 0x9b, 0x0d, 0x00, 0xdb, 0x4e, 0xf3, 0x1d, 0xb3, 0x91, -0xdf, 0x68, 0xad, 0x08, 0xc3, 0x88, 0x5a, 0xb5, 0x4a, 0xa9, 0x54, 0xa2, -0x58, 0x2c, 0x52, 0x2a, 0x95, 0x19, 0x3f, 0x75, 0x8a, 0x4a, 0xa5, 0x4c, -0x14, 0x45, 0xad, 0xc9, 0xe8, 0x7d, 0xeb, 0xad, 0xec, 0x4b, 0x42, 0xf6, -0xdc, 0xa7, 0xd5, 0x05, 0xd7, 0xc9, 0x8b, 0x00, 0x94, 0xd2, 0x23, 0x42, -0x24, 0x3d, 0x71, 0x22, 0x31, 0xe2, 0x88, 0x4a, 0xb9, 0x4c, 0xb1, 0x98, -0x4f, 0x95, 0xb2, 0x2c, 0x68, 0x24, 0x64, 0x96, 0x65, 0x62, 0x1a, 0x06, -0x52, 0xa6, 0x6b, 0x23, 0x4d, 0x95, 0x4d, 0x0c, 0x33, 0x05, 0x91, 0x86, -0x81, 0x00, 0x92, 0x24, 0x21, 0x0c, 0x43, 0x6a, 0xd5, 0x1a, 0xa5, 0x52, -0x89, 0x42, 0xb1, 0x48, 0xb1, 0x58, 0x64, 0x72, 0xf2, 0x23, 0x66, 0x66, -0xa6, 0x08, 0xc3, 0xb0, 0xe5, 0xfb, 0xcb, 0x72, 0x39, 0xae, 0x3f, 0x79, -0xd2, 0x57, 0x70, 0xe0, 0x15, 0x21, 0xef, 0xde, 0x72, 0x81, 0x10, 0x8b, -0x37, 0x32, 0xad, 0x0e, 0x2a, 0xa5, 0x48, 0xe2, 0x98, 0x28, 0x8e, 0x09, -0xc3, 0x80, 0xd9, 0x99, 0x69, 0xca, 0xa5, 0x12, 0xf5, 0x20, 0x20, 0x0c, -0x03, 0xe2, 0x38, 0x06, 0x4d, 0x3a, 0xeb, 0x96, 0xd9, 0x98, 0x75, 0x1b, -0xdb, 0xb6, 0x30, 0x1b, 0x2e, 0xa6, 0x92, 0x84, 0x20, 0x0c, 0xa9, 0x54, -0x2a, 0x14, 0x0b, 0x45, 0x72, 0xf9, 0x1c, 0xb9, 0x5c, 0x8e, 0x42, 0xa1, -0xc0, 0xd4, 0xd4, 0x14, 0xe3, 0xe3, 0x63, 0x04, 0x41, 0xb0, 0x28, 0xf6, -0xdf, 0xf9, 0x93, 0x9f, 0x60, 0xa3, 0xb1, 0x20, 0x6b, 0xc2, 0xd0, 0x2b, -0x42, 0x5e, 0x50, 0x3e, 0x74, 0xee, 0xc9, 0xdc, 0xcb, 0x4a, 0x29, 0x84, -0x10, 0xc4, 0x51, 0x44, 0x80, 0x00, 0x2a, 0x4c, 0x4c, 0x8c, 0x83, 0x10, -0xe9, 0x59, 0x8f, 0x5a, 0x70, 0xe6, 0xd3, 0x88, 0x5a, 0x5a, 0x93, 0x2e, -0xc2, 0x86, 0xf2, 0x71, 0x1c, 0x13, 0x84, 0x21, 0xf5, 0x5a, 0x9d, 0x4a, -0xa5, 0x42, 0xb9, 0x52, 0xa1, 0x52, 0xa9, 0x30, 0x31, 0x7e, 0x8a, 0x99, -0x99, 0xe9, 0x96, 0xf2, 0x4d, 0xd7, 0x79, 0xe4, 0xc6, 0xe5, 0xac, 0xfb, -0xa0, 0x93, 0x89, 0x37, 0x73, 0x48, 0x34, 0x20, 0x7a, 0x14, 0x0c, 0x01, -0xf7, 0xfd, 0x2a, 0x80, 0x8f, 0x15, 0xf5, 0xfd, 0xfd, 0xfd, 0x7b, 0x80, -0xdd, 0x52, 0x2e, 0x28, 0x40, 0x1c, 0x07, 0xdf, 0xcf, 0xb0, 0xea, 0xea, -0xd5, 0x5c, 0x75, 0xd5, 0x55, 0x78, 0x9e, 0x87, 0xeb, 0xa6, 0x29, 0x81, -0x65, 0x59, 0x98, 0x86, 0x99, 0xce, 0xbc, 0x56, 0x24, 0x71, 0x42, 0x18, -0x85, 0x04, 0xf5, 0x80, 0x5a, 0x23, 0x54, 0x96, 0xca, 0x25, 0xc6, 0x4f, -0x8d, 0x51, 0x2c, 0x16, 0x5a, 0x21, 0xb3, 0xa9, 0xfc, 0xce, 0x3f, 0xb8, -0x8b, 0xcd, 0x7f, 0xb4, 0x95, 0xe4, 0xc5, 0xe7, 0x78, 0xff, 0x6f, 0xff, -0x85, 0xa9, 0xe3, 0xd3, 0x84, 0x40, 0x88, 0x20, 0x84, 0xdd, 0xf7, 0x69, -0xb5, 0xef, 0x62, 0x01, 0x3a, 0x49, 0xcf, 0x33, 0xbb, 0x9b, 0x65, 0xa0, -0x69, 0x9a, 0x0d, 0x37, 0x71, 0x58, 0x76, 0xd5, 0x55, 0xac, 0x5c, 0xd9, -0x85, 0xef, 0xfb, 0xd8, 0x8d, 0x7a, 0x56, 0x36, 0xf2, 0x1a, 0xad, 0xd2, -0xd4, 0x20, 0x8e, 0xa2, 0xd4, 0x02, 0xf5, 0x34, 0xce, 0x4f, 0x4f, 0x4f, -0x12, 0x04, 0x41, 0x2b, 0x5c, 0x36, 0x43, 0xf5, 0x36, 0x77, 0x8a, 0xcd, -0x6b, 0xda, 0x71, 0xbe, 0xf9, 0xaf, 0x20, 0xa1, 0xfa, 0xdc, 0x5f, 0xf2, -0xf3, 0xbf, 0xff, 0x77, 0x8a, 0xf3, 0xb5, 0x26, 0x40, 0x3e, 0x84, 0x5b, -0xfe, 0x44, 0xab, 0xd1, 0x0b, 0x06, 0x68, 0x40, 0xdc, 0x4c, 0xba, 0xa1, -0x64, 0x9b, 0x15, 0x55, 0x0a, 0x92, 0x2e, 0x60, 0xdb, 0xb6, 0xe9, 0xe8, -0xe8, 0xa4, 0xad, 0xbd, 0x03, 0xdf, 0xf7, 0xb1, 0xcc, 0x34, 0x54, 0x6a, -0xad, 0x89, 0xe3, 0x98, 0x6a, 0xa5, 0x4c, 0xa1, 0x50, 0x20, 0x97, 0x9b, -0x27, 0x8a, 0x22, 0xe2, 0x38, 0x5e, 0x34, 0xeb, 0x9e, 0x54, 0xfc, 0xb1, -0x3d, 0xc3, 0xed, 0x22, 0x8f, 0x69, 0x18, 0x98, 0xbf, 0x7d, 0x3b, 0xce, -0x9f, 0x7f, 0x03, 0x35, 0x77, 0x9a, 0xa9, 0xa7, 0x1f, 0xe5, 0xdd, 0xff, -0x3c, 0xd2, 0x04, 0x20, 0x84, 0xfd, 0x7f, 0xaa, 0xd5, 0xf6, 0x8b, 0x02, -0x58, 0x00, 0xf1, 0x32, 0xd0, 0x0d, 0x2c, 0x8a, 0xf7, 0xcd, 0x66, 0x9a, -0xe6, 0xc2, 0x4a, 0x0a, 0xa5, 0x14, 0x4a, 0x29, 0x92, 0x24, 0x69, 0xb5, -0xe6, 0xbd, 0xe6, 0x38, 0xeb, 0x32, 0xf0, 0x67, 0xd9, 0x1c, 0xab, 0x2b, -0xf3, 0xc8, 0x7a, 0x80, 0xd4, 0x20, 0x10, 0xb8, 0x5b, 0x77, 0x60, 0x6e, -0xbc, 0x99, 0xe0, 0xf0, 0xeb, 0xfc, 0xe2, 0xd9, 0x7f, 0xe4, 0xf4, 0xb1, -0x5c, 0x13, 0x80, 0x10, 0xae, 0xdd, 0xb6, 0x84, 0x15, 0x96, 0x3c, 0x56, -0x19, 0x1e, 0x1e, 0x7e, 0x07, 0xe8, 0x69, 0x40, 0xb4, 0x36, 0xaf, 0x38, -0x8e, 0x89, 0xa2, 0x88, 0x20, 0x68, 0xfa, 0xf8, 0xd9, 0x16, 0x04, 0x01, -0xf5, 0x7a, 0x9d, 0xb0, 0x91, 0xa4, 0x35, 0x67, 0xbe, 0xa9, 0xfc, 0x1f, -0xfe, 0x4e, 0x27, 0x4f, 0xde, 0xe6, 0xb3, 0x36, 0x6b, 0x81, 0x69, 0x90, -0x68, 0x4d, 0x14, 0x85, 0x44, 0x41, 0x9d, 0xd2, 0x4b, 0xcf, 0x93, 0xcc, -0x7d, 0x84, 0xb9, 0x6e, 0x03, 0x5d, 0x9b, 0x6f, 0x04, 0x4b, 0xa0, 0x00, -0x05, 0x68, 0x58, 0xb2, 0x8c, 0xbd, 0xa0, 0x93, 0xb9, 0xfe, 0xfe, 0xfe, -0xbb, 0x80, 0x41, 0x9a, 0x07, 0xb9, 0x17, 0x29, 0x9b, 0x56, 0x09, 0xb6, -0x6c, 0xea, 0x62, 0xe5, 0x32, 0x8f, 0xa4, 0x54, 0x26, 0x3a, 0x33, 0x45, -0x74, 0x66, 0x0a, 0x35, 0x97, 0x47, 0x57, 0x6a, 0x10, 0xc7, 0x68, 0xa5, -0xf0, 0x6e, 0xdf, 0x8c, 0x7b, 0xeb, 0x6d, 0xd4, 0x3f, 0x38, 0xc6, 0xb1, -0xbf, 0x7b, 0x9e, 0xd3, 0x1f, 0xd6, 0x88, 0x48, 0xad, 0x10, 0xc1, 0xb2, -0x47, 0xb5, 0xfa, 0xd8, 0x69, 0xf6, 0x79, 0x4f, 0xe6, 0x9a, 0x32, 0x3c, -0x3c, 0xfc, 0xda, 0xf0, 0xf0, 0xf0, 0xdd, 0xa4, 0x16, 0xd9, 0xcf, 0x05, -0xa4, 0xbb, 0xfe, 0xcc, 0x0c, 0xdd, 0x1f, 0xfe, 0x82, 0x2f, 0x4f, 0x1e, -0xe7, 0x4b, 0x6d, 0x45, 0x3a, 0x54, 0x0d, 0x95, 0x24, 0x08, 0xc7, 0x46, -0xb6, 0x65, 0x10, 0x19, 0x0f, 0x65, 0x9b, 0x24, 0xa8, 0xd4, 0x0a, 0x61, -0x48, 0xf9, 0xd0, 0x9b, 0x24, 0x95, 0x3c, 0x46, 0xb6, 0x9d, 0x65, 0x37, -0x2e, 0x27, 0x06, 0x92, 0xb3, 0x6d, 0xcb, 0x27, 0x8d, 0x73, 0x51, 0x5f, -0x68, 0x1a, 0x6e, 0xb5, 0x1d, 0xa0, 0xbf, 0xbf, 0x7f, 0x03, 0xe9, 0xfa, -0x68, 0x36, 0x80, 0x91, 0x55, 0xaf, 0xff, 0xf8, 0xb1, 0xb6, 0xb1, 0xb1, -0x2f, 0x19, 0x96, 0x89, 0xd7, 0xe1, 0x11, 0xac, 0x5b, 0xc1, 0xf8, 0xfb, -0x3e, 0xd9, 0x55, 0x6d, 0x48, 0xc7, 0xc1, 0x70, 0x1d, 0x44, 0xc6, 0x43, -0xb4, 0xb7, 0x41, 0xa1, 0x84, 0x2a, 0x95, 0x89, 0x55, 0x82, 0x0e, 0x43, -0x54, 0xb5, 0x42, 0x7d, 0xf4, 0x03, 0x64, 0x9b, 0x8b, 0xb7, 0xae, 0x0b, -0xcb, 0x9f, 0xa0, 0x5e, 0x6d, 0x01, 0x6c, 0x25, 0xfd, 0x40, 0x72, 0xe9, -0x00, 0xe7, 0xc0, 0x8c, 0x01, 0x63, 0xc0, 0x6b, 0x0b, 0xef, 0x0f, 0x0a, -0x63, 0x04, 0x18, 0x51, 0x49, 0x92, 0x0d, 0x6b, 0x21, 0xe5, 0xf9, 0x32, -0xb3, 0xe3, 0x39, 0xa6, 0x4e, 0x66, 0x58, 0xe3, 0xba, 0x08, 0x23, 0x8b, -0xb0, 0x6d, 0x8c, 0xf6, 0x36, 0x64, 0x47, 0x1b, 0xba, 0x5c, 0x42, 0x55, -0x0c, 0x92, 0x5a, 0x42, 0x12, 0x45, 0x94, 0xdf, 0x3b, 0x8a, 0xff, 0x5b, -0x37, 0x20, 0xdb, 0x3d, 0xa4, 0x0d, 0x71, 0x0b, 0x40, 0x7c, 0xe2, 0x81, -0xd7, 0x05, 0xb9, 0xd0, 0xc5, 0xc8, 0xa0, 0x4e, 0xc6, 0x80, 0xbd, 0x5a, -0x69, 0xe2, 0x30, 0xa6, 0x52, 0xaa, 0x52, 0x9c, 0xce, 0x33, 0x76, 0x7c, -0x96, 0xea, 0xd4, 0x1c, 0x71, 0xb1, 0x8c, 0x56, 0x0a, 0xe1, 0xbb, 0x18, -0xd9, 0x0e, 0x64, 0x47, 0x07, 0xf8, 0x2e, 0x89, 0x69, 0x10, 0xab, 0x98, -0xb8, 0x56, 0x21, 0x2e, 0x17, 0xd0, 0x89, 0xc2, 0xf1, 0x20, 0x06, 0x62, -0x04, 0xf1, 0x59, 0x2b, 0x7f, 0xba, 0x00, 0x0d, 0x88, 0xef, 0x01, 0x23, -0x2a, 0x51, 0x44, 0xb5, 0x90, 0x52, 0xae, 0xcc, 0xec, 0xc4, 0x3c, 0x27, -0x8f, 0xce, 0x10, 0xce, 0xcc, 0x12, 0x97, 0x4a, 0xa0, 0x14, 0xc2, 0x75, -0x30, 0xda, 0x7d, 0x84, 0xef, 0x81, 0x65, 0x82, 0x61, 0xa4, 0xad, 0x11, -0x96, 0x73, 0xe5, 0x96, 0xf2, 0x24, 0x4b, 0x8c, 0x75, 0xc5, 0xbf, 0x52, -0x2e, 0x90, 0x01, 0xb4, 0x3e, 0x98, 0xc4, 0x49, 0xb6, 0x5e, 0xae, 0x53, -0x98, 0x2d, 0x32, 0xf1, 0xbe, 0x89, 0x6d, 0x09, 0xba, 0x37, 0x26, 0x98, -0xed, 0x6d, 0x80, 0x46, 0x98, 0x26, 0x86, 0xeb, 0x62, 0xb8, 0x0e, 0x49, -0xc5, 0xc4, 0xe9, 0x5a, 0x01, 0x40, 0x65, 0xe2, 0x23, 0xe6, 0x4a, 0x82, -0x04, 0x9a, 0x00, 0x9f, 0xf8, 0x3d, 0xed, 0x53, 0x03, 0x18, 0xd4, 0xc9, -0x3b, 0x83, 0xc2, 0xd8, 0xad, 0x13, 0xb5, 0x3f, 0x0e, 0x22, 0xaa, 0x85, -0x0a, 0x42, 0x80, 0x52, 0x9a, 0x38, 0x08, 0xb9, 0xf6, 0xfa, 0x0e, 0xa4, -0x6d, 0xa3, 0xc2, 0x10, 0xad, 0x12, 0x10, 0x02, 0xf7, 0x9a, 0xb5, 0x98, -0xd9, 0x0e, 0xc2, 0xb9, 0x1c, 0x23, 0xaf, 0x4d, 0x10, 0x71, 0x36, 0x0a, -0xc5, 0x4b, 0x94, 0x9a, 0x9f, 0xa6, 0x05, 0x18, 0xd4, 0xc9, 0x0b, 0x83, -0xc2, 0xe8, 0x53, 0x4a, 0x0f, 0x44, 0xf5, 0x88, 0x4a, 0xbe, 0x42, 0x92, -0x68, 0x82, 0x6a, 0x40, 0x79, 0xae, 0xc4, 0x75, 0xd7, 0x58, 0x18, 0x12, -0x92, 0x6a, 0x0d, 0x67, 0xf5, 0xd5, 0xb8, 0xeb, 0xd6, 0x50, 0x19, 0x9d, -0xe0, 0xc7, 0xff, 0xf1, 0x36, 0x1f, 0x4d, 0x27, 0x24, 0xa4, 0x1b, 0x59, -0xc3, 0x7d, 0x3e, 0xb1, 0xd4, 0xbc, 0x22, 0xdf, 0x89, 0x7f, 0x25, 0x88, -0x30, 0x86, 0x10, 0x62, 0x40, 0x4a, 0x81, 0x61, 0x5b, 0x58, 0xae, 0x85, -0xed, 0x3b, 0xd8, 0x8e, 0xc5, 0xea, 0x65, 0xb0, 0x6c, 0x4d, 0x16, 0xd3, -0x73, 0x99, 0x3a, 0x3e, 0xc1, 0x87, 0x27, 0x72, 0x04, 0xa1, 0x42, 0x69, -0xcd, 0x82, 0xa3, 0xae, 0x91, 0x41, 0x9d, 0xdc, 0xf2, 0x99, 0x01, 0xb4, -0x20, 0x60, 0x40, 0x48, 0x81, 0x90, 0x12, 0x69, 0xca, 0xb4, 0x72, 0x93, -0x8d, 0x3a, 0x23, 0x51, 0xc4, 0x51, 0x92, 0x1e, 0x98, 0xa9, 0x45, 0x3a, -0xe5, 0x81, 0x9e, 0x46, 0x74, 0xfb, 0x98, 0xfc, 0xda, 0x00, 0x00, 0x06, -0x85, 0xb1, 0x07, 0xd8, 0xdd, 0x1a, 0x5c, 0x8a, 0x45, 0xff, 0x9f, 0xa3, -0x38, 0xa4, 0x69, 0xfd, 0xc0, 0xa0, 0x4e, 0xde, 0x59, 0xaa, 0xcf, 0x4f, -0x25, 0x8c, 0x2e, 0x25, 0x83, 0x3a, 0xf9, 0x3a, 0x69, 0x3e, 0x35, 0x02, -0xa9, 0xc2, 0x0b, 0xdb, 0x39, 0xb2, 0x17, 0xe8, 0x3b, 0x9f, 0xf2, 0xf0, -0x6b, 0xb6, 0xc0, 0x42, 0x19, 0x14, 0xc6, 0x16, 0x60, 0x80, 0x34, 0xbf, -0xea, 0x6e, 0xdc, 0x3e, 0x48, 0x0a, 0xb7, 0x77, 0x29, 0x97, 0x39, 0x57, -0x3e, 0x33, 0x80, 0x2b, 0x25, 0xff, 0x07, 0x5d, 0xc7, 0x73, 0x8e, 0xf4, -0x50, 0x34, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, -0x42, 0x60, 0x82, -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_plugin_options.xpm b/Source/Core/DolphinWX/resources/toolbar_plugin_options.xpm deleted file mode 100644 index d858e78f13..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_plugin_options.xpm +++ /dev/null @@ -1,112 +0,0 @@ -/* XPM */ -static const char *toolbar_plugin_options_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 58 1", -" c #666463", -". c #696665", -"X c #6E6B6A", -"o c #706D6C", -"O c #767372", -"+ c #797776", -"@ c #7A7877", -"# c #7D7B7A", -"$ c #817F7E", -"% c #82807F", -"& c #858382", -"* c #888786", -"= c #8A8887", -"- c #8C8B8A", -"; c #908E8D", -": c #92908F", -"> c #959392", -", c #999796", -"< c #999897", -"1 c #9D9B9A", -"2 c #A19F9E", -"3 c #A2A09F", -"4 c #A4A2A1", -"5 c #A9A7A7", -"6 c #A9A8A7", -"7 c #ADACAB", -"8 c #B0AFAE", -"9 c #B1B0AF", -"0 c #B5B4B3", -"q c #B8B7B6", -"w c #B8B8B7", -"e c #BCBCBB", -"r c #C0BFBF", -"t c #C0C0BF", -"y c #C4C4C3", -"u c #C8C7C6", -"i c #C7C8C7", -"p c #C8C8C7", -"a c #CCCCCB", -"s c #D0CFCF", -"d c #D0D0CF", -"f c #D4D3D3", -"g c #D8D7D7", -"h c #D8D8D7", -"j c #DCDBDB", -"k c #E0DFDF", -"l c #E0E0DF", -"z c #E4E3E3", -"x c #E8E7E7", -"c c #E8E8E7", -"v c #ECEBEB", -"b c #F0EFEF", -"n c #F0F1EF", -"m c #EFF0F0", -"M c #F4F4F4", -"N c #F8F8F7", -"B c #FDFDFD", -"V c None", -/* pixels */ -"VVVVVVVVVVVVVVVVVVVVV%&&***VVVVVVVVVVVVVVVVVVVVV", -"VVVVVVVVVVVVVVVVVVVVVyfaaaaVVVVVVVVVVVVVVVVVVVVV", -"VVVVVVVVVVVVVV=XVVVVVyjfappVVVVV+6VVVVVVVVVVVVVV", -"VVVVVVVVVVVV#0j1VVVVVujfsaaVVVVVexjVVVVOyM&VVVV", -"VVVV4zxy=VVVXyMBBBBMzgdffgjjfaauefMOVVV8xfafVVVV", -"VVV#avMMzq#XefbBBNhyepfhjjjzvzsuyfBxO>zze99z1VVV", -"VVV0jzvMNMjufvBBveejvMMMbvxzzMMhyefBNxu0q00ejVVV", -"VV-fjzxvMMNvvBBjqgNBBNMvvvczjjvBzyeffwwwwq08x7VV", -"VVo2ajzcvMMNNBjqzBBNzfuuajvvzjfzBzyeeeeww0ykt+VV", -"VVVV@0jxvMMMNxwzBBvp711<14qzNxgfzBfeteeqtjf-VVVV", -"VVVVVV-pzvMNMtfBBxe1>VVVVVV>yBvfsxMueeefj4VVVVVV", -"VVVVVVV.yzvNhyNBve,VVVVVVVVVV0BzffMjetzjXVVVVVVV", -"VVVVVVVVazvvujBNa1VVVVVVVVVVVVyNhfjcuezzVVVVVVVV", -"VVVVVVV-zzvzpvNz0dweeyupafgzcxvM7VVVVVVVVVVVVVVBjajMzzMc1VVVVVVVVVVVV>7jnzefjff&VVVVVVV", -"VVVVVVVVvvafMvzcBuVVVVVVVVVVVVqzMvefczf0.VVVVVVV", -"VVVVVV5zgypafNMkxMMw>VVVVVV>OzBjsfjjgsafggdyeejNBBxy8X@0hzzhu#VVV", -"VVVVhsfc8VVVOvhafhjzzhdaaahcNBBBBvwXVVV=ejh4VVVV", -"VVVV*NuOVVVV;zuaffjzxvMNNNBBBBBBBBg+VVVV.,wOVVVV", -"VVVVV+VVVVVVhaypafxxzxvMMNMxhhBBBBN0VVVVVVXVVVVV", -"VVVVVVVVVVV6jwyupjffjjvvMNfy07cBBBBz*VVVVVVVVVVV", -"VVVVVVVVVVOleeryafXV*fcvMNa$V eBBBBNe.VVVVVVVVVV", -"VVVVVVVVVVedqeerjaj0VVVVVyjkzvyVVVVV1j0#VVVVVVVVVVVV", -"VVVVVVVVVVVVVV2OVVVVVyhjzvyVVVVVX*VVVVVVVVVVVVVV", -"VVVVVVVVVVVVVVVVVVVVVydffgyVVVVVVVVVVVVVVVVVVVVV", -"VVVVVVVVVVVVVVVVVVVVV&&&%%$VVVVVVVVVVVVVVVVVVVVV" -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_plugin_pad.xpm b/Source/Core/DolphinWX/resources/toolbar_plugin_pad.xpm deleted file mode 100644 index ea09e14ab3..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_plugin_pad.xpm +++ /dev/null @@ -1,228 +0,0 @@ -/* XPM */ -static const char *toolbar_plugin_pad_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 174 2", -" c #78110C", -". c #6D1511", -"X c #7F332E", -"o c #763E3B", -"O c #8D0C05", -"+ c #8A140D", -"@ c #961A14", -"# c #A50500", -"$ c #A90000", -"% c #AC0C03", -"& c #B60300", -"* c #BB0600", -"= c #B70E05", -"- c #BB0A00", -"; c #A3160E", -": c #AA170E", -"> c #AB180F", -", c #A41911", -"< c #AF1C12", -"1 c #AC1F18", -"2 c #B51D14", -"3 c #BA1E16", -"4 c #92221C", -"5 c #9D241D", -"6 c #A3241C", -"7 c #AC241A", -"8 c #B1241C", -"9 c #BA241B", -"0 c #B32C1E", -"q c #BB2A1F", -"w c #8F2F29", -"e c #922721", -"r c #9F2620", -"t c #9F2E27", -"y c #993029", -"u c #9C3B35", -"i c #A22E27", -"p c #A6322B", -"a c #A9342D", -"s c #B23222", -"d c #B1362B", -"f c #BA3029", -"g c #B43829", -"h c #A83D36", -"j c #C6261D", -"k c #CA251C", -"l c #D2251D", -"z c #A7433D", -"x c #8C5552", -"c c #9E5551", -"v c #A04843", -"b c #AC4943", -"n c #A74E48", -"m c #AB4E49", -"M c #BC4640", -"N c #B44B45", -"B c #BB4C45", -"V c #A1534E", -"C c #AF524C", -"Z c #BB544A", -"A c #BF5B49", -"S c #AA5651", -"D c #B05A54", -"F c #9B6F6D", -"G c #AC6661", -"H c #AC6B67", -"J c #B96762", -"K c #BE6862", -"L c #AE726F", -"P c #B9706B", -"I c #B57673", -"U c #B27D79", -"Y c #BA7F7B", -"T c #C5564F", -"R c #C46756", -"E c #C36861", -"W c #C06E69", -"Q c #C27D7A", -"! c #B3817E", -"~ c #CF8577", -"^ c #C3837F", -"/ c #CA837C", -"( c #979695", -") c #9D9C9C", -"_ c #AF8481", -"` c #AF8C8A", -"' c #B68582", -"] c #BE8581", -"[ c #BC8987", -"{ c #B38C8A", -"} c #BD8D89", -"| c #B2918F", -" . c #B9918E", -".. c #A09F9E", -"X. c #BC9592", -"o. c #B99A97", -"O. c #BA9A98", -"+. c #A1A09F", -"@. c #B1A09F", -"#. c #A4A3A3", -"$. c #A8A7A7", -"%. c #A9A8A7", -"&. c #ACABAB", -"*. c #B3A5A4", -"=. c #B0AFAF", -"-. c #BFACAB", -";. c #B1B0AF", -":. c #B3B2B2", -">. c #BAB5B5", -",. c #B8B8B7", -"<. c #BCBBBB", -"1. c #CB8481", -"2. c #CC8A81", -"3. c #C48E8A", -"4. c #C69592", -"5. c #CB9693", -"6. c #CB9895", -"7. c #CA9B99", -"8. c #DA9A97", -"9. c #D49D9B", -"0. c #DAA89D", -"q. c #C4A4A2", -"w. c #CBAAA9", -"e. c #D3AEAC", -"r. c #C6B4B3", -"t. c #CAB6B5", -"y. c #C2BFBE", -"u. c #CABBBA", -"i. c #D5B6B4", -"p. c #DBB3B0", -"a. c #DFBBB7", -"s. c #D2BDBC", -"d. c #D9BBB9", -"f. c #E1BEB8", -"g. c #C2C0BF", -"h. c #E4C0B6", -"j. c #C4C3C3", -"k. c #C9C7C6", -"l. c #C7C9C9", -"z. c #CCCBCB", -"x. c #D2C4C3", -"c. c #DCC4C3", -"v. c #D1CFCE", -"b. c #DECECD", -"n. c #DBD0CF", -"m. c #CFD3D3", -"M. c #D4D3D3", -"N. c #D8D7D7", -"B. c #D8D8D7", -"V. c #D5DADA", -"C. c #DBDBDB", -"Z. c #E1C7C5", -"A. c #E0D0CF", -"S. c #E4D4D3", -"D. c #E9D5D3", -"F. c #E1DFDE", -"G. c #E9D9D8", -"H. c #EBE1DF", -"J. c #DDDFE0", -"K. c #DDE2E2", -"L. c #E3E3E3", -"P. c #E9E6E5", -"I. c #EBE8E6", -"U. c #E0E7E8", -"Y. c #E6E9EA", -"T. c #ECECEC", -"R. c #F0EFEF", -"E. c #ECEFF0", -"W. c #EDF2F3", -"Q. c #EEFCFD", -"!. c #F3F3F4", -"~. c #F4FBFB", -"^. c #FAFDFD", -"/. c None", -/* pixels */ -"/./././././././././././././././././././././././././././././././././././././././././././././././.", -"/./././././././././././././././././././././././././././././././././././././././././././././././.", -"/./././././././././././././././././././././././././././././././././././././././././././././././.", -"/./././././././././././././././././././././././././././././././././././././././././././././././.", -"/././././././././././././././././././././.!././././././././././././././././././././././././././.", -"/./././././././././././././././././././././././././././././././././././././././././././././././.", -"/./././././././././././././././././././.T./././././././.C.N.M.k.z./././././././././././././././.", -"/././././././././././././././././././.L./././././././.M.B.C.J.K.U.L.L.P.I.!././././././././././.", -"/./././././././././././././././././.P././././././././.v.M.M.] N D c.T.T.W.W.W./././././././././.", -"/././././././././././././././././././././././././././.g.l.m.u - O w.~.H./ W d.W././././././././.", -"/././././././././././././././././.N./././././././././.<.M.K.k.` -.T.^.X.& & n T.!./././././././.", -"/././././././././././././././././.M././././././.C.z.&.<.N.s.b.!.!.!.~.C.L G s.!.T./././././././.", -"/././././././././././././././././.l./././.T.L.C.M.M.:.j.I k 3 7.~.~.~.^.^.^.~.T.T./././././././.", -"/././././././././././././././././.j.T.I.P.L.L.L.K.C.,.j.F 1 6 q.~.Z.T N p.^.!.R.T.!././././././.", -"/././.L.C.M.l././././././././.T.I.P.I.I.I.I.T.Y.C.n.k.<.V.,.g.W.^.U * # G ^.!.T.T.T././././././.", -"/./.C.L.L.C.M.C././././.F.C.L.P.I.T.W.T.T.!.u.M f } L.<.' b h D c.U.o.X.L.!.T.T.T.T.!./././././.", -"/.B.L.F.C.L.T.Y.L.P.L.C.N.C.L.I.W.F.H.!.!.~.y.v 9.Y.K.! ; 2 9 : t x.~.~.!.T.I.T.T.T.T./././././.", -"/.z.M.N.L.b.] e.W.W.W.I.L.L.I.I.8.6 P ^.~.!.T.C.V.L.j.z 3 k k j : ' V.P.L.L.I.T.T.T.T.!././././.", -"/.j.N.L.N.a # ^ ^.d.5.T.I.L.E.t.C G A.!.C.M.B.Y.T.M.*.4 k l l k 2 S V.z.N.L.L.T.T.T.T.T././././.", -"M.z.B.P.W.{ @ 3.D.k 7 S.W.L.V.r.{ .x.C.L.!.G.6.S.V.@.. 9 k k j < Z K.z.M.C.L.P.T.T.T.T.!./././.", -",.M.K.x.J Q | F.O.y w b.T.l._ 5 , , r X.K.!.B $ H V.v.X + 8 q 0 s 2.U.j.k.M.C.L.I.T.T.T.T./././.", -",.M.L.*.% = i.4.D C.Y.!.l.>.i 2 j j 3 p k.K.} V x.z.M.s.h 7 g R 0.P.L.<.<.z.N.L.L.T.T.T.T.!././.", -">.M.F.M.u 1.Q.m * B !.L.j.F , j l l k : Y C.W.W.T.z.&.C.P.a.f.H.W.L.C.,.:.k.M.C.L.P.T.T.T.T././.", -":.M.B.L.V.E.W.c d [ !.C.l.o @ k l l j > K K.C.C.B.M.$.&.l.C.U.J.B.B.C.:.&.<.z.M.C.L.I.T.T.T.!./.", -",.y.B.C.I.T.T.L.U.~.!.C.M.x 8 j j q 0 / U.M.M.M.M.:.&.<.k.z.M.N.B.C.$.#.:.j.z.N.L.L.T.T.T.T./.", -"<.+.z.C.L.P.I.T.T.T.T.L.V.t.e ; 7 g A ~ S.L.k.<.j.j.%.=.<.k.M.M.N.B.C.#.( &.>.k.M.C.L.P.T.T.T.!.", -";.) &.j.M.F.L.P.P.P.L.L.j.V.c.E Z ~ h.I.Y.C.,.j././.%.&.<.k.M.M.N.B././.) ) &.<.z.M.C.L.I.T.T.T.", -"/.+.%.;.,.j.z.M.N.N.N.C.z.%.M.Y.P.T.T.L.B.C./././././.<.<.k.M.M.C././././.#.#.:.y.z.N.L.L.T.T.T.", -"/...&.:.<.j.z.v.M.M.N.C.B.&.&.<.z.N.M.M.B.F././././././././././././././././.$.#.>.k.M.C.L.P.T.T.", -"/.) &.:.<.j.z.M.M.M.N.B.C.g.&.<.k.M.M.N.N.L./././././././././././././././././.=.%.<.z.M.C.L.I.!.", -"/.#.%.:.<.j.z.M.M.M.N.B.C.z.;.<.k.M.M.N.N.T././././././././././././././././././.<.&.<.z.N.C.P./.", -"/.&.%.:.<.j.z.M.M.M.N.B.C.M.&.,.k.M.M.M.L./././././././././././././././././././././.j.z.N.P././.", -"/.&.$.:.<.j.z.M.M.M.N.B.C.L./.j.k.M.C./././././././././././././././././././././././././././././.", -"/.=.%.:.<.j.z.M.M.M.N.B.B.T././././././././././././././././././././././././././././././././././.", -"/.<.$.:.<.j.z.M.M.M.N.B.C./././././././././././././././././././././././././././././././././././.", -"/.v.#.:.<.j.z.M.M.M.N.B.C./././././././././././././././././././././././././././././././././././.", -"/./.%.:.<.j.z.M.M.M.N.B.C./././././././././././././././././././././././././././././././././././.", -"/./.&.:.<.j.z.M.M.M.N.B.C./././././././././././././././././././././././././././././././././././.", -"/./.&.:.<.j.z.M.M.M.N.B.L./././././././././././././././././././././././././././././././././././.", -"/./.&.:.<.j.z.M.M.M.N.B.L./././././././././././././././././././././././././././././././././././.", -"/./.,.=.<.j.z.M.M.M.N.B././././././././././././././././././././././././././././././././././././.", -"/./.k.&.<.j.z.M.M.M.N.B././././././././././././././././././././././././././././././././././././.", -"/././.:.,.j.z.M.M.M.N.L././././././././././././././././././././././././././././././././././././.", -"/./././.,.j.z.M.M.M.B./././././././././././././././././././././././././././././././././././././.", -"/././././.k.z.M.M.C././././././././././././././././././././././././././././././././././././././.", -"/./././././.B.N././././././././././././././././././././././././././././././././././././././././.", -"/./././././././././././././././././././././././././././././././././././././././././././././././.", -"/./././././././././././././././././././././././././././././././././././././././././././././././." -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_refresh.xpm b/Source/Core/DolphinWX/resources/toolbar_refresh.xpm deleted file mode 100644 index 51f6897f57..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_refresh.xpm +++ /dev/null @@ -1,192 +0,0 @@ -/* XPM */ -static const char *toolbar_refresh_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 138 2", -" c #990A02", -". c #97160F", -"X c #9D160F", -"o c #9D1710", -"O c #9A1912", -"+ c #9C1F18", -"@ c #B00D05", -"# c #A5170F", -"$ c #AC160F", -"% c #B3160E", -"& c #A31710", -"* c #A81710", -"= c #A31C15", -"- c #AB1A13", -"; c #A21F18", -": c #B41B14", -"> c #BA1A12", -", c #B51F18", -"< c #9D231C", -"1 c #A3231C", -"2 c #AB231C", -"3 c #B3231C", -"4 c #BD231B", -"5 c #9E2720", -"6 c #9F2C25", -"7 c #A32822", -"8 c #AE2C25", -"9 c #A12F28", -"0 c #B02620", -"q c #B82720", -"w c #A1312A", -"e c #A53934", -"r c #AF3832", -"t c #B13832", -"y c #B93B35", -"u c #CE170E", -"i c #D5160F", -"p c #C31E16", -"a c #CA1C14", -"s c #D21D14", -"d c #C4231B", -"f c #CB231B", -"g c #D2231B", -"h c #C42820", -"j c #D42C24", -"k c #C2312A", -"l c #CC322B", -"z c #C63932", -"x c #CC3830", -"c c #AD423C", -"v c #B3433D", -"b c #BA433D", -"n c #CC463F", -"m c #DA4039", -"M c #AB4A44", -"N c #AD4E49", -"B c #B44640", -"V c #B24A44", -"C c #B74F4A", -"Z c #B75752", -"A c #B6625D", -"S c #B9645F", -"D c #BC716C", -"F c #BE7672", -"G c #C4504B", -"H c #C8524B", -"J c #D5534D", -"K c #C35651", -"L c #C36C67", -"P c #CB6B66", -"I c #CF6D68", -"U c #D86862", -"Y c #C4706B", -"T c #C9716C", -"R c #E27D78", -"E c #CD837F", -"W c #C28481", -"Q c #CF8F8C", -"! c #D58884", -"~ c #C6918D", -"^ c #C8918D", -"/ c #D5908C", -"( c #CD9B99", -") c #DD9D9A", -"_ c #E18D89", -"` c #E59490", -"' c #E59B97", -"] c #E59F9B", -"[ c #D5A29F", -"{ c #DDA19E", -"} c #E6A09C", -"| c #DDA5A2", -" . c #D4B1AE", -".. c #D5BAB7", -"X. c #DCB8B6", -"o. c #D9BDBB", -"O. c #E0A7A4", -"+. c #E2C1BF", -"@. c #E9C2BF", -"#. c #CDCCCC", -"$. c #DCC7C5", -"%. c #DBC8C7", -"&. c #D0CFCF", -"*. c #DBC9C8", -"=. c #D4D3D3", -"-. c #D8D7D7", -";. c #D7D8D6", -":. c #D8D8D7", -">. c #DCDCDB", -",. c #E4C3C2", -"<. c #EBC6C4", -"1. c #EAC8C7", -"2. c #E0CAC8", -"3. c #EBCFCE", -"4. c #ECD0CE", -"5. c #E6D7D6", -"6. c #EFD5D4", -"7. c #E1D8D7", -"8. c #E1DBDA", -"9. c #EFDCDB", -"0. c #E0E0DF", -"q. c #E3E3E2", -"w. c #EBE6E6", -"e. c #E5E8E7", -"r. c #E8E7E8", -"t. c #E7EBEA", -"y. c #ECECEC", -"u. c #F1E5E4", -"i. c #F2ECEC", -"p. c #F0F0EF", -"a. c #EAF1F1", -"s. c #F3F3F3", -"d. c #F8F7F7", -"f. c #F8F8F7", -"g. c #F3F7F8", -"h. c #F6FCFC", -"j. c #FAFCFC", -"k. c None", -/* pixels */ -"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.:.;.#.#.#.#.#.#.#.#.;.:.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.:.#.#.=.-.>.q.q.e.e.q.q.>.:.=.#.#.:.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.k.k.=.#.=.>.e.r.y.y.y.y.r.r.y.y.y.y.r.r.>.=.#.=.k.k.k.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.:.#.;.q.r.y.r.r.y.y.y.y.y.y.y.y.y.y.r.r.y.r.q.-.#.-.k.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.#.=.q.y.r.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.r.r.r.y.q.=.#.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.>.#.:.r.y.r.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.r.r.r.>.#.>.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.:.#.q.y.r.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.r.y.q.#.-.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.:.#.q.y.r.y.y.y.y.y.y.y.y.y.y.p.p.p.p.p.p.y.y.y.y.y.y.y.y.y.y.r.y.q.#.-.k.k.k.k.k.k.", -"k.k.k.k.k.>.#.q.y.r.y.y.y.y.y.y.y.y.p.s.s.s.s.s.s.s.s.s.p.y.y.y.y.y.y.y.y.y.r.r.q.#.>.k.k.k.k.k.", -"k.k.k.k.k.#.8.y.r.y.y.y.y.y.y.y.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.y.y.y.y.y.y.y.r.y.q.#.k.k.k.k.k.", -"k.k.k.k.#.:.y.r.y.y.y.y.y.y.y.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.y.y.y.y.y.y.t.y.>.#.k.k.k.k.", -"k.k.k.>.&.r.r.y.y.y.y.y.y.s.s.s.s.s.s.s.s.s.s.s.s.g.h.h.h.h.h.h.h.h.h.s.y.y.y.y.y.r.r.=.:.k.k.k.", -"k.k.k.#.q.y.y.y.y.y.y.y.s.s.s.s.s.s.s.s.s.s.s.s.h.,.P T T T Y Y Y D S ( s.y.y.y.y.y.r.q.#.k.k.k.", -"k.k.;.=.y.r.y.y.y.y.y.s.s.s.s.g.s.s.s.s.d.s.d.d.j.{ @ $ $ $ # # # c 5.s.y.y.y.y.y.r.y.-.=.k.k.", -"k.k.#.q.y.y.y.y.y.y.p.s.s.s.g.9.g.g.d.d.d.d.d.d.j.| : 3 3 2 2 2 ; Z w.g.s.y.y.y.y.y.y.r.q.#.k.k.", -"k.>.=.r.y.y.y.y.y.p.s.s.s.h.<.j ` h.d.d.d.d.d.d.j.O.: 3 3 2 2 2 ; X.h.s.s.s.p.y.y.y.y.r.y.=.>.k.", -"k.#.>.y.y.y.y.y.y.s.s.s.g.u.m i s ' j.f.d.f.f.f.j.O.: 3 3 2 2 2 = c 8.t.e.r.y.y.y.y.y.r.y.8.#.k.", -"k.#.e.y.y.y.y.y.y.s.s.s.h.R i g g s } j.f.f.f.d.h.| : 3 3 2 2 2 1 X F t.q.q.>.>.q.r.y.y.r.r.#.k.", -">.=.r.y.y.y.y.y.p.s.s.g.6.j g g g g a ] j.d.s.s.h.| : 3 , 2 2 2 1 1 7 *.e.q.q.>.>.>.>.e.y.y.=.>.", -"-.-.y.y.y.y.y.y.s.s.s.h._ u g g g f a ' h.s.s.s.j.| : : y 3 2 2 1 1 X W a.q.q.>.>.>.:.;.>.r.>.;.", -"#.>.y.y.y.y.y.p.s.s.s.g.J a f f f a U h.s.d.d.d.j.| @ K u.L * 2 1 1 O N e.q.q.0.>.>.>.:.=.=.:.#.", -"#.q.y.y.y.y.y.p.s.s.g.u.l f f f f f @.h.d.d.f.f.j.) G i.j.+.2 1 1 1 + w 8.e.q.0.>.>.>.:.=.=.#.#.", -"#.q.y.y.y.y.y.p.s.s.g.4.h f f f a x i.g.d.f.j.j.j.6.u.j.g.y.t ; 1 1 + 9 7.e.q.q.>.>.>.:.=.=.#.#.", -"#.e.y.y.y.y.y.p.s.s.h.1.d d d d p n i.f.d.f.j.j.j.j.j.d.d.i.B = 1 1 + w 7.e.q.q.>.>.>.:.=.=.&.#.", -"#.q.y.y.y.y.y.p.s.s.g.3.h d d d p z i.f.d.f.j.j.j.j.f.d.f.y.r ; 1 < + 9 7.e.q.q.>.>.>.:.=.=.&.#.", -"#.q.y.y.y.y.y.p.s.s.g.u.k 4 4 4 4 4 <.h.d.f.j.j.j.j.f.d.j.,.1 1 1 < + w 8.e.q.q.>.>.>.:.=.=.#.#.", -"#.q.y.y.y.y.y.p.s.s.s.s.H > 4 4 4 > I j.d.d.f.f.f.f.d.d.j.L & 1 1 < O N e.e.q.q.>.>.>.:.=.=.#.#.", -"&.>.y.y.y.y.y.p.s.s.s.h.! % 4 4 4 4 , | j.f.d.d.d.d.f.j.[ = 1 1 < < . W a.q.q.0.>.>.>.:.=.=.#.#.", -"-.-.y.y.y.y.y.p.s.s.s.g.2.q 3 3 3 3 , 3 / s.j.j.j.j.s.Q 1 ; 1 < < < 5 %.t.q.q.0.>.>.>.;.=.=.#.-.", -">.=.r.y.y.y.y.y.s.s.s.y.y.T % 3 3 3 3 3 - b E | | E v & 1 1 < < < . D y.q.q.q.>.>.>.>.;.=.&.#.>.", -"k.#.e.y.y.y.y.y.p.s.s.q.t.7.y - 3 3 3 2 2 - * # # & = 1 1 1 < < O e 7.t.q.q.q.>.>.>.:.=.=.&.#.k.", -"k.&.>.y.y.y.y.y.y.s.y.q.q.a.X.0 - 2 2 2 2 2 2 2 1 1 1 1 1 < < O 5 ..a.q.q.q.0.>.>.>.:.=.=.#.&.k.", -"k.>.=.y.y.y.y.y.y.s.r.q.q.q.a. .8 * 2 2 2 2 1 1 1 1 1 < < < O 6 .a.q.q.q.0.>.>.>.>.;.=.=.#.>.k.", -"k.k.#.q.y.y.y.y.y.y.q.q.q.q.q.a.$.C & = 1 1 1 1 1 1 < < O O N $.a.q.q.q.q.>.>.>.>.:.=.=.#.#.k.k.", -"k.k.;.;.y.y.y.y.y.y.>.0.q.q.q.q.y.r.( V 1 o o o O O O < M ( r.y.q.q.q.q.>.>.>.>.:.;.=.=.#.;.k.k.", -"k.k.k.#.q.y.y.y.y.r.>.>.q.q.q.q.q.e.a.r.o.^ D A A D ~ o.r.a.e.q.q.q.q.>.>.>.>.>.;.=.=.#.#.k.k.k.", -"k.k.k.>.=.r.y.y.y.e.>.>.>.0.q.q.q.q.q.e.y.a.a.y.y.a.a.y.e.q.q.q.q.q.>.>.>.>.>.:.=.=.&.#.>.k.k.k.", -"k.k.k.k.#.>.y.y.y.q.>.>.>.>.>.q.q.q.q.q.q.q.q.e.e.q.q.q.q.q.q.q.0.>.>.>.>.>.:.;.=.=.#.#.k.k.k.k.", -"k.k.k.k.k.#.q.y.y.0.:.>.>.>.>.>.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.>.>.>.>.>.>.:.;.=.=.#.#.k.k.k.k.k.", -"k.k.k.k.k.>.#.q.y.>.;.:.>.>.>.>.>.>.0.q.q.q.q.q.q.q.q.q.0.>.>.>.>.>.>.>.:.;.=.=.#.#.>.k.k.k.k.k.", -"k.k.k.k.k.k.:.#.q.>.=.;.:.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.:.=.=.=.#.#.:.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.:.#.-.=.=.=.;.:.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.:.;.=.=.=.#.#.:.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.>.#.#.=.=.=.=.;.:.>.>.>.>.>.>.>.>.>.>.>.>.>.>.:.;.=.=.=.=.#.#.>.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.#.#.&.=.=.=.=.;.:.:.:.>.>.>.>.>.>.:.:.;.;.=.=.=.=.&.#.#.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.>.#.#.&.=.=.=.=.=.=.;.;.;.;.;.;.=.=.=.=.=.=.&.#.#.>.k.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.k.k.=.#.#.#.=.=.=.=.=.=.=.=.=.=.=.=.=.&.#.#.#.=.k.k.k.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.>.=.#.#.#.#.=.=.=.=.=.=.#.#.#.#.=.>.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.>.:.=.#.#.#.#.#.#.=.:.>.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k." -}; diff --git a/Source/Core/DolphinWX/resources/toolbar_stop.xpm b/Source/Core/DolphinWX/resources/toolbar_stop.xpm deleted file mode 100644 index c9fbb24767..0000000000 --- a/Source/Core/DolphinWX/resources/toolbar_stop.xpm +++ /dev/null @@ -1,126 +0,0 @@ -/* XPM */ -static const char *toolbar_stop_xpm[] = { -/* columns rows colors chars-per-pixel */ -"48 48 72 1", -" c #96150D", -". c #9B140D", -"X c #971911", -"o c #9A1811", -"O c #9C1F18", -"+ c #A3160E", -"@ c #A31911", -"# c #AC1811", -"$ c #A01F18", -"% c #B41811", -"& c #BE1911", -"* c #9D231C", -"= c #A4231C", -"- c #AB231C", -"; c #B3231C", -": c #BB231C", -"> c #AC2B24", -", c #B32B24", -"< c #BB2B24", -"1 c #A1302A", -"2 c #CB160E", -"3 c #C41911", -"4 c #CB1911", -"5 c #C3241C", -"6 c #CB241C", -"7 c #D2231B", -"8 c #C42C24", -"9 c #CC2C24", -"0 c #D12C24", -"q c #C48A86", -"w c #C88B87", -"e c #C68E8A", -"r c #C98E8A", -"t c #C6918E", -"y c #CE918E", -"u c #D2938F", -"i c #CD9895", -"p c #D69390", -"a c #DC9490", -"s c #E1928E", -"d c #E19491", -"f c #CDCCCC", -"g c #D0CFCF", -"h c #DFCDCB", -"j c #D4D3D3", -"k c #D8D7D7", -"l c #D7D8D6", -"z c #D8D8D7", -"x c #DCDCDB", -"c c #E1CFCE", -"v c #E3D1CF", -"b c #E6D2D1", -"n c #EDD7D6", -"m c #E4DDDC", -"M c #EFD9D8", -"N c #F0DAD9", -"B c #E0E0DF", -"V c #E3E3E3", -"C c #E8E7E7", -"Z c #E6E8E7", -"A c #E8E8E7", -"S c #E8E7E8", -"D c #E7E9E9", -"F c #ECECEC", -"G c #F1E7E6", -"H c #F0F0EF", -"J c #EDF3F3", -"K c #F2F2F2", -"L c #F1F8F7", -"P c #F6FCFC", -"I c #F9FFFF", -"U c None", -/* pixels */ -"UUUUUUUUUUUUUUUUUUzlfffffffflzUUUUUUUUUUUUUUUUUU", -"UUUUUUUUUUUUUUUzffjkxVVVCVVxzjffzUUUUUUUUUUUUUUU", -"UUUUUUUUUUUUUjfjxZDDDDDDDDDDDACxjfjUUUUUUUUUUUUU", -"UUUUUUUUUUUzflVAFDDDDFFFFFFDDDADAVkfkUUUUUUUUUUU", -"UUUUUUUUUUfjVDDDDFFFFFFFFFFFFFFDAADVjfUUUUUUUUUU", -"UUUUUUUUxfzADDDFFFFFFFFFFFFFFFFFFDAADxfxUUUUUUUU", -"UUUUUUUzfVFDDFFFFFFFFFFFFFFFFFFFFFFDDDVfkUUUUUUU", -"UUUUUUzfVFDDFFFFFFFFFHHHHHHFFFFFFFFFDDDVfkUUUUUU", -"UUUUUxfVFDFFFFFFFFHKKKKKKKKKHFFFFFFFFFAAVfxUUUUU", -"UUUUUfmFDFFFFFFFKKKKKKKKKKKKKKKHFFFFFFFADVfUUUUU", -"UUUUfzDDFFFFFFFKKKKKKKKKKKKKKKKKKHFFFFFFDDxfUUUU", -"UUUxgADFFFFFFKKKKKKKKKKKKKKKKKKKKKHFFFFFDDAjzUUU", -"UUUfVDFFFFFFKKKKKKKKKKKKKKKKKKKKKKKHFFFFFDDVfUUU", -"UUljDDFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKHFFFFFDDkjUU", -"UUfVFFFFFFHKKKKIIIIIIIIIIIIIIIIIIKKKKFFFFFDAVfUU", -"UxjADFFFFHKKKLGdsssddaaaaappuuyyiFKKKKHFFFFADjxU", -"UfxFFFFFFKKKKLn6244433&&%%%#@@@.*mDZZAFFFFFDDmfU", -"UfCDFFFFFKKKKPM077766555::;;--=$1mDVVVxxVAFFACfU", -"xjDDFFFFHKKKKPN077776655::;;--=$1mDZVVVxxxxZDDjx", -"kkFFFFFFKKKKKPN077776655::;;--=$1mFCVVVxxxzlxSxl", -"fxFFFFFHKKKKKPN077766555::;;--=O1mFCVVVBxxxzjjzf", -"fVFFFFFHKKKKKPN96666655::;;;--=O1mFCVVVBxxxzjjff", -"fVFFFFFHKKKKKPN96666555::;;--==O1mFAZVVVxxxzjjff", -"fVDFFFFHKKKKKPN8555555::;;;--==O1mFAZVVVxxxzjjgf", -"fVFFFFFHKKKKKPn855555:::;;---==O1mFAZVVVxxxzjjgf", -"fVFFFFFHKKKKKLb<:::::::;;;--==*O1mFAZVVVxxxzjjff", -"fVFFFFFHKKKKKJb<:::::;;;;--===*O1mFCZVVVxxxzjjff", -"gxFFFFFHKKKKFFv<;;;;;;;----==**O1mFCVVVBxxxzjjff", -"kkFFFFFHKKKKAFv,;;;;;;----===**O1mFCVVVBxxxljjfk", -"xjDDFFFFKKKFZFc,--------===****O1mFZVVVxxxxljgfx", -"UfZDFFFFHKKVVFc>------====*****O1mDVVVVxxxzjjgfU", -"UgxFFFFFFKFVVDh=+@@@@@ooooXXXXX *mDVVVBxxxzjjfgU", -"UxjDDFFFFKCVVZmrwwrrrrrrreeeeeeqtBZVVBxxxxljjfxU", -"UUfVFFFFFFVVVVZJJJJJJLLLLLLLJJJJJVVVVxxxxzjjffUU", -"UUllDDFFFFxBVVVVZCAADDDFDDDAAACZVVVVxxxxzljjflUU", -"UUUfVFFFFAxxVVVVVZCCAAAAAAACCCVVVVVxxxxxljjffUUU", -"UUUxjDDFFVxxxBVVVVVVZCCCCCZZVVVVVVxxxxxzjjgfxUUU", -"UUUUfxFDFVxxxxxVVVVVVVVVVVVVVVVVBxxxxxzljjffUUUU", -"UUUUUfVFFBzxxxxxVVVVVVVVVVVVVVVxxxxxxzljjffUUUUU", -"UUUUUxfVFxlzxxxxxxBVVVVVVVVVBxxxxxxxzljjffxUUUUU", -"UUUUUUzfVxjlzxxxxxxxxxxxxxxxxxxxxxxzjjjffzUUUUUU", -"UUUUUUUzfkjjjlzxxxxxxxxxxxxxxxxxxzljjjffzUUUUUUU", -"UUUUUUUUxffjjjjlzxxxxxxxxxxxxxxzljjjjffxUUUUUUUU", -"UUUUUUUUUUffgjjjjlzzzxxxxxxzzlljjjjgffUUUUUUUUUU", -"UUUUUUUUUUUxffgjjjjjjlllllljjjjjjgffxUUUUUUUUUUU", -"UUUUUUUUUUUUUjfffjjjjjjjjjjjjjgfffjUUUUUUUUUUUUU", -"UUUUUUUUUUUUUUUxjffffjjjjjjffffjxUUUUUUUUUUUUUUU", -"UUUUUUUUUUUUUUUUUUxzjffffffjzxUUUUUUUUUUUUUUUUUU" -}; -- cgit v1.2.3 From 196c2867adc1f80d1037b0b87e9d99e775cad375 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Wed, 16 Jan 2013 20:16:56 -0500 Subject: Move DSP settings to dolphin.ini --- Source/Core/AudioCommon/AudioCommon.vcxproj | 2 - .../Core/AudioCommon/AudioCommon.vcxproj.filters | 2 - Source/Core/AudioCommon/CMakeLists.txt | 1 - Source/Core/AudioCommon/Src/AudioCommon.cpp | 22 +++++-- Source/Core/AudioCommon/Src/AudioCommon.h | 3 +- Source/Core/AudioCommon/Src/AudioCommonConfig.cpp | 68 ---------------------- Source/Core/AudioCommon/Src/AudioCommonConfig.h | 51 ---------------- Source/Core/Common/Src/CommonPaths.h | 1 - Source/Core/Common/Src/FileUtil.cpp | 1 - Source/Core/Common/Src/FileUtil.h | 1 - Source/Core/Core/Src/ConfigManager.cpp | 20 +++++++ Source/Core/Core/Src/ConfigManager.h | 16 +++++ Source/Core/Core/Src/DSPEmulator.cpp | 2 - Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp | 1 + Source/Core/DolphinWX/Src/ConfigMain.cpp | 38 +++++------- 15 files changed, 71 insertions(+), 158 deletions(-) delete mode 100644 Source/Core/AudioCommon/Src/AudioCommonConfig.cpp delete mode 100644 Source/Core/AudioCommon/Src/AudioCommonConfig.h (limited to 'Source') diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj b/Source/Core/AudioCommon/AudioCommon.vcxproj index a983005318..abb5dbf505 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj @@ -191,7 +191,6 @@ - @@ -204,7 +203,6 @@ - diff --git a/Source/Core/AudioCommon/AudioCommon.vcxproj.filters b/Source/Core/AudioCommon/AudioCommon.vcxproj.filters index af5fe12220..30ff35a073 100644 --- a/Source/Core/AudioCommon/AudioCommon.vcxproj.filters +++ b/Source/Core/AudioCommon/AudioCommon.vcxproj.filters @@ -3,7 +3,6 @@ - @@ -26,7 +25,6 @@ - diff --git a/Source/Core/AudioCommon/CMakeLists.txt b/Source/Core/AudioCommon/CMakeLists.txt index 0e610bd847..3b6d0cea4d 100644 --- a/Source/Core/AudioCommon/CMakeLists.txt +++ b/Source/Core/AudioCommon/CMakeLists.txt @@ -1,5 +1,4 @@ set(SRCS Src/AudioCommon.cpp - Src/AudioCommonConfig.cpp Src/DPL2Decoder.cpp Src/Mixer.cpp Src/WaveFile.cpp diff --git a/Source/Core/AudioCommon/Src/AudioCommon.cpp b/Source/Core/AudioCommon/Src/AudioCommon.cpp index 99ae42b93a..e14b9ac45e 100644 --- a/Source/Core/AudioCommon/Src/AudioCommon.cpp +++ b/Source/Core/AudioCommon/Src/AudioCommon.cpp @@ -27,6 +27,10 @@ #include "OpenALStream.h" #include "PulseAudioStream.h" #include "../../Core/Src/Movie.h" +#include "../../Core/Src/ConfigManager.h" + +// This shouldn't be a global, at least not here. +SoundStream *soundStream; namespace AudioCommon { @@ -34,7 +38,7 @@ namespace AudioCommon { // TODO: possible memleak with mixer - std::string backend = ac_Config.sBackend; + std::string backend = SConfig::GetInstance().sBackend; if (backend == BACKEND_OPENAL && OpenALStream::isValid()) soundStream = new OpenALStream(mixer); else if (backend == BACKEND_NULLSOUND && NullSound::isValid()) @@ -54,10 +58,10 @@ namespace AudioCommon if (soundStream != NULL) { - ac_Config.Update(); + UpdateSoundStream(); if (soundStream->Start()) { - if (ac_Config.m_DumpAudio) + if (SConfig::GetInstance().m_DumpAudio) { std::string audio_file_name = File::GetUserPath(D_DUMPAUDIO_IDX) + "audiodump.wav"; File::CreateFullPath(audio_file_name); @@ -82,7 +86,7 @@ namespace AudioCommon if (soundStream) { soundStream->Stop(); - if (ac_Config.m_DumpAudio) + if (SConfig::GetInstance().m_DumpAudio) soundStream->GetMixer()->StopLogAudio(); //soundStream->StopLogAudio(); delete soundStream; @@ -122,7 +126,7 @@ namespace AudioCommon { return true; } - return ac_Config.m_EnableJIT; + return SConfig::GetInstance().m_EnableJIT; } void PauseAndLock(bool doLock, bool unpauseOnUnlock) @@ -143,4 +147,12 @@ namespace AudioCommon } } } + void UpdateSoundStream() + { + if (soundStream) + { + soundStream->GetMixer()->SetThrottle(SConfig::GetInstance().m_Framelimit == 2); + soundStream->SetVolume(SConfig::GetInstance().m_Volume); + } + } } diff --git a/Source/Core/AudioCommon/Src/AudioCommon.h b/Source/Core/AudioCommon/Src/AudioCommon.h index e7a111b0a1..b7b32e7498 100644 --- a/Source/Core/AudioCommon/Src/AudioCommon.h +++ b/Source/Core/AudioCommon/Src/AudioCommon.h @@ -19,14 +19,12 @@ #define _AUDIO_COMMON_H_ #include "Common.h" -#include "AudioCommonConfig.h" #include "SoundStream.h" class CMixer; extern SoundStream *soundStream; -extern AudioCommonConfig ac_Config; // UDSPControl union UDSPControl @@ -60,6 +58,7 @@ namespace AudioCommon std::vector GetSoundBackends(); bool UseJIT(); void PauseAndLock(bool doLock, bool unpauseOnUnlock=true); + void UpdateSoundStream(); } #endif // _AUDIO_COMMON_H_ diff --git a/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp b/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp deleted file mode 100644 index 49f50b6880..0000000000 --- a/Source/Core/AudioCommon/Src/AudioCommonConfig.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (C) 2003 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 "AudioCommon.h" -#include "CommonPaths.h" -#include "FileUtil.h" -#include "../../Core/Src/ConfigManager.h" - -AudioCommonConfig ac_Config; - -// This shouldn't be a global, at least not here. -SoundStream *soundStream; - -// Load from given file -void AudioCommonConfig::Load() -{ - IniFile file; - file.Load(File::GetUserPath(F_DSPCONFIG_IDX)); - - file.Get("Config", "EnableJIT", &m_EnableJIT, true); - file.Get("Config", "DumpAudio", &m_DumpAudio, false); -#if defined __linux__ && HAVE_ALSA - file.Get("Config", "Backend", &sBackend, BACKEND_ALSA); -#elif defined __APPLE__ - file.Get("Config", "Backend", &sBackend, BACKEND_COREAUDIO); -#elif defined _WIN32 - file.Get("Config", "Backend", &sBackend, BACKEND_DIRECTSOUND); -#else - file.Get("Config", "Backend", &sBackend, BACKEND_NULLSOUND); -#endif - file.Get("Config", "Volume", &m_Volume, 100); -} - -// Set the values for the file -void AudioCommonConfig::SaveSettings() -{ - IniFile file; - file.Load(File::GetUserPath(F_DSPCONFIG_IDX)); - - file.Set("Config", "EnableJIT", m_EnableJIT); - file.Set("Config", "DumpAudio", m_DumpAudio); - file.Set("Config", "Backend", sBackend); - file.Set("Config", "Volume", m_Volume); - - file.Save(File::GetUserPath(F_DSPCONFIG_IDX)); -} - -// Update according to the values (stream/mixer) -void AudioCommonConfig::Update() { - if (soundStream) { - soundStream->GetMixer()->SetThrottle(SConfig::GetInstance().m_Framelimit == 2); - soundStream->SetVolume(m_Volume); - } -} diff --git a/Source/Core/AudioCommon/Src/AudioCommonConfig.h b/Source/Core/AudioCommon/Src/AudioCommonConfig.h deleted file mode 100644 index 48807b3ffd..0000000000 --- a/Source/Core/AudioCommon/Src/AudioCommonConfig.h +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (C) 2003 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 _AUDIO_COMMON_CONFIG_H_ -#define _AUDIO_COMMON_CONFIG_H_ - -#include -#include "IniFile.h" - -// Backend Types -#define BACKEND_NULLSOUND "No audio output" -#define BACKEND_ALSA "ALSA" -#define BACKEND_AOSOUND "AOSound" -#define BACKEND_COREAUDIO "CoreAudio" -#define BACKEND_DIRECTSOUND "DSound" -#define BACKEND_OPENAL "OpenAL" -#define BACKEND_PULSEAUDIO "Pulse" -#define BACKEND_XAUDIO2 "XAudio2" - -struct AudioCommonConfig -{ - bool m_EnableJIT; - bool m_DumpAudio; - int m_Volume; - std::string sBackend; - - // Load from given file - void Load(); - - // Self explanatory - void SaveSettings(); - - // Update according to the values (stream/mixer) - void Update(); -}; - -#endif //AUDIO_COMMON_CONFIG diff --git a/Source/Core/Common/Src/CommonPaths.h b/Source/Core/Common/Src/CommonPaths.h index c39056a946..9e14d7cf7e 100644 --- a/Source/Core/Common/Src/CommonPaths.h +++ b/Source/Core/Common/Src/CommonPaths.h @@ -94,7 +94,6 @@ // Filenames // Files in the directory returned by GetUserPath(D_CONFIG_IDX) #define DOLPHIN_CONFIG "Dolphin.ini" -#define DSP_CONFIG "DSP.ini" #define DEBUGGER_CONFIG "Debugger.ini" #define LOGGER_CONFIG "Logger.ini" diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp index acd4588126..d7b248a722 100644 --- a/Source/Core/Common/Src/FileUtil.cpp +++ b/Source/Core/Common/Src/FileUtil.cpp @@ -681,7 +681,6 @@ std::string &GetUserPath(const unsigned int DirIDX, const std::string &newPath) paths[D_THEMES_IDX] = paths[D_USER_IDX] + THEMES_DIR DIR_SEP; paths[D_WIISYSCONF_IDX] = paths[D_WIIUSER_IDX] + WII_SYSCONF_DIR DIR_SEP; paths[F_DOLPHINCONFIG_IDX] = paths[D_CONFIG_IDX] + DOLPHIN_CONFIG; - paths[F_DSPCONFIG_IDX] = paths[D_CONFIG_IDX] + DSP_CONFIG; paths[F_DEBUGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + DEBUGGER_CONFIG; paths[F_LOGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + LOGGER_CONFIG; paths[F_MAINLOG_IDX] = paths[D_LOGS_IDX] + MAIN_LOG; diff --git a/Source/Core/Common/Src/FileUtil.h b/Source/Core/Common/Src/FileUtil.h index 0947db4f5c..451b1b6929 100644 --- a/Source/Core/Common/Src/FileUtil.h +++ b/Source/Core/Common/Src/FileUtil.h @@ -52,7 +52,6 @@ enum { D_WIISYSCONF_IDX, D_THEMES_IDX, F_DOLPHINCONFIG_IDX, - F_DSPCONFIG_IDX, F_DEBUGGERCONFIG_IDX, F_LOGGERCONFIG_IDX, F_MAINLOG_IDX, diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index a4f45f4ffc..9cd768992f 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -256,6 +256,12 @@ void SConfig::SaveSettings() ini.Set("Movie", "PauseMovie", m_PauseMovie); ini.Set("Movie", "Author", m_strMovieAuthor); + // DSP + ini.Set("DSP", "EnableJIT", m_EnableJIT); + ini.Set("DSP", "DumpAudio", m_DumpAudio); + ini.Set("DSP", "Backend", sBackend); + ini.Set("DSP", "Volume", m_Volume); + ini.Save(File::GetUserPath(F_DOLPHINCONFIG_IDX)); m_SYSCONF->Save(); } @@ -404,6 +410,20 @@ void SConfig::LoadSettings() // Movie ini.Get("General", "PauseMovie", &m_PauseMovie, false); ini.Get("Movie", "Author", &m_strMovieAuthor, ""); + + // DSP + ini.Get("Config", "EnableJIT", &m_EnableJIT, true); + ini.Get("Config", "DumpAudio", &m_DumpAudio, false); + #if defined __linux__ && HAVE_ALSA + ini.Get("Config", "Backend", &sBackend, BACKEND_ALSA); + #elif defined __APPLE__ + ini.Get("Config", "Backend", &sBackend, BACKEND_COREAUDIO); + #elif defined _WIN32 + ini.Get("Config", "Backend", &sBackend, BACKEND_DIRECTSOUND); + #else + ini.Get("Config", "Backend", &sBackend, BACKEND_NULLSOUND); + #endif + ini.Get("Config", "Volume", &m_Volume, 100); } m_SYSCONF = new SysConf(); diff --git a/Source/Core/Core/Src/ConfigManager.h b/Source/Core/Core/Src/ConfigManager.h index cbe1b4d1cb..e92d29ee65 100644 --- a/Source/Core/Core/Src/ConfigManager.h +++ b/Source/Core/Core/Src/ConfigManager.h @@ -26,6 +26,16 @@ #include "HW/SI_Device.h" #include "SysConf.h" +// DSP Backend Types +#define BACKEND_NULLSOUND "No audio output" +#define BACKEND_ALSA "ALSA" +#define BACKEND_AOSOUND "AOSound" +#define BACKEND_COREAUDIO "CoreAudio" +#define BACKEND_DIRECTSOUND "DSound" +#define BACKEND_OPENAL "OpenAL" +#define BACKEND_PULSEAUDIO "Pulse" +#define BACKEND_XAUDIO2 "XAudio2" + struct SConfig : NonCopyable { // Wii Devices @@ -83,6 +93,12 @@ struct SConfig : NonCopyable bool m_ShowLag; std::string m_strMovieAuthor; + // DSP settings + bool m_EnableJIT; + bool m_DumpAudio; + int m_Volume; + std::string sBackend; + SysConf* m_SYSCONF; // save settings diff --git a/Source/Core/Core/Src/DSPEmulator.cpp b/Source/Core/Core/Src/DSPEmulator.cpp index 2f1c7649a7..907eb225b3 100644 --- a/Source/Core/Core/Src/DSPEmulator.cpp +++ b/Source/Core/Core/Src/DSPEmulator.cpp @@ -22,8 +22,6 @@ DSPEmulator *CreateDSPEmulator(bool HLE) { - ac_Config.Load(); - if (HLE) { return new DSPHLE(); diff --git a/Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp b/Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp index 7981c677a8..b22be91104 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp +++ b/Source/Core/Core/Src/HW/DSPHLE/DSPHLE.cpp @@ -26,6 +26,7 @@ #include "DSPHLE.h" #include "UCodes/UCodes.h" #include "../AudioInterface.h" +#include "ConfigManager.h" DSPHLE::DSPHLE() { m_InitMixer = false; diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index db5f76b684..ae07eb78b8 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -321,9 +321,6 @@ void CConfigMain::InitializeGUIValues() { const SCoreStartupParameter& startup_params = SConfig::GetInstance().m_LocalCoreStartupParameter; - // Load DSP Settings. - ac_Config.Load(); - // General - Basic CPUThread->SetValue(startup_params.bCPUThread); SkipIdle->SetValue(startup_params.bSkipIdle); @@ -354,17 +351,17 @@ void CConfigMain::InitializeGUIValues() if (startup_params.bDSPHLE) DSPEngine->SetSelection(0); else - DSPEngine->SetSelection(ac_Config.m_EnableJIT ? 1 : 2); + DSPEngine->SetSelection(SConfig::GetInstance().m_EnableJIT ? 1 : 2); // Audio - VolumeSlider->Enable(SupportsVolumeChanges(ac_Config.sBackend)); - VolumeSlider->SetValue(ac_Config.m_Volume); - VolumeText->SetLabel(wxString::Format(wxT("%d %%"), ac_Config.m_Volume)); + VolumeSlider->Enable(SupportsVolumeChanges(SConfig::GetInstance().sBackend)); + VolumeSlider->SetValue(SConfig::GetInstance().m_Volume); + VolumeText->SetLabel(wxString::Format(wxT("%d %%"), SConfig::GetInstance().m_Volume)); DSPThread->SetValue(startup_params.bDSPThread); - DumpAudio->SetValue(ac_Config.m_DumpAudio ? true : false); - DPL2Decoder->Enable(std::string(ac_Config.sBackend) == BACKEND_OPENAL); + DumpAudio->SetValue(SConfig::GetInstance().m_DumpAudio ? true : false); + DPL2Decoder->Enable(std::string(SConfig::GetInstance().sBackend) == BACKEND_OPENAL); DPL2Decoder->SetValue(startup_params.bDPL2Decoder); - Latency->Enable(std::string(ac_Config.sBackend) == BACKEND_OPENAL); + Latency->Enable(std::string(SConfig::GetInstance().sBackend) == BACKEND_OPENAL); Latency->SetValue(startup_params.iLatency); // add backends to the list AddAudioBackends(); @@ -858,9 +855,6 @@ void CConfigMain::OnOk(wxCommandEvent& WXUNUSED (event)) // Save the config. Dolphin crashes to often to save the settings on closing only SConfig::GetInstance().SaveSettings(); - - // Save Audio settings - ac_Config.SaveSettings(); } // Core settings @@ -880,7 +874,7 @@ void CConfigMain::CoreSettingsChanged(wxCommandEvent& event) break; case ID_FRAMELIMIT: SConfig::GetInstance().m_Framelimit = Framelimit->GetSelection(); - ac_Config.Update(); + AudioCommon::UpdateSoundStream(); break; case ID_FRAMELIMIT_USEFPSFORLIMITING: SConfig::GetInstance().b_UseFPS = UseFPSForLimiting->IsChecked(); @@ -938,13 +932,13 @@ void CConfigMain::AudioSettingsChanged(wxCommandEvent& event) case ID_DSPENGINE: SConfig::GetInstance().m_LocalCoreStartupParameter.bDSPHLE = DSPEngine->GetSelection() == 0; if (!DSPEngine->GetSelection() == 0) - ac_Config.m_EnableJIT = DSPEngine->GetSelection() == 1; - ac_Config.Update(); + SConfig::GetInstance().m_EnableJIT = DSPEngine->GetSelection() == 1; + AudioCommon::UpdateSoundStream(); break; case ID_VOLUME: - ac_Config.m_Volume = VolumeSlider->GetValue(); - ac_Config.Update(); + SConfig::GetInstance().m_Volume = VolumeSlider->GetValue(); + AudioCommon::UpdateSoundStream(); VolumeText->SetLabel(wxString::Format(wxT("%d %%"), VolumeSlider->GetValue())); break; @@ -960,8 +954,8 @@ void CConfigMain::AudioSettingsChanged(wxCommandEvent& event) VolumeSlider->Enable(SupportsVolumeChanges(std::string(BackendSelection->GetStringSelection().mb_str()))); Latency->Enable(std::string(BackendSelection->GetStringSelection().mb_str()) == BACKEND_OPENAL); DPL2Decoder->Enable(std::string(BackendSelection->GetStringSelection().mb_str()) == BACKEND_OPENAL); - ac_Config.sBackend = BackendSelection->GetStringSelection().mb_str(); - ac_Config.Update(); + SConfig::GetInstance().sBackend = BackendSelection->GetStringSelection().mb_str(); + AudioCommon::UpdateSoundStream(); break; case ID_LATENCY: @@ -969,7 +963,7 @@ void CConfigMain::AudioSettingsChanged(wxCommandEvent& event) break; default: - ac_Config.m_DumpAudio = DumpAudio->GetValue(); + SConfig::GetInstance().m_DumpAudio = DumpAudio->GetValue(); break; } } @@ -983,7 +977,7 @@ void CConfigMain::AddAudioBackends() { BackendSelection->Append(wxString::FromAscii((*iter).c_str())); int num = BackendSelection->\ - FindString(wxString::FromAscii(ac_Config.sBackend.c_str())); + FindString(wxString::FromAscii(SConfig::GetInstance().sBackend.c_str())); BackendSelection->SetSelection(num); } } -- cgit v1.2.3 From 178b1b38621b82ad7669633546996bab9d7b8ac9 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 16 Jan 2013 20:22:00 -0600 Subject: Fix theme loading on non-Windows. --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 11 +++++++++-- Source/Core/DolphinWX/Src/FrameTools.cpp | 9 ++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index ae07eb78b8..d4777a7907 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -595,7 +595,13 @@ void CConfigMain::CreateGUIControls() // theme selection auto const theme_selection = new wxChoice(DisplayPage, wxID_ANY); - CFileSearch cfs(CFileSearch::XStringVector(1, "*"), CFileSearch::XStringVector(1, File::GetUserPath(D_THEMES_IDX))); + CFileSearch::XStringVector theme_dirs; + theme_dirs.push_back(File::GetUserPath(D_THEMES_IDX)); +#if !defined(_WIN32) + theme_dirs.push_back(SHARED_USER_DIR THEMES_DIR); +#endif + + CFileSearch cfs(CFileSearch::XStringVector(1, "*"), theme_dirs); auto const& sv = cfs.GetFileNames(); std::for_each(sv.begin(), sv.end(), [theme_selection](const std::string& filename) { @@ -603,7 +609,8 @@ void CConfigMain::CreateGUIControls() SplitPath(filename, NULL, &name, &ext); name += ext; - theme_selection->Append(name); + if (-1 == theme_selection->FindString(name)) + theme_selection->Append(name); if (SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name == name) theme_selection->SetSelection(theme_selection->GetCount() - 1); diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index f07fcd10f3..eb139bd5c1 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -495,7 +495,14 @@ void CFrame::RecreateToolbar() void CFrame::InitBitmaps() { - wxString dir(File::GetUserPath(D_THEMES_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name + "/"); + std::string theme(SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name + "/"); + std::string dir(File::GetUserPath(D_THEMES_IDX) + theme); + +#if !defined(_WIN32) + // If theme does not exist in user's dir load from shared directory + if (!File::Exists(dir)) + dir = SHARED_USER_DIR THEMES_DIR "/" + theme; +#endif m_Bitmaps[Toolbar_FileOpen].LoadFile(dir + "open.png", wxBITMAP_TYPE_PNG); m_Bitmaps[Toolbar_Refresh].LoadFile(dir + "refresh.png", wxBITMAP_TYPE_PNG); -- cgit v1.2.3 From 12162a269b13cf946f762905c29adf5bf3dc9a7f Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 16 Jan 2013 22:23:42 -0500 Subject: Change GetCmdForHotkey to use a switch. Cuts down on if-statement spam. Also fixed a typo in ConfigMain. --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 2 +- Source/Core/DolphinWX/Src/Frame.cpp | 97 +++++++++++++++++++++----------- 2 files changed, 64 insertions(+), 35 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index d4777a7907..fbc2a18346 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -494,7 +494,7 @@ void CConfigMain::InitializeGUITooltips() // Display - Interface ConfirmStop->SetToolTip(_("Show a confirmation box before stopping a game.")); - UsePanicHandlers->SetToolTip(_("Show a message box when a potentially serious error has occured.\nDisabling this may avoid annoying and non-fatal messages, but it may also mean that Dolphin suddenly crashes without any explanation at all.")); + UsePanicHandlers->SetToolTip(_("Show a message box when a potentially serious error has occurred.\nDisabling this may avoid annoying and non-fatal messages, but it may also mean that Dolphin suddenly crashes without any explanation at all.")); OnScreenDisplayMessages->SetToolTip(_("Show messages on the emulation screen area.\nThese messages include memory card writes, video backend and CPU information, and JIT cache clearing.")); InterfaceLang->SetToolTip(_("Change the language of the user interface.\nRequires restart.")); diff --git a/Source/Core/DolphinWX/Src/Frame.cpp b/Source/Core/DolphinWX/Src/Frame.cpp index b2a60b606c..d390b8afcd 100644 --- a/Source/Core/DolphinWX/Src/Frame.cpp +++ b/Source/Core/DolphinWX/Src/Frame.cpp @@ -313,7 +313,7 @@ CFrame::CFrame(wxFrame* parent, ConsoleListener *Console = LogManager::GetInstance()->GetConsoleListener(); if (SConfig::GetInstance().m_InterfaceConsole) Console->Open(); - // Start debugging mazimized + // Start debugging maximized if (UseDebugger) this->Maximize(true); // Debugger class if (UseDebugger) @@ -740,78 +740,107 @@ bool IsHotkey(wxKeyEvent &event, int Id) int GetCmdForHotkey(unsigned int key) { - if (key == HK_OPEN) + switch (key) + { + case HK_OPEN: return wxID_OPEN; - if (key == HK_CHANGE_DISC) + + case HK_CHANGE_DISC: return IDM_CHANGEDISC; - if (key == HK_REFRESH_LIST) + + case HK_REFRESH_LIST: return wxID_REFRESH; - if (key == HK_PLAY_PAUSE) + case HK_PLAY_PAUSE: return IDM_PLAY; - if (key == HK_STOP) + + case HK_STOP: return IDM_STOP; - if (key == HK_RESET) + + case HK_RESET: return IDM_RESET; - if (key == HK_FRAME_ADVANCE) + + case HK_FRAME_ADVANCE: return IDM_FRAMESTEP; - if (key == HK_START_RECORDING) + case HK_START_RECORDING: return IDM_RECORD; - if (key == HK_PLAY_RECORDING) + + case HK_PLAY_RECORDING: return IDM_PLAYRECORD; - if (key == HK_EXPORT_RECORDING) + + case HK_EXPORT_RECORDING: return IDM_RECORDEXPORT; - if (key == HK_READ_ONLY_MODE) + + case HK_READ_ONLY_MODE: return IDM_RECORDREADONLY; - if (key == HK_FULLSCREEN) + case HK_FULLSCREEN: return IDM_TOGGLE_FULLSCREEN; - if (key == HK_SCREENSHOT) + + case HK_SCREENSHOT: return IDM_SCREENSHOT; - if (key == HK_WIIMOTE1_CONNECT) + case HK_WIIMOTE1_CONNECT: return IDM_CONNECT_WIIMOTE1; - if (key == HK_WIIMOTE2_CONNECT) + + case HK_WIIMOTE2_CONNECT: return IDM_CONNECT_WIIMOTE2; - if (key == HK_WIIMOTE3_CONNECT) + + case HK_WIIMOTE3_CONNECT: return IDM_CONNECT_WIIMOTE3; - if (key == HK_WIIMOTE4_CONNECT) + + case HK_WIIMOTE4_CONNECT: return IDM_CONNECT_WIIMOTE4; - if (key == HK_LOAD_STATE_SLOT_1) + case HK_LOAD_STATE_SLOT_1: return IDM_LOADSLOT1; - if (key == HK_LOAD_STATE_SLOT_2) + + case HK_LOAD_STATE_SLOT_2: return IDM_LOADSLOT2; - if (key == HK_LOAD_STATE_SLOT_3) + + case HK_LOAD_STATE_SLOT_3: return IDM_LOADSLOT3; - if (key == HK_LOAD_STATE_SLOT_4) + + case HK_LOAD_STATE_SLOT_4: return IDM_LOADSLOT4; - if (key == HK_LOAD_STATE_SLOT_5) + + case HK_LOAD_STATE_SLOT_5: return IDM_LOADSLOT5; - if (key == HK_LOAD_STATE_SLOT_6) + + case HK_LOAD_STATE_SLOT_6: return IDM_LOADSLOT6; - if (key == HK_LOAD_STATE_SLOT_7) + + case HK_LOAD_STATE_SLOT_7: return IDM_LOADSLOT7; - if (key == HK_LOAD_STATE_SLOT_8) + + case HK_LOAD_STATE_SLOT_8: return IDM_LOADSLOT8; - if (key == HK_SAVE_STATE_SLOT_1) + case HK_SAVE_STATE_SLOT_1: return IDM_SAVESLOT1; - if (key == HK_SAVE_STATE_SLOT_2) + + case HK_SAVE_STATE_SLOT_2: return IDM_SAVESLOT2; - if (key == HK_SAVE_STATE_SLOT_3) + + case HK_SAVE_STATE_SLOT_3: return IDM_SAVESLOT3; - if (key == HK_SAVE_STATE_SLOT_4) + + case HK_SAVE_STATE_SLOT_4: return IDM_SAVESLOT4; - if (key == HK_SAVE_STATE_SLOT_5) + + case HK_SAVE_STATE_SLOT_5: return IDM_SAVESLOT5; - if (key == HK_SAVE_STATE_SLOT_6) + + case HK_SAVE_STATE_SLOT_6: return IDM_SAVESLOT6; - if (key == HK_SAVE_STATE_SLOT_7) + + case HK_SAVE_STATE_SLOT_7: return IDM_SAVESLOT7; - if (key == HK_SAVE_STATE_SLOT_8) + + case HK_SAVE_STATE_SLOT_8: return IDM_SAVESLOT8; + } return -1; } -- cgit v1.2.3 From e74dc0b41f85595edc4dfee9079831a8161c4564 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Wed, 16 Jan 2013 22:52:01 -0500 Subject: Update title/status bar when pausing emulation. --- Source/Core/Core/Src/Core.cpp | 147 ++++++++++++++++--------------- Source/Core/Core/Src/Core.h | 2 + Source/Core/DolphinWX/Src/FrameTools.cpp | 1 + 3 files changed, 79 insertions(+), 71 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index be75f67550..dadc89d140 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -625,77 +625,7 @@ void VideoThrottle() u32 ElapseTime = (u32)Timer.GetTimeDifference(); if ((ElapseTime >= 1000 && DrawnVideo > 0) || g_requestRefreshInfo) { - g_requestRefreshInfo = false; - SCoreStartupParameter& _CoreParameter = SConfig::GetInstance().m_LocalCoreStartupParameter; - - if (ElapseTime == 0) - ElapseTime = 1; - - u32 FPS = Common::AtomicLoad(DrawnFrame) * 1000 / ElapseTime; - u32 VPS = DrawnVideo * 1000 / ElapseTime; - u32 Speed = DrawnVideo * (100 * 1000) / (VideoInterface::TargetRefreshRate * ElapseTime); - - // Settings are shown the same for both extended and summary info - std::string SSettings = StringFromFormat("%s %s", cpu_core_base->GetName(), _CoreParameter.bCPUThread ? "DC" : "SC"); - - // Use extended or summary information. The summary information does not print the ticks data, - // that's more of a debugging interest, it can always be optional of course if someone is interested. - //#define EXTENDED_INFO - #ifdef EXTENDED_INFO - u64 newTicks = CoreTiming::GetTicks(); - u64 newIdleTicks = CoreTiming::GetIdleTicks(); - - u64 diff = (newTicks - ticks) / 1000000; - u64 idleDiff = (newIdleTicks - idleTicks) / 1000000; - - ticks = newTicks; - idleTicks = newIdleTicks; - - float TicksPercentage = (float)diff / (float)(SystemTimers::GetTicksPerSecond() / 1000000) * 100; - - std::string SFPS = StringFromFormat("FPS: %u - VPS: %u - SPEED: %u%%", FPS, VPS, Speed); - SFPS += StringFromFormat(" | CPU: %s%i MHz [Real: %i + IdleSkip: %i] / %i MHz (%s%3.0f%%)", - _CoreParameter.bSkipIdle ? "~" : "", - (int)(diff), - (int)(diff - idleDiff), - (int)(idleDiff), - SystemTimers::GetTicksPerSecond() / 1000000, - _CoreParameter.bSkipIdle ? "~" : "", - TicksPercentage); - - #else // Summary information - std::string SFPS; - if (Movie::IsPlayingInput()) - SFPS = StringFromFormat("VI: %u/%u - Frame: %u/%u - FPS: %u - VPS: %u - SPEED: %u%%", (u32)Movie::g_currentFrame, (u32)Movie::g_totalFrames, (u32)Movie::g_currentInputCount, (u32)Movie::g_totalInputCount, FPS, VPS, Speed); - else if (Movie::IsRecordingInput()) - SFPS = StringFromFormat("VI: %u - Frame: %u - FPS: %u - VPS: %u - SPEED: %u%%", (u32)Movie::g_currentFrame, (u32)Movie::g_currentInputCount, FPS, VPS, Speed); - else - SFPS = StringFromFormat("FPS: %u - VPS: %u - SPEED: %u%%", FPS, VPS, Speed); - #endif - - // This is our final "frame counter" string - std::string SMessage = StringFromFormat("%s | %s", - SSettings.c_str(), SFPS.c_str()); - std::string TMessage = StringFromFormat("%s | ", scm_rev_str) + - SMessage; - - // Show message - g_video_backend->UpdateFPSDisplay(SMessage.c_str()); - - // Update the audio timestretcher with the current speed - if (soundStream) - { - CMixer* pMixer = soundStream->GetMixer(); - pMixer->UpdateSpeed((float)Speed / 100); - } - - if (_CoreParameter.bRenderToMain && - SConfig::GetInstance().m_InterfaceStatusbar) { - Host_UpdateStatusBar(SMessage.c_str()); - Host_UpdateTitle(scm_rev_str); - } else - Host_UpdateTitle(TMessage.c_str()); - + UpdateTitle(); // Reset counter Timer.Update(); @@ -742,4 +672,79 @@ const char *Callback_ISOName() return ""; } +void UpdateTitle() +{ + u32 ElapseTime = (u32)Timer.GetTimeDifference(); + g_requestRefreshInfo = false; + SCoreStartupParameter& _CoreParameter = SConfig::GetInstance().m_LocalCoreStartupParameter; + + if (ElapseTime == 0) + ElapseTime = 1; + + u32 FPS = Common::AtomicLoad(DrawnFrame) * 1000 / ElapseTime; + u32 VPS = DrawnVideo * 1000 / ElapseTime; + u32 Speed = DrawnVideo * (100 * 1000) / (VideoInterface::TargetRefreshRate * ElapseTime); + + // Settings are shown the same for both extended and summary info + std::string SSettings = StringFromFormat("%s %s", cpu_core_base->GetName(), _CoreParameter.bCPUThread ? "DC" : "SC"); + + // Use extended or summary information. The summary information does not print the ticks data, + // that's more of a debugging interest, it can always be optional of course if someone is interested. + //#define EXTENDED_INFO + #ifdef EXTENDED_INFO + u64 newTicks = CoreTiming::GetTicks(); + u64 newIdleTicks = CoreTiming::GetIdleTicks(); + + u64 diff = (newTicks - ticks) / 1000000; + u64 idleDiff = (newIdleTicks - idleTicks) / 1000000; + + ticks = newTicks; + idleTicks = newIdleTicks; + + float TicksPercentage = (float)diff / (float)(SystemTimers::GetTicksPerSecond() / 1000000) * 100; + + std::string SFPS = StringFromFormat("FPS: %u - VPS: %u - SPEED: %u%%", FPS, VPS, Speed); + SFPS += StringFromFormat(" | CPU: %s%i MHz [Real: %i + IdleSkip: %i] / %i MHz (%s%3.0f%%)", + _CoreParameter.bSkipIdle ? "~" : "", + (int)(diff), + (int)(diff - idleDiff), + (int)(idleDiff), + SystemTimers::GetTicksPerSecond() / 1000000, + _CoreParameter.bSkipIdle ? "~" : "", + TicksPercentage); + + #else // Summary information + std::string SFPS; + if (Movie::IsPlayingInput()) + SFPS = StringFromFormat("VI: %u/%u - Frame: %u/%u - FPS: %u - VPS: %u - SPEED: %u%%", (u32)Movie::g_currentFrame, (u32)Movie::g_totalFrames, (u32)Movie::g_currentInputCount, (u32)Movie::g_totalInputCount, FPS, VPS, Speed); + else if (Movie::IsRecordingInput()) + SFPS = StringFromFormat("VI: %u - Frame: %u - FPS: %u - VPS: %u - SPEED: %u%%", (u32)Movie::g_currentFrame, (u32)Movie::g_currentInputCount, FPS, VPS, Speed); + else + SFPS = StringFromFormat("FPS: %u - VPS: %u - SPEED: %u%%", FPS, VPS, Speed); + #endif + + // This is our final "frame counter" string + std::string SMessage = StringFromFormat("%s | %s", + SSettings.c_str(), SFPS.c_str()); + std::string TMessage = StringFromFormat("%s | ", scm_rev_str) + + SMessage; + + // Show message + g_video_backend->UpdateFPSDisplay(SMessage.c_str()); + + // Update the audio timestretcher with the current speed + if (soundStream) + { + CMixer* pMixer = soundStream->GetMixer(); + pMixer->UpdateSpeed((float)Speed / 100); + } + + if (_CoreParameter.bRenderToMain && + SConfig::GetInstance().m_InterfaceStatusbar) { + Host_UpdateStatusBar(SMessage.c_str()); + Host_UpdateTitle(scm_rev_str); + } else + Host_UpdateTitle(TMessage.c_str()); + } + } // Core diff --git a/Source/Core/Core/Src/Core.h b/Source/Core/Core/Src/Core.h index 312c446744..ac55419db3 100644 --- a/Source/Core/Core/Src/Core.h +++ b/Source/Core/Core/Src/Core.h @@ -89,6 +89,8 @@ bool ShouldSkipFrame(int skipped); void VideoThrottle(); void RequestRefreshInfo(); +void UpdateTitle(); + // waits until all systems are paused and fully idle, and acquires a lock on that state. // or, if doLock is false, releases a lock on that state and optionally unpauses. // calls must be balanced (once with doLock true, then once with doLock false) but may be recursive. diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index eb139bd5c1..304c5ff0d3 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -951,6 +951,7 @@ void CFrame::DoPause() Core::SetState(Core::CORE_PAUSE); if (SConfig::GetInstance().m_LocalCoreStartupParameter.bHideCursor) m_RenderParent->SetCursor(wxNullCursor); + Core::UpdateTitle(); } else { -- cgit v1.2.3 From 4dad8ddd834c8165516537300eb22e8b298caf75 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 16 Jan 2013 22:11:02 -0600 Subject: Actually use the screenshot icon. --- Source/Core/DolphinWX/Src/FrameTools.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index 304c5ff0d3..ea68c87890 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -424,7 +424,7 @@ void CFrame::PopulateToolbar(wxAuiToolBar* ToolBar) ToolBar->AddTool(IDM_PLAY, _("Play"), m_Bitmaps[Toolbar_Play], _("Play")); ToolBar->AddTool(IDM_STOP, _("Stop"), m_Bitmaps[Toolbar_Stop], _("Stop")); ToolBar->AddTool(IDM_TOGGLE_FULLSCREEN, _("FullScr"), m_Bitmaps[Toolbar_FullScreen], _("Toggle Fullscreen")); - ToolBar->AddTool(IDM_SCREENSHOT, _("ScrShot"), m_Bitmaps[Toolbar_FullScreen], _("Take Screenshot")); + ToolBar->AddTool(IDM_SCREENSHOT, _("ScrShot"), m_Bitmaps[Toolbar_Screenshot], _("Take Screenshot")); ToolBar->AddSeparator(); ToolBar->AddTool(wxID_PREFERENCES, _("Config"), m_Bitmaps[Toolbar_ConfigMain], _("Configure...")); ToolBar->AddTool(IDM_CONFIG_GFX_BACKEND, _("Graphics"), m_Bitmaps[Toolbar_ConfigGFX], _("Graphics settings")); -- cgit v1.2.3 From cae8bb33c334d34afeb84b668b848cce07030103 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 17 Jan 2013 01:24:02 -0600 Subject: Fix initial theme selection. --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index fbc2a18346..423885e0f2 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -611,13 +611,12 @@ void CConfigMain::CreateGUIControls() name += ext; if (-1 == theme_selection->FindString(name)) theme_selection->Append(name); - - if (SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name == name) - theme_selection->SetSelection(theme_selection->GetCount() - 1); }); + + theme_selection->SetStringSelection(SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name); // std::function = avoid error on msvc - theme_selection->Bind(wxEVT_COMMAND_CHOICE_SELECTED, function([this,theme_selection](wxEvent&) + theme_selection->Bind(wxEVT_COMMAND_CHOICE_SELECTED, function([theme_selection](wxEvent&) { SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name = theme_selection->GetStringSelection(); main_frame->InitBitmaps(); -- cgit v1.2.3 From 592395bc6791e869da06912cd104c25e1221381a Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Thu, 17 Jan 2013 14:30:47 -0500 Subject: Copypaste fail. --- Source/Core/Core/Src/ConfigManager.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 9cd768992f..317e770868 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -412,18 +412,18 @@ void SConfig::LoadSettings() ini.Get("Movie", "Author", &m_strMovieAuthor, ""); // DSP - ini.Get("Config", "EnableJIT", &m_EnableJIT, true); - ini.Get("Config", "DumpAudio", &m_DumpAudio, false); + ini.Get("DSP", "EnableJIT", &m_EnableJIT, true); + ini.Get("DSP", "DumpAudio", &m_DumpAudio, false); #if defined __linux__ && HAVE_ALSA - ini.Get("Config", "Backend", &sBackend, BACKEND_ALSA); + ini.Get("DSP", "Backend", &sBackend, BACKEND_ALSA); #elif defined __APPLE__ - ini.Get("Config", "Backend", &sBackend, BACKEND_COREAUDIO); + ini.Get("DSP", "Backend", &sBackend, BACKEND_COREAUDIO); #elif defined _WIN32 - ini.Get("Config", "Backend", &sBackend, BACKEND_DIRECTSOUND); + ini.Get("DSP", "Backend", &sBackend, BACKEND_DIRECTSOUND); #else - ini.Get("Config", "Backend", &sBackend, BACKEND_NULLSOUND); + ini.Get("DSP", "Backend", &sBackend, BACKEND_NULLSOUND); #endif - ini.Get("Config", "Volume", &m_Volume, 100); + ini.Get("DSP", "Volume", &m_Volume, 100); } m_SYSCONF = new SysConf(); -- cgit v1.2.3 From 38b01d176a266ac67e2473f16c645760a991fb66 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 17 Jan 2013 15:40:44 -0600 Subject: Start to make possible use of "full analog surface". (useful for triggers on some silly physical gamepads) --- .../ControllerInterface/ControllerInterface.cpp | 4 +-- .../Src/ControllerInterface/ControllerInterface.h | 32 +++++++++++++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) (limited to 'Source') diff --git a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp index 82cfe2469e..e6877f5731 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp @@ -461,7 +461,7 @@ ControllerInterface::Device::Control* ControllerInterface::InputReference::Detec i = device->Inputs().begin(), e = device->Inputs().end(); for (std::vector::iterator state = states.begin(); i != e; ++i) - *state++ = ((*i)->GetState() > INPUT_DETECT_THRESHOLD); + *state++ = ((*i)->GetState() > (1 - INPUT_DETECT_THRESHOLD)); while (time < ms) { @@ -477,7 +477,7 @@ ControllerInterface::Device::Control* ControllerInterface::InputReference::Detec if (false == *state) return *i; } - else + else if ((*i)->GetState() < (1 - INPUT_DETECT_THRESHOLD)) *state = false; } Common::SleepCurrentThread(10); time += 10; diff --git a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h index 7c5a236d75..b846bb56e8 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h +++ b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h @@ -87,7 +87,7 @@ public: Input* ToInput() { return this; } }; - + // // Output // @@ -122,6 +122,36 @@ public: protected: void AddInput(Input* const i); void AddOutput(Output* const o); + + class FullAnalogSurface : public Input + { + public: + FullAnalogSurface(Input* low, Input* high) + : m_low(*low), m_high(*high) + {} + + ControlState GetState() const + { + return (1 + m_high.GetState() - m_low.GetState()) / 2; + } + + std::string GetName() const + { + return m_low.GetName() + *m_high.GetName().rbegin(); + } + + private: + Input& m_low; + Input& m_high; + }; + + void AddAnalogInputs(Input* low, Input* high) + { + AddInput(low); + AddInput(high); + AddInput(new FullAnalogSurface(low, high)); + AddInput(new FullAnalogSurface(high, low)); + } private: std::vector m_inputs; -- cgit v1.2.3 From f97d2a93c4167a4b6aec0ae69536395380d427e3 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 17 Jan 2013 15:41:18 -0600 Subject: Add "full analog surface" support in DInput,OSX,SDL backends. (should not be needed for XInput) --- .../InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp | 4 ++-- Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXJoystick.mm | 4 ++-- Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'Source') diff --git a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp index af6ee7e77c..9bc5364e76 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInputJoystick.cpp @@ -267,8 +267,8 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI const LONG& ax = (&m_state_in.lX)[offset]; // each axis gets a negative and a positive input instance associated with it - AddInput(new Axis(offset, ax, base, range.lMin-base)); - AddInput(new Axis(offset, ax, base, range.lMax-base)); + AddAnalogInputs(new Axis(offset, ax, base, range.lMin-base), + new Axis(offset, ax, base, range.lMax-base)); } } diff --git a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXJoystick.mm b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXJoystick.mm index 129a5f38e0..60c0cc8c50 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXJoystick.mm +++ b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXJoystick.mm @@ -64,8 +64,8 @@ Joystick::Joystick(IOHIDDeviceRef device, std::string name, int index) AddInput(new Hat(e, m_device, Hat::down)); AddInput(new Hat(e, m_device, Hat::left)); } else { - AddInput(new Axis(e, m_device, Axis::negative)); - AddInput(new Axis(e, m_device, Axis::positive)); + AddAnalogInputs(new Axis(e, m_device, Axis::negative), + new Axis(e, m_device, Axis::positive)); } } CFRelease(axes); diff --git a/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.cpp index c7c6898ecd..5473f7bcb3 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.cpp @@ -86,8 +86,8 @@ Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index, const unsi for (u8 i = 0; i != SDL_JoystickNumAxes(m_joystick); ++i) { // each axis gets a negative and a positive input instance associated with it - AddInput(new Axis(i, m_joystick, -32768)); - AddInput(new Axis(i, m_joystick, 32767)); + AddAnalogInputs(new Axis(i, m_joystick, -32768), + new Axis(i, m_joystick, 32767)); } #ifdef USE_SDL_HAPTIC -- cgit v1.2.3 From 2180c933473cac320443763dd0b2fd34c5972621 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 17 Jan 2013 19:38:01 -0600 Subject: Mention middle mouse button in "Free Look" description. Fixes issue 5581. --- Source/Core/DolphinWX/Src/VideoConfigDiag.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp index 71c4c1ac93..04d79ae9cf 100644 --- a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp @@ -110,7 +110,7 @@ wxString dump_frames_desc = wxTRANSLATE("Dump all rendered frames to an AVI file #if !defined WIN32 && defined HAVE_LIBAV wxString use_ffv1_desc = wxTRANSLATE("Encode frame dumps using the FFV1 codec.\n\nIf unsure, leave this unchecked."); #endif -wxString free_look_desc = wxTRANSLATE("This feature allows you to change the game's camera.\nHold the right mouse button and move the mouse to pan the camera around. Hold SHIFT and press one of the WASD keys to move the camera by a certain step distance (SHIFT+0 to move faster and SHIFT+9 to move slower). Press SHIFT+R to reset the camera.\n\nIf unsure, leave this unchecked."); +wxString free_look_desc = wxTRANSLATE("This feature allows you to change the game's camera.\nMove the mouse while holding the right mouse button to pan and while holding the midde button to move.\nHold SHIFT and press one of the WASD keys to move the camera by a certain step distance (SHIFT+0 to move faster and SHIFT+9 to move slower). Press SHIFT+R to reset the camera.\n\nIf unsure, leave this unchecked."); wxString crop_desc = wxTRANSLATE("Crop the picture from 4:3 to 5:4 or from 16:9 to 16:10.\n\nIf unsure, leave this unchecked."); wxString opencl_desc = wxTRANSLATE("[EXPERIMENTAL]\nAims to speed up emulation by offloading texture decoding to the GPU using the OpenCL framework.\nHowever, right now it's known to cause texture defects in various games. Also it's slower than regular CPU texture decoding in most cases.\n\nIf unsure, leave this unchecked."); wxString dlc_desc = wxTRANSLATE("[EXPERIMENTAL]\nSpeeds up emulation a bit by caching display lists.\nPossibly causes issues though.\n\nIf unsure, leave this unchecked."); -- cgit v1.2.3 From ba1a31248b64e42c67360ca54644e5f44212eea5 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 17 Jan 2013 19:42:56 -0600 Subject: Fix typo. --- Source/Core/DolphinWX/Src/VideoConfigDiag.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp index 04d79ae9cf..5603a57c27 100644 --- a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp @@ -110,7 +110,7 @@ wxString dump_frames_desc = wxTRANSLATE("Dump all rendered frames to an AVI file #if !defined WIN32 && defined HAVE_LIBAV wxString use_ffv1_desc = wxTRANSLATE("Encode frame dumps using the FFV1 codec.\n\nIf unsure, leave this unchecked."); #endif -wxString free_look_desc = wxTRANSLATE("This feature allows you to change the game's camera.\nMove the mouse while holding the right mouse button to pan and while holding the midde button to move.\nHold SHIFT and press one of the WASD keys to move the camera by a certain step distance (SHIFT+0 to move faster and SHIFT+9 to move slower). Press SHIFT+R to reset the camera.\n\nIf unsure, leave this unchecked."); +wxString free_look_desc = wxTRANSLATE("This feature allows you to change the game's camera.\nMove the mouse while holding the right mouse button to pan and while holding the middle button to move.\nHold SHIFT and press one of the WASD keys to move the camera by a certain step distance (SHIFT+0 to move faster and SHIFT+9 to move slower). Press SHIFT+R to reset the camera.\n\nIf unsure, leave this unchecked."); wxString crop_desc = wxTRANSLATE("Crop the picture from 4:3 to 5:4 or from 16:9 to 16:10.\n\nIf unsure, leave this unchecked."); wxString opencl_desc = wxTRANSLATE("[EXPERIMENTAL]\nAims to speed up emulation by offloading texture decoding to the GPU using the OpenCL framework.\nHowever, right now it's known to cause texture defects in various games. Also it's slower than regular CPU texture decoding in most cases.\n\nIf unsure, leave this unchecked."); wxString dlc_desc = wxTRANSLATE("[EXPERIMENTAL]\nSpeeds up emulation a bit by caching display lists.\nPossibly causes issues though.\n\nIf unsure, leave this unchecked."); -- cgit v1.2.3 From d05d10d2a193fa7e047d6fd7932b8e1546066a1a Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 17 Jan 2013 19:53:44 -0600 Subject: Improve "Enable Hotkeys" description. Fixes issue 4607. --- Source/Core/DolphinWX/Src/VideoConfigDiag.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp index 5603a57c27..0ca4715c3d 100644 --- a/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/VideoConfigDiag.cpp @@ -115,7 +115,7 @@ wxString crop_desc = wxTRANSLATE("Crop the picture from 4:3 to 5:4 or from 16:9 wxString opencl_desc = wxTRANSLATE("[EXPERIMENTAL]\nAims to speed up emulation by offloading texture decoding to the GPU using the OpenCL framework.\nHowever, right now it's known to cause texture defects in various games. Also it's slower than regular CPU texture decoding in most cases.\n\nIf unsure, leave this unchecked."); wxString dlc_desc = wxTRANSLATE("[EXPERIMENTAL]\nSpeeds up emulation a bit by caching display lists.\nPossibly causes issues though.\n\nIf unsure, leave this unchecked."); wxString omp_desc = wxTRANSLATE("Use multiple threads to decode textures.\nMight result in a speedup (especially on CPUs with more than two cores).\n\nIf unsure, leave this unchecked."); -wxString hotkeys_desc = wxTRANSLATE("Allows toggling certain options via the hotkeys 3, 4, 5 and 6 within the emulation window.\n\nIf unsure, leave this unchecked."); +wxString hotkeys_desc = wxTRANSLATE("Allows toggling certain options via the hotkeys 3 (Internal Resolution), 4 (Aspect Ratio), 5 (Copy EFB) and 6 (Fog) within the emulation window.\n\nIf unsure, leave this unchecked."); wxString ppshader_desc = wxTRANSLATE("Apply a post-processing effect after finishing a frame.\n\nIf unsure, select (off)."); wxString cache_efb_copies_desc = wxTRANSLATE("Slightly speeds up EFB to RAM copies by sacrificing emulation accuracy.\nSometimes also increases visual quality.\nIf you're experiencing any issues, try raising texture cache accuracy or disable this option.\n\nIf unsure, leave this unchecked."); wxString shader_errors_desc = wxTRANSLATE("Usually if shader compilation fails, an error message is displayed.\nHowever, one may skip the popups to allow interruption free gameplay by checking this option.\n\nIf unsure, leave this unchecked."); -- cgit v1.2.3 From 69b1da915f276eab89a0b4ef1a5aaf0eff6c2e5a Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 18 Jan 2013 00:06:39 -0600 Subject: Fix emulated wiimote shaking in Wario Land: Shake It, and probably others. Fixes issue 5295. (probably issue 5017 and issue 5578 too) --- Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp | 23 +++++++++++++++++------ Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.h | 7 ++++++- 2 files changed, 23 insertions(+), 7 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp b/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp index b7652e973a..61996d8e7c 100644 --- a/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp +++ b/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp @@ -15,6 +15,8 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ +#include + #include "Attachment/Classic.h" #include "Attachment/Nunchuk.h" #include "Attachment/Guitar.h" @@ -89,23 +91,32 @@ const ReportFeatures reporting_mode_features[] = { 0, 0, 0, 0, 23 }, }; -void EmulateShake( AccelData* const accel +void EmulateShake(AccelData* const accel , ControllerEmu::Buttons* const buttons_group , u8* const shake_step ) { - static const double shake_data[] = { -2.5f, -5.0f, -2.5f, 0.0f, 2.5f, 5.0f, 2.5f, 0.0f }; + // frame count of one up/down shake + // < 9 no shake detection in "Wario Land: Shake It" + auto const shake_step_max = 15; + + // peak G-force + auto const shake_intensity = 3.f; + + // shake is a bitfield of X,Y,Z shake button states static const unsigned int btns[] = { 0x01, 0x02, 0x04 }; unsigned int shake = 0; - buttons_group->GetState( &shake, btns ); - for ( unsigned int i=0; i<3; ++i ) + + for (int i = 0; i != 3; ++i) + { if (shake & (1 << i)) { - (&(accel->x))[i] = shake_data[shake_step[i]++]; - shake_step[i] %= sizeof(shake_data)/sizeof(double); + (&(accel->x))[i] = std::sin(TAU * shake_step[i] / shake_step_max) * shake_intensity; + shake_step[i] = (shake_step[i] + 1) % shake_step_max; } else shake_step[i] = 0; + } } void EmulateTilt(AccelData* const accel diff --git a/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.h b/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.h index 17a3a2adfc..2a773d8978 100644 --- a/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.h +++ b/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.h @@ -30,7 +30,12 @@ #include #include -#define PI 3.14159265358979323846 +namespace +{ +// :) +auto const TAU = 6.28318530717958647692; +auto const PI = TAU / 2.0; +} // Registry sizes #define WIIMOTE_EEPROM_SIZE (16*1024) -- cgit v1.2.3 From 2f28d938cf640390cd8979c6104f3dbe8795e1e6 Mon Sep 17 00:00:00 2001 From: Grant Paul Date: Thu, 17 Jan 2013 23:32:07 -0800 Subject: Add support for the mouse cursor and mouse clicking events on OS X. --- Source/Core/DolphinWX/Src/FrameTools.cpp | 4 ++ .../ControllerInterface/ControllerInterface.cpp | 2 +- .../InputCommon/Src/ControllerInterface/OSX/OSX.h | 2 +- .../InputCommon/Src/ControllerInterface/OSX/OSX.mm | 8 ++- .../Src/ControllerInterface/OSX/OSXKeyboard.h | 32 ++++++++++- .../Src/ControllerInterface/OSX/OSXKeyboard.mm | 67 +++++++++++++++++++++- 6 files changed, 109 insertions(+), 6 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index ea68c87890..4d66d82b18 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -1129,6 +1129,8 @@ void CFrame::OnConfigPAD(wxCommandEvent& WXUNUSED (event)) #if defined(HAVE_X11) && HAVE_X11 Window win = X11Utils::XWindowFromHandle(GetHandle()); Pad::Initialize((void *)win); +#elif defined(__APPLE__) + Pad::Initialize((void *)this); #else Pad::Initialize(GetHandle()); #endif @@ -1153,6 +1155,8 @@ void CFrame::OnConfigWiimote(wxCommandEvent& WXUNUSED (event)) #if defined(HAVE_X11) && HAVE_X11 Window win = X11Utils::XWindowFromHandle(GetHandle()); Wiimote::Initialize((void *)win); +#elif defined(__APPLE__) + Wiimote::Initialize((void *)this); #else Wiimote::Initialize(GetHandle()); #endif diff --git a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp index e6877f5731..8e96231674 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp @@ -45,7 +45,7 @@ void ControllerInterface::Initialize() ciface::Xlib::Init(m_devices, m_hwnd); #endif #ifdef CIFACE_USE_OSX - ciface::OSX::Init(m_devices); + ciface::OSX::Init(m_devices, m_hwnd); #endif #ifdef CIFACE_USE_SDL ciface::SDL::Init(m_devices); diff --git a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSX.h b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSX.h index 0458d87e1d..225906c35d 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSX.h +++ b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSX.h @@ -7,7 +7,7 @@ namespace ciface namespace OSX { -void Init(std::vector& devices); +void Init(std::vector& devices, void *window); void DeInit(); void DeviceElementDebugPrint(const void *, void *); diff --git a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSX.mm b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSX.mm index bf4f49bac6..aef8f283c1 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSX.mm +++ b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSX.mm @@ -1,5 +1,6 @@ #include #include +#include #include "../ControllerInterface.h" #include "OSX.h" @@ -131,6 +132,7 @@ void DeviceDebugPrint(IOHIDDeviceRef device) #endif } +static void *g_window; static void DeviceMatching_callback(void* inContext, IOReturn inResult, @@ -150,7 +152,7 @@ static void DeviceMatching_callback(void* inContext, if (IOHIDDeviceConformsTo(inIOHIDDeviceRef, kHIDPage_GenericDesktop, kHIDUsage_GD_Keyboard)) devices->push_back(new Keyboard(inIOHIDDeviceRef, - name, kbd_name_counts[name]++)); + name, kbd_name_counts[name]++, g_window)); #if 0 else if (IOHIDDeviceConformsTo(inIOHIDDeviceRef, kHIDPage_GenericDesktop, kHIDUsage_GD_Mouse)) @@ -162,13 +164,15 @@ static void DeviceMatching_callback(void* inContext, name, joy_name_counts[name]++)); } -void Init(std::vector& devices) +void Init(std::vector& devices, void *window) { HIDManager = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone); if (!HIDManager) NSLog(@"Failed to create HID Manager reference"); + g_window = window; + IOHIDManagerSetDeviceMatching(HIDManager, NULL); // Callbacks for acquisition or loss of a matching device diff --git a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXKeyboard.h b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXKeyboard.h index 1a7fcd045b..d59651c98a 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXKeyboard.h +++ b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXKeyboard.h @@ -21,21 +21,51 @@ private: const IOHIDDeviceRef m_device; std::string m_name; }; + class Cursor : public Input + { + public: + std::string GetName() const; + bool IsDetectable() { return false; } + Cursor(u8 index, const float& axis, const bool positive) : m_index(index), m_axis(axis), m_positive(positive) {} + ControlState GetState() const; + private: + const float& m_axis; + const u8 m_index; + const bool m_positive; + }; + class Button : public Input + { + public: + std::string GetName() const; + Button(u8 index, const unsigned char& button) : m_index(index), m_button(button) {} + ControlState GetState() const; + private: + const unsigned char& m_button; + const u8 m_index; + }; public: bool UpdateInput(); bool UpdateOutput(); - Keyboard(IOHIDDeviceRef device, std::string name, int index); + Keyboard(IOHIDDeviceRef device, std::string name, int index, void *window); std::string GetName() const; std::string GetSource() const; int GetId() const; private: + struct + { + float x, y; + } m_cursor; + const IOHIDDeviceRef m_device; const std::string m_device_name; int m_index; + void *m_window; + uint32_t m_windowid; + unsigned char m_mousebuttons[3]; }; } diff --git a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXKeyboard.mm b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXKeyboard.mm index 7543d507dd..56e360019a 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXKeyboard.mm +++ b/Source/Core/InputCommon/Src/ControllerInterface/OSX/OSXKeyboard.mm @@ -1,5 +1,7 @@ #include #include +#include +#include // wxWidgets #include "../ControllerInterface.h" #include "OSXKeyboard.h" @@ -9,10 +11,11 @@ namespace ciface namespace OSX { -Keyboard::Keyboard(IOHIDDeviceRef device, std::string name, int index) +Keyboard::Keyboard(IOHIDDeviceRef device, std::string name, int index, void *window) : m_device(device) , m_device_name(name) , m_index(index) + , m_window(window) { // This class should only recieve Keyboard or Keypad devices // Now, filter on just the buttons we can handle sanely @@ -39,10 +42,48 @@ Keyboard::Keyboard(IOHIDDeviceRef device, std::string name, int index) } CFRelease(elements); } + + m_windowid = [[(NSView *)(((wxWindow *)window)->GetHandle()) window] windowNumber]; + + // cursor, with a hax for-loop + for (unsigned int i=0; i<4; ++i) + AddInput(new Cursor(!!(i&2), (&m_cursor.x)[i/2], !!(i&1))); + + for (u8 i = 0; i < sizeof(m_mousebuttons) / sizeof(m_mousebuttons[0]); ++i) + AddInput(new Button(i, m_mousebuttons[i])); } bool Keyboard::UpdateInput() { + CGRect bounds = CGRectZero; + uint32_t windowid[1] = { m_windowid }; + CFArrayRef windowArray = CFArrayCreate(NULL, (const void **) windowid, 1, NULL); + CFArrayRef windowDescriptions = CGWindowListCreateDescriptionFromArray(windowArray); + CFDictionaryRef windowDescription = (CFDictionaryRef) CFArrayGetValueAtIndex((CFArrayRef) windowDescriptions, 0); + + if (CFDictionaryContainsKey(windowDescription, kCGWindowBounds)) + { + CFDictionaryRef boundsDictionary = (CFDictionaryRef) CFDictionaryGetValue(windowDescription, kCGWindowBounds); + + if (boundsDictionary != NULL) + CGRectMakeWithDictionaryRepresentation(boundsDictionary, &bounds); + } + + CFRelease(windowArray); + + CGEventRef event = CGEventCreate(nil); + CGPoint loc = CGEventGetLocation(event); + CFRelease(event); + + loc.x -= bounds.origin.x; + loc.y -= bounds.origin.y; + m_cursor.x = loc.x / bounds.size.width * 2 - 1.0; + m_cursor.y = loc.y / bounds.size.height * 2 - 1.0; + + m_mousebuttons[0] = CGEventSourceButtonState(kCGEventSourceStateHIDSystemState, kCGMouseButtonLeft); + m_mousebuttons[1] = CGEventSourceButtonState(kCGEventSourceStateHIDSystemState, kCGMouseButtonRight); + m_mousebuttons[2] = CGEventSourceButtonState(kCGEventSourceStateHIDSystemState, kCGMouseButtonCenter); + return true; } @@ -201,10 +242,34 @@ ControlState Keyboard::Key::GetState() const return 0; } +ControlState Keyboard::Cursor::GetState() const +{ + return std::max(0.0f, ControlState(m_axis) / (m_positive ? 1.0f : -1.0f)); +} + +ControlState Keyboard::Button::GetState() const +{ + return (m_button != 0); +} + +std::string Keyboard::Cursor::GetName() const +{ + static char tmpstr[] = "Cursor .."; + tmpstr[7] = (char)('X' + m_index); + tmpstr[8] = (m_positive ? '+' : '-'); + return tmpstr; +} + +std::string Keyboard::Button::GetName() const +{ + return std::string("Click ") + char('0' + m_index); +} + std::string Keyboard::Key::GetName() const { return m_name; } + } } -- cgit v1.2.3 From 5ff77f9c882acdec1bd673d883dded9d219b8fa0 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 18 Jan 2013 13:40:54 -0600 Subject: Fix emulated turntable crossfade slider. (DJ Hero controller) Fixes issue 4504. --- Source/Core/Core/Src/HW/WiimoteEmu/Attachment/Turntable.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteEmu/Attachment/Turntable.cpp b/Source/Core/Core/Src/HW/WiimoteEmu/Attachment/Turntable.cpp index 292d9c5a86..182170f501 100644 --- a/Source/Core/Core/Src/HW/WiimoteEmu/Attachment/Turntable.cpp +++ b/Source/Core/Core/Src/HW/WiimoteEmu/Attachment/Turntable.cpp @@ -97,8 +97,9 @@ void Turntable::GetState(u8* const data, const bool focus) // crossfade slider { - u8 cfs = 0; - m_crossfade->GetState(&cfs, 8, 7); + s8 cfs = 0; + m_crossfade->GetState(&cfs, focus ? 7 : 0); + cfs += 8; ttdata->slider = cfs; } -- cgit v1.2.3 From c4bd6329c003686fd43002fc4f78f735166b6cbd Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 18 Jan 2013 23:42:37 -0500 Subject: Fully fix that clear bug in aldlist.cpp. Seems I missed part. Corrected it. --- Source/Core/AudioCommon/Src/aldlist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/aldlist.cpp b/Source/Core/AudioCommon/Src/aldlist.cpp index 5e2e072f7b..fa11fe3282 100644 --- a/Source/Core/AudioCommon/Src/aldlist.cpp +++ b/Source/Core/AudioCommon/Src/aldlist.cpp @@ -146,7 +146,7 @@ ALDeviceList::~ALDeviceList() { for (u32 i = 0; i < vDeviceInfo.size(); i++) { if (vDeviceInfo[i].pvstrExtensions) { - vDeviceInfo[i].pvstrExtensions->empty(); + vDeviceInfo[i].pvstrExtensions->clear(); delete vDeviceInfo[i].pvstrExtensions; } } -- cgit v1.2.3 From ff9ba6777327d07291bd8682e38931b77fea463d Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 19 Jan 2013 00:51:00 -0600 Subject: Remove the dependency on rectangle textures in the software rasterizer. Also make it the be used by default in the software renderer like it was before. --- .../Plugin_VideoSoftware/Src/SWRenderer.cpp | 68 +++++++++------------- .../Plugin_VideoSoftware/Src/SWVideoConfig.cpp | 2 +- 2 files changed, 28 insertions(+), 42 deletions(-) (limited to 'Source') diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp index 49739b7f6e..16ac1c3cd0 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp @@ -52,10 +52,10 @@ void CreateShaders() { static const char *fragShaderText = "varying " PREC " vec2 TexCoordOut;\n" - "uniform " TEXTYPE " Texture;\n" + "uniform sampler2D Texture;\n" "void main() {\n" " " PREC " vec4 tmpcolor;\n" - " tmpcolor = " TEXFUNC "(Texture, TexCoordOut);\n" + " tmpcolor = texture2D(Texture, TexCoordOut);\n" " gl_FragColor = tmpcolor;\n" "}\n"; static const char *vertShaderText = @@ -63,7 +63,7 @@ void CreateShaders() "attribute vec2 TexCoordIn;\n " "varying vec2 TexCoordOut;\n " "void main() {\n" - " gl_Position = pos;\n" + " gl_Position = pos;\n" " TexCoordOut = TexCoordIn;\n" "}\n"; @@ -74,6 +74,23 @@ void CreateShaders() uni_tex = glGetUniformLocation(program, "Texture"); attr_pos = glGetAttribLocation(program, "pos"); attr_tex = glGetAttribLocation(program, "TexCoordIn"); + + static const GLfloat verts[4][2] = { + { -1, -1}, // Left top + { -1, 1}, // left bottom + { 1, 1}, // right bottom + { 1, -1} // right top + }; + static const GLfloat texverts[4][2] = { + {0, 1}, + {0, 0}, + {1, 0}, + {1, 1} + }; + + glUniform1i(uni_tex, 0); + glVertexAttribPointer(attr_pos, 2, GL_FLOAT, GL_FALSE, 0, verts); + glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, texverts); } void SWRenderer::Prepare() @@ -86,7 +103,7 @@ void SWRenderer::Prepare() // TODO: Enable for GLES once RasterFont supports GLES #ifndef USE_GLES s_pfont = new RasterFont(); - glEnable(GL_TEXTURE_RECTANGLE_ARB); + glEnable(GL_TEXTURE_2D); #endif GL_REPORT_ERRORD(); } @@ -142,48 +159,20 @@ void SWRenderer::DrawTexture(u8 *texture, int width, int height) glViewport(0, 0, glWidth, glHeight); glScissor(0, 0, glWidth, glHeight); - glBindTexture(TEX2D, s_RenderTarget); + glBindTexture(GL_TEXTURE_2D, s_RenderTarget); - glTexImage2D(TEX2D, 0, GL_RGBA, (GLsizei)width, (GLsizei)height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture); - glTexParameteri(TEX2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(TEX2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)width, (GLsizei)height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - static const GLfloat verts[4][2] = { - { -1, -1}, // Left top - { -1, 1}, // left bottom - { 1, 1}, // right bottom - { 1, -1} // right top - }; - //Texture rectangle uses pixel coordinates -#ifndef USE_GLES - GLfloat u_max = (GLfloat)width; - GLfloat v_max = (GLfloat)height; - - static const GLfloat texverts[4][2] = { - {0, v_max}, - {0, 0}, - {u_max, 0}, - {u_max, v_max} - }; -#else - static const GLfloat texverts[4][2] = { - {0, 1}, - {0, 0}, - {1, 0}, - {1, 1} - }; -#endif - glVertexAttribPointer(attr_pos, 2, GL_FLOAT, GL_FALSE, 0, verts); - glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, texverts); glEnableVertexAttribArray(attr_pos); glEnableVertexAttribArray(attr_tex); glActiveTexture(GL_TEXTURE0); - glUniform1i(uni_tex, 0); glDrawArrays(GL_TRIANGLE_FAN, 0, 4); glDisableVertexAttribArray(attr_pos); glDisableVertexAttribArray(attr_tex); - glBindTexture(TEX2D, 0); + glBindTexture(GL_TEXTURE_2D, 0); GL_REPORT_ERRORD(); } @@ -195,11 +184,8 @@ void SWRenderer::SwapBuffer() GLInterface->Swap(); - swstats.ResetFrame(); + swstats.ResetFrame(); -#ifndef USE_GLES - glClearDepth(1.0f); -#endif glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); GL_REPORT_ERRORD(); diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.cpp index 7f7ef6b0f8..05a6cdddf2 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.cpp @@ -51,7 +51,7 @@ void SWVideoConfig::Load(const char* ini_file) iniFile.Get("Hardware", "Fullscreen", &bFullscreen, 0); // Hardware iniFile.Get("Hardware", "RenderToMainframe", &renderToMainframe, false); - iniFile.Get("Rendering", "HwRasterizer", &bHwRasterizer, true); + iniFile.Get("Rendering", "HwRasterizer", &bHwRasterizer, false); iniFile.Get("Info", "ShowStats", &bShowStats, false); -- cgit v1.2.3 From 621204f3e86212de77e10285b9cfd70b95c8fd8d Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 19 Jan 2013 02:18:39 -0600 Subject: Fix switching from the different rasterizers --- .../Plugin_VideoSoftware/Src/SWRenderer.cpp | 34 +++++++++-------- Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp | 44 ++++++++++------------ 2 files changed, 37 insertions(+), 41 deletions(-) (limited to 'Source') diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp index 16ac1c3cd0..fb472cfdba 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp @@ -75,22 +75,7 @@ void CreateShaders() attr_pos = glGetAttribLocation(program, "pos"); attr_tex = glGetAttribLocation(program, "TexCoordIn"); - static const GLfloat verts[4][2] = { - { -1, -1}, // Left top - { -1, 1}, // left bottom - { 1, 1}, // right bottom - { 1, -1} // right top - }; - static const GLfloat texverts[4][2] = { - {0, 1}, - {0, 0}, - {1, 0}, - {1, 1} - }; - - glUniform1i(uni_tex, 0); - glVertexAttribPointer(attr_pos, 2, GL_FLOAT, GL_FALSE, 0, verts); - glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, texverts); + } void SWRenderer::Prepare() @@ -165,8 +150,25 @@ void SWRenderer::DrawTexture(u8 *texture, int width, int height) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glUseProgram(program); + static const GLfloat verts[4][2] = { + { -1, -1}, // Left top + { -1, 1}, // left bottom + { 1, 1}, // right bottom + { 1, -1} // right top + }; + static const GLfloat texverts[4][2] = { + {0, 1}, + {0, 0}, + {1, 0}, + {1, 1} + }; + + glVertexAttribPointer(attr_pos, 2, GL_FLOAT, GL_FALSE, 0, verts); + glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, texverts); glEnableVertexAttribArray(attr_pos); glEnableVertexAttribArray(attr_tex); + glUniform1i(uni_tex, 0); glActiveTexture(GL_TEXTURE0); glDrawArrays(GL_TRIANGLE_FAN, 0, 4); glDisableVertexAttribArray(attr_pos); diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp index ae2a4db3f5..4c88a89ab6 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWmain.cpp @@ -70,7 +70,7 @@ void VideoSoftware::ShowConfig(void *_hParent) bool VideoSoftware::Initialize(void *&window_handle) { - g_SWVideoConfig.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_software.ini").c_str()); + g_SWVideoConfig.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_software.ini").c_str()); InitInterface(); if (!GLInterface->Create(window_handle)) @@ -79,18 +79,16 @@ bool VideoSoftware::Initialize(void *&window_handle) return false; } - InitBPMemory(); - InitXFMemory(); - SWCommandProcessor::Init(); - SWPixelEngine::Init(); - OpcodeDecoder::Init(); - Clipper::Init(); - Rasterizer::Init(); - if (g_SWVideoConfig.bHwRasterizer) - HwRasterizer::Init(); - else - SWRenderer::Init(); - DebugUtil::Init(); + InitBPMemory(); + InitXFMemory(); + SWCommandProcessor::Init(); + SWPixelEngine::Init(); + OpcodeDecoder::Init(); + Clipper::Init(); + Rasterizer::Init(); + HwRasterizer::Init(); + SWRenderer::Init(); + DebugUtil::Init(); return true; } @@ -134,10 +132,8 @@ void VideoSoftware::EmuStateChange(EMUSTATE_CHANGE newState) void VideoSoftware::Shutdown() { - if (g_SWVideoConfig.bHwRasterizer) - HwRasterizer::Shutdown(); - else - SWRenderer::Shutdown(); + HwRasterizer::Shutdown(); + SWRenderer::Shutdown(); GLInterface->Shutdown(); } @@ -149,9 +145,9 @@ void VideoSoftware::Video_Prepare() { #ifndef USE_GLES if (glewInit() != GLEW_OK) { - ERROR_LOG(VIDEO, "glewInit() failed!Does your video card support OpenGL 2.x?"); - return; - } + ERROR_LOG(VIDEO, "glewInit() failed!Does your video card support OpenGL 2.x?"); + return; + } // Handle VSync on/off #ifdef _WIN32 @@ -168,12 +164,10 @@ void VideoSoftware::Video_Prepare() #endif } - if (g_SWVideoConfig.bHwRasterizer) - HwRasterizer::Prepare(); - else - SWRenderer::Prepare(); + HwRasterizer::Prepare(); + SWRenderer::Prepare(); - INFO_LOG(VIDEO, "Video backend initialized."); + INFO_LOG(VIDEO, "Video backend initialized."); } // Run from the CPU thread (from VideoInterface.cpp) -- cgit v1.2.3 From c553c42d63daad7aafbd2996da1f05ce2a911635 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Sat, 19 Jan 2013 05:09:00 +0100 Subject: Implement backpatch support for 16 bit loads --- Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp | 7 +++++-- Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp | 7 ++++--- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp b/Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp index 9337f87b77..e2d9b50d42 100644 --- a/Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp +++ b/Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp @@ -90,6 +90,10 @@ const u8 *TrampolineCache::GetReadTrampoline(const InstructionInfo &info) case 4: CALL(thunks.ProtectFunction((void *)&Memory::Read_U32, 1)); break; + case 2: + CALL(thunks.ProtectFunction((void *)&Memory::Read_U16, 1)); + SHL(32, R(EAX), Imm8(16)); + break; } ABI_PopAllCallerSavedRegsAndAdjustStack(); if (dataReg != EAX) { @@ -176,7 +180,7 @@ const u8 *JitBase::BackPatch(u8 *codePtr, int accessType, u32 emAddress, void *c codePtr, emAddress); }*/ - if (info.operandSize != 4) { + if (info.operandSize == 1) { BackPatchError(StringFromFormat("BackPatch - no support for operand size %i", info.operandSize), codePtr, emAddress); } @@ -188,7 +192,6 @@ const u8 *JitBase::BackPatch(u8 *codePtr, int accessType, u32 emAddress, void *c PanicAlert("BackPatch : Currently only supporting reads." "\n\nAttempted to write to %08x.", emAddress); - // In the first iteration, we assume that all accesses are 32-bit. We also only deal with reads. if (accessType == 0) { XEmitter emitter(codePtr); diff --git a/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp b/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp index 4cfc3ab934..f43604fa9b 100644 --- a/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp +++ b/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp @@ -120,12 +120,13 @@ void EmuCodeBlock::SafeLoadToEAX(const Gen::OpArg & opAddress, int accessSize, s { #if defined(_M_X64) #ifdef ENABLE_MEM_CHECK - if (accessSize == 32 && !Core::g_CoreStartupParameter.bMMU && !Core::g_CoreStartupParameter.bEnableDebugging) + if (accessSize != 8 && !Core::g_CoreStartupParameter.bMMU && !Core::g_CoreStartupParameter.bEnableDebugging) #else - if (accessSize == 32 && !Core::g_CoreStartupParameter.bMMU) + if (accessSize != 8 && !Core::g_CoreStartupParameter.bMMU) #endif { - // BackPatch only supports 32-bits accesses + // We don't support 8 bit loads backpatching at the moment, but they + // are very rare. UnsafeLoadToEAX(opAddress, accessSize, offset, signExtend); } else -- cgit v1.2.3 From 905d38827e70ea438b7c744addd46f75e89d87b0 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Sat, 19 Jan 2013 16:52:13 +0100 Subject: Implement 8 bit loads backpatching --- Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp | 7 +++---- Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp | 12 +++++++----- 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp b/Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp index e2d9b50d42..3042cfedba 100644 --- a/Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp +++ b/Source/Core/Core/Src/PowerPC/JitCommon/JitBackpatch.cpp @@ -94,6 +94,9 @@ const u8 *TrampolineCache::GetReadTrampoline(const InstructionInfo &info) CALL(thunks.ProtectFunction((void *)&Memory::Read_U16, 1)); SHL(32, R(EAX), Imm8(16)); break; + case 1: + CALL(thunks.ProtectFunction((void *)&Memory::Read_U8, 1)); + break; } ABI_PopAllCallerSavedRegsAndAdjustStack(); if (dataReg != EAX) { @@ -180,10 +183,6 @@ const u8 *JitBase::BackPatch(u8 *codePtr, int accessType, u32 emAddress, void *c codePtr, emAddress); }*/ - if (info.operandSize == 1) { - BackPatchError(StringFromFormat("BackPatch - no support for operand size %i", info.operandSize), codePtr, emAddress); - } - if (info.otherReg != RBX) PanicAlert("BackPatch : Base reg not RBX." "\n\nAttempted to access %08x.", emAddress); diff --git a/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp b/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp index f43604fa9b..cc1327c695 100644 --- a/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp +++ b/Source/Core/Core/Src/PowerPC/JitCommon/Jit_Util.cpp @@ -96,7 +96,11 @@ void EmuCodeBlock::UnsafeLoadToEAX(const Gen::OpArg & opAddress, int accessSize, MOVZX(32, accessSize, EAX, MDisp(EAX, (u32)Memory::base + offset)); } #endif - + + // Add a 2 bytes NOP to have some space for the backpatching + if (accessSize == 8) + NOP(2); + if (accessSize == 32) { BSWAP(32, EAX); @@ -120,13 +124,11 @@ void EmuCodeBlock::SafeLoadToEAX(const Gen::OpArg & opAddress, int accessSize, s { #if defined(_M_X64) #ifdef ENABLE_MEM_CHECK - if (accessSize != 8 && !Core::g_CoreStartupParameter.bMMU && !Core::g_CoreStartupParameter.bEnableDebugging) + if (!Core::g_CoreStartupParameter.bMMU && !Core::g_CoreStartupParameter.bEnableDebugging) #else - if (accessSize != 8 && !Core::g_CoreStartupParameter.bMMU) + if (!Core::g_CoreStartupParameter.bMMU) #endif { - // We don't support 8 bit loads backpatching at the moment, but they - // are very rare. UnsafeLoadToEAX(opAddress, accessSize, offset, signExtend); } else -- cgit v1.2.3 From ed1a9480b0233e424ae3c266467b6d821c801793 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Sat, 19 Jan 2013 15:02:02 -0500 Subject: Misc movie fixes. Fix setting memory cards on playback. Fix saving revision to header. Herpa derp lets open a file while it's still open in another function, and not even check if it fails to load. Fix an assumption that wii games are using a wiimote. --- Source/Core/Core/Src/HW/EXI.cpp | 8 ++++++- Source/Core/Core/Src/Movie.cpp | 52 ++++++++++++++++++++--------------------- 2 files changed, 32 insertions(+), 28 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/EXI.cpp b/Source/Core/Core/Src/HW/EXI.cpp index 8800ea6095..1e86bd1b90 100644 --- a/Source/Core/Core/Src/HW/EXI.cpp +++ b/Source/Core/Core/Src/HW/EXI.cpp @@ -25,6 +25,7 @@ #include "EXI.h" #include "Sram.h" +#include "../Movie.h" SRAM g_SRAM; namespace ExpansionInterface @@ -44,7 +45,12 @@ void Init() for (u32 i = 0; i < NUM_CHANNELS; i++) g_Channels[i] = new CEXIChannel(i); - g_Channels[0]->AddDevice(SConfig::GetInstance().m_EXIDevice[0], 0); // SlotA + if (Movie::IsPlayingInput() && Movie::IsUsingMemcard() && Movie::IsConfigSaved()) + g_Channels[0]->AddDevice(EXIDEVICE_MEMORYCARD, 0); // SlotA + else if(Movie::IsPlayingInput() && !Movie::IsUsingMemcard() && Movie::IsConfigSaved()) + g_Channels[0]->AddDevice(EXIDEVICE_NONE, 0); // SlotA + else + g_Channels[0]->AddDevice(SConfig::GetInstance().m_EXIDevice[0], 0); // SlotA g_Channels[0]->AddDevice(EXIDEVICE_MASKROM, 1); g_Channels[0]->AddDevice(SConfig::GetInstance().m_EXIDevice[2], 2); // Serial Port 1 g_Channels[1]->AddDevice(SConfig::GetInstance().m_EXIDevice[1], 0); // SlotB diff --git a/Source/Core/Core/Src/Movie.cpp b/Source/Core/Core/Src/Movie.cpp index 316181d449..752e367431 100644 --- a/Source/Core/Core/Src/Movie.cpp +++ b/Source/Core/Core/Src/Movie.cpp @@ -736,16 +736,6 @@ bool PlayInput(const char *filename) goto cleanup; } - // Load savestate (and skip to frame data) - if(tmpHeader.bFromSaveState) - { - const std::string stateFilename = std::string(filename) + ".sav"; - if(File::Exists(stateFilename)) - Core::SetStateFileName(stateFilename); - g_bRecordingFromSaveState = true; - Movie::LoadInput(filename); - } - ReadHeader(); g_totalFrames = tmpHeader.frameCount; g_totalLagCount = tmpHeader.lagCount; @@ -762,6 +752,16 @@ bool PlayInput(const char *filename) g_currentByte = 0; g_recordfd.Close(); + // Load savestate (and skip to frame data) + if(tmpHeader.bFromSaveState) + { + const std::string stateFilename = std::string(filename) + ".sav"; + if(File::Exists(stateFilename)) + Core::SetStateFileName(stateFilename); + g_bRecordingFromSaveState = true; + Movie::LoadInput(filename); + } + return true; cleanup: @@ -786,7 +786,13 @@ void DoState(PointerWrap &p) void LoadInput(const char *filename) { - File::IOFile t_record(filename, "r+b"); + File::IOFile t_record; + if (!t_record.Open(filename, "r+b")) + { + PanicAlertT("Failed to read %s", filename); + EndPlayInput(false); + return; + } t_record.ReadArray(&tmpHeader, 1); @@ -849,7 +855,7 @@ void LoadInput(const char *filename) { // this is a "you did something wrong" alert for the user's benefit. // we'll try to say what's going on in excruciating detail, otherwise the user might not believe us. - if(Core::g_CoreStartupParameter.bWii) + if(IsUsingWiimote(1)) { // TODO: more detail PanicAlertT("Warning: You loaded a save whose movie mismatches on byte %d (0x%X). You should load another save before continuing, or load this state with read-only mode off. Otherwise you'll probably get a desync.", i+256, i+256); @@ -925,18 +931,6 @@ void PlayController(SPADStatus *PadStatus, int controllerID) if (!IsPlayingInput() || !IsUsingPad(controllerID) || tmpInput == NULL) return; - if (g_currentFrame == 1) - { - if (tmpHeader.bMemcard) - { - ExpansionInterface::ChangeDevice(0, EXIDEVICE_MEMORYCARD, 0); - } - else if (!tmpHeader.bMemcard) - { - ExpansionInterface::ChangeDevice(0, EXIDEVICE_NONE, 0); - } - } - if (g_currentByte + 8 > g_totalBytes) { PanicAlertT("Premature movie end in PlayController. %u + 8 > %u", (u32)g_currentByte, (u32)g_totalBytes); @@ -1194,9 +1188,13 @@ void GetSettings() g_bClearSave = !File::Exists(SConfig::GetInstance().m_strMemoryCardA); bMemcard = SConfig::GetInstance().m_EXIDevice[0] == EXIDEVICE_MEMORYCARD; - std::stringstream ss; - ss << std::hex << SCM_REV_STR; - ss >> revision; + int temp; + + for(int i = 0; i < 4; ++i ) + { + sscanf(SCM_REV_STR + 2 * i, "%2x", &temp ); + revision[i] = temp; + } } void CheckMD5() -- cgit v1.2.3 From d6cee44be03e0320935e4c5480dac1e1357d87ef Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Sat, 19 Jan 2013 15:08:29 -0500 Subject: Typo fix. --- Source/Core/Core/Src/Movie.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/Movie.cpp b/Source/Core/Core/Src/Movie.cpp index 752e367431..6c646f6870 100644 --- a/Source/Core/Core/Src/Movie.cpp +++ b/Source/Core/Core/Src/Movie.cpp @@ -855,7 +855,7 @@ void LoadInput(const char *filename) { // this is a "you did something wrong" alert for the user's benefit. // we'll try to say what's going on in excruciating detail, otherwise the user might not believe us. - if(IsUsingWiimote(1)) + if(IsUsingWiimote(0)) { // TODO: more detail PanicAlertT("Warning: You loaded a save whose movie mismatches on byte %d (0x%X). You should load another save before continuing, or load this state with read-only mode off. Otherwise you'll probably get a desync.", i+256, i+256); -- cgit v1.2.3 From 01d393ed6cb823abe623e8c71a971368c94a6157 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Sat, 19 Jan 2013 15:21:00 -0500 Subject: Actually remove lttc. --- Source/Core/Core/Src/Core.cpp | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index 797c3e1be6..a6c07eeaaa 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -310,8 +310,6 @@ void CpuThread() g_video_backend->Video_Prepare(); } - Common::SetCurrentThreadAffinity(1); // Force to first core - #if defined(_M_X64) EMM::InstallExceptionHandler(); // Let's run under memory watch #endif @@ -343,8 +341,6 @@ void FifoPlayerThread() Common::SetCurrentThreadName("FIFO-GPU thread"); } - Common::SetCurrentThreadAffinity(1); // Force to first core - g_bStarted = true; // Enter CPU run loop. When we leave it - we are done. @@ -369,13 +365,6 @@ void EmuThread() Common::SetCurrentThreadName("Emuthread - Starting"); - { - if (cpu_info.num_cores > 3) // Force to third, non-HT core - Common::SetCurrentThreadAffinity(4); - else // Force to second core - Common::SetCurrentThreadAffinity(2); - } - DisplayMessage(cpu_info.brand_string, 8000); DisplayMessage(cpu_info.Summarize(), 8000); DisplayMessage(_CoreParameter.m_strFilename, 3000); -- cgit v1.2.3 From 37af25e03dd132c691aa2ff9709e439b4eb9e0ad Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Sun, 13 Jan 2013 10:49:33 +0100 Subject: Revert my dual-core fix for FifoPlayer. Apparently it breaks more than it fixes. This reverts commit bab9b5d3ce14c5b9cb55bd34da4851672e287467. --- Source/Core/Core/Src/FifoPlayer/FifoPlayer.cpp | 42 +------------------------- Source/Core/Core/Src/FifoPlayer/FifoPlayer.h | 1 - 2 files changed, 1 insertion(+), 42 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/FifoPlayer/FifoPlayer.cpp b/Source/Core/Core/Src/FifoPlayer/FifoPlayer.cpp index 1873a91574..ff90736fec 100644 --- a/Source/Core/Core/Src/FifoPlayer/FifoPlayer.cpp +++ b/Source/Core/Core/Src/FifoPlayer/FifoPlayer.cpp @@ -20,7 +20,6 @@ #include "Common.h" #include "CoreTiming.h" -#include "Thread.h" #include "HW/GPFifo.h" #include "HW/Memmap.h" @@ -28,7 +27,6 @@ #include "PowerPC/PowerPC.h" #include "BPMemory.h" -#include "CommandProcessor.h" FifoPlayer::~FifoPlayer() { @@ -96,40 +94,7 @@ bool FifoPlayer::Play() if (m_EarlyMemoryUpdates && m_CurrentFrame == m_FrameRangeStart) WriteAllMemoryUpdates(); - // Stop Fifo processing until we've written the new frame - WriteCP(CommandProcessor::CTRL_REGISTER, 0x10); // disable read & breakpoints, enable GP link - - // Write frame data - WriteFrame(m_File->GetFrame(m_CurrentFrame), m_FrameInfo[m_CurrentFrame]); - - // Enable frame processing and break when done - u16 write_ptr_lo = ReadCP(CommandProcessor::FIFO_WRITE_POINTER_LO); - u16 write_ptr_hi = ReadCP(CommandProcessor::FIFO_WRITE_POINTER_HI); - WriteCP(CommandProcessor::FIFO_BP_LO, write_ptr_lo); - WriteCP(CommandProcessor::FIFO_BP_HI, write_ptr_hi); - WriteCP(CommandProcessor::CTRL_REGISTER, 0x13); // enable read, breakpoints & GP link - - // If necessary, wait until GP has reached the breakpoint to prevent fifo overflows - // TODO: Can this be done any better? Dual core mode is slower than single core mode even with these conditions.. - if (m_CurrentFrame < m_FrameRangeEnd) - { - // Check if FIFO would be overflown when writing the next frame - u32 CPRWDistance = (ReadCP(CommandProcessor::FIFO_RW_DISTANCE_HI)<<16) | ReadCP(CommandProcessor::FIFO_RW_DISTANCE_LO); - CPRWDistance += m_File->GetFrame(m_CurrentFrame+1).fifoDataSize + CommandProcessor::GATHER_PIPE_SIZE; - u32 CPFifoBase = (ReadCP(CommandProcessor::FIFO_BASE_HI)<<16) | ReadCP(CommandProcessor::FIFO_BASE_LO); - u32 CPFifoEnd = (ReadCP(CommandProcessor::FIFO_END_HI)<<16) | ReadCP(CommandProcessor::FIFO_END_LO); - - bool bWait = (CPRWDistance > CPFifoEnd - CPFifoBase); - while (bWait && (ReadCP(CommandProcessor::FIFO_READ_POINTER_LO) != write_ptr_lo || - ReadCP(CommandProcessor::FIFO_READ_POINTER_HI) != write_ptr_hi)) - { - Common::YieldCPU(); - CoreTiming::Advance(); // Process scheduled events (esp. PixelEngine::SetFinish!) - - if (PowerPC::GetState() == PowerPC::CPU_POWERDOWN) - break; - } - } + WriteFrame(m_File->GetFrame(m_CurrentFrame), m_FrameInfo[m_CurrentFrame]); ++m_CurrentFrame; } @@ -422,11 +387,6 @@ void FifoPlayer::LoadMemory() FlushWGP(); } -u16 FifoPlayer::ReadCP(u32 address) -{ - return Memory::Read_U16(0xCC000000 | address); -} - void FifoPlayer::WriteCP(u32 address, u16 value) { Memory::Write_U16(value, 0xCC000000 | address); diff --git a/Source/Core/Core/Src/FifoPlayer/FifoPlayer.h b/Source/Core/Core/Src/FifoPlayer/FifoPlayer.h index 838ac13f18..9db6c0d980 100644 --- a/Source/Core/Core/Src/FifoPlayer/FifoPlayer.h +++ b/Source/Core/Core/Src/FifoPlayer/FifoPlayer.h @@ -87,7 +87,6 @@ private: void LoadMemory(); - u16 ReadCP(u32 address); void WriteCP(u32 address, u16 value); void WritePI(u32 address, u32 value); -- cgit v1.2.3 From 6c0f6ffecff631344fe52972e267753e19e8d121 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Sat, 19 Jan 2013 22:34:07 +0100 Subject: Fix a dumb regression from revision 4925a28f94d8. --- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index c1ebdbcc89..448501aad0 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -158,10 +158,11 @@ void GetPixelShaderId(PIXELSHADERUID *uid, DSTALPHA_MODE dstAlphaMode, u32 compo if (dstAlphaMode != DSTALPHA_ALPHA_PASS) { + ptr[0] |= bpmem.fog.c_proj_fsel.fsel << 13; // 3 if (bpmem.fog.c_proj_fsel.fsel != 0) { - ptr[0] |= bpmem.fog.c_proj_fsel.proj << 13; // 1 - ptr[0] |= bpmem.fogRange.Base.Enabled << 14; // 1 + ptr[0] |= bpmem.fog.c_proj_fsel.proj << 16; // 1 + ptr[0] |= bpmem.fogRange.Base.Enabled << 17; // 1 } } -- cgit v1.2.3 From 7f8341825b559277a1031c076b1a89604ccc94d8 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Sat, 19 Jan 2013 17:17:18 -0500 Subject: Remove lttc for lle on thread too. --- Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp | 20 -------------------- 1 file changed, 20 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp index 0d2b375268..92053053de 100644 --- a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp +++ b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp @@ -104,26 +104,6 @@ void DSPLLE::dsp_thread(DSPLLE *dsp_lle) { Common::SetCurrentThreadName("DSP thread"); - { - if (cpu_info.num_cores > 3) - { - // HACK (delroth): there is no way to know where hyperthreads are in - // the current Dolphin version. - bool windows = false; -#ifdef _WIN32 - windows = true; -#endif - - u8 core_id; - if (windows && cpu_info.num_cores > 4) // Probably HT - core_id = 5; // 3rd non HT core - else - core_id = 3; // 3rd core - - Common::SetCurrentThreadAffinity(1 << (core_id - 1)); - } - } - while (dsp_lle->m_bIsRunning) { int cycles = (int)dsp_lle->m_cycle_count; -- cgit v1.2.3 From 6ec95d30af4ce33090d896414107844bea18c612 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 19 Jan 2013 19:16:01 -0600 Subject: Allow emulated wiimote to be tilted 180 degrees in each direction. (was 90) Fixes issue 3492. --- Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp | 9 +++++---- Source/Core/InputCommon/Src/ControllerEmu.cpp | 1 + Source/Core/InputCommon/Src/ControllerEmu.h | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp b/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp index 61996d8e7c..485a5e7e52 100644 --- a/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp +++ b/Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp @@ -124,7 +124,8 @@ void EmulateTilt(AccelData* const accel , const bool focus, const bool sideways, const bool upright) { float roll, pitch; - tilt_group->GetState( &roll, &pitch, 0, focus ? (PI / 2) : 0 ); // 90 degrees + // 180 degrees + tilt_group->GetState(&roll, &pitch, 0, focus ? PI : 0); unsigned int ud = 0, lr = 0, fb = 0; @@ -267,6 +268,9 @@ Wiimote::Wiimote( const unsigned int index ) for (unsigned int i=0; i < sizeof(named_buttons)/sizeof(*named_buttons); ++i) m_buttons->controls.push_back(new ControlGroup::Input( named_buttons[i])); + // udp + groups.push_back(m_udp = new UDPWrapper(m_index, _trans("UDP Wiimote"))); + // ir groups.push_back(m_ir = new Cursor(_trans("IR"))); @@ -276,9 +280,6 @@ Wiimote::Wiimote( const unsigned int index ) // tilt groups.push_back(m_tilt = new Tilt(_trans("Tilt"))); - // udp - groups.push_back(m_udp = new UDPWrapper(m_index, _trans("UDP Wiimote"))); - // shake groups.push_back(m_shake = new Buttons(_trans("Shake"))); m_shake->controls.push_back(new ControlGroup::Input("X")); diff --git a/Source/Core/InputCommon/Src/ControllerEmu.cpp b/Source/Core/InputCommon/Src/ControllerEmu.cpp index 9065888d7d..2e6ad10617 100644 --- a/Source/Core/InputCommon/Src/ControllerEmu.cpp +++ b/Source/Core/InputCommon/Src/ControllerEmu.cpp @@ -295,6 +295,7 @@ ControllerEmu::Tilt::Tilt(const char* const _name) settings.push_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); settings.push_back(new Setting(_trans("Circle Stick"), 0)); + settings.push_back(new Setting(_trans("Angle"), 0.9f, 0, 180)); } ControllerEmu::Cursor::Cursor(const char* const _name) diff --git a/Source/Core/InputCommon/Src/ControllerEmu.h b/Source/Core/InputCommon/Src/ControllerEmu.h index 888e0c7fa9..6084a610a1 100644 --- a/Source/Core/InputCommon/Src/ControllerEmu.h +++ b/Source/Core/InputCommon/Src/ControllerEmu.h @@ -307,6 +307,7 @@ public: ControlState deadzone = settings[0]->value; ControlState circle = settings[1]->value; + auto const angle = settings[2]->value / 1.8f; ControlState m = controls[4]->control_ref->State(); // modifier code @@ -363,8 +364,8 @@ public: m_tilt[1] = std::max(m_tilt[1] - 0.1f, yy); } - *y = C(m_tilt[1] * range + base); - *x = C(m_tilt[0] * range + base); + *y = C(m_tilt[1] * angle * range + base); + *x = C(m_tilt[0] * angle * range + base); } private: float m_tilt[2]; -- cgit v1.2.3 From 0a5f479250a3f596dd8757b6d28bdc29de92c32c Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 20 Jan 2013 13:09:38 +1100 Subject: Added a game property to disable the clearing of the data cache. This is needed by one known game, "Rubik's Puzzle Galaxy: Rush". Fixes Violin Paradise. --- Source/Core/Core/Src/BootManager.cpp | 8 +++---- Source/Core/Core/Src/ConfigManager.cpp | 2 +- Source/Core/Core/Src/CoreParameter.cpp | 4 ++-- Source/Core/Core/Src/CoreParameter.h | 2 +- Source/Core/Core/Src/HW/MemmapFunctions.cpp | 2 +- .../PowerPC/Interpreter/Interpreter_LoadStore.cpp | 2 +- Source/Core/DolphinWX/Src/ISOProperties.cpp | 26 +++++++++++----------- Source/Core/DolphinWX/Src/ISOProperties.h | 4 ++-- 8 files changed, 25 insertions(+), 25 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/BootManager.cpp b/Source/Core/Core/Src/BootManager.cpp index 50c5756178..b867052381 100644 --- a/Source/Core/Core/Src/BootManager.cpp +++ b/Source/Core/Core/Src/BootManager.cpp @@ -54,7 +54,7 @@ namespace BootManager // Apply fire liberally struct ConfigCache { - bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bMMUBAT, + bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bDCBZOFF, bVBeam, bFastDiscSpeed, bMergeBlocks, bDSPHLE, bDisableWiimoteSpeaker, bHLE_BS2; int iTLBHack, iCPUCore; std::string strBackend; @@ -92,7 +92,7 @@ bool BootCore(const std::string& _rFilename) config_cache.iCPUCore = StartUp.iCPUCore; config_cache.bEnableFPRF = StartUp.bEnableFPRF; config_cache.bMMU = StartUp.bMMU; - config_cache.bMMUBAT = StartUp.bMMUBAT; + config_cache.bDCBZOFF = StartUp.bDCBZOFF; config_cache.iTLBHack = StartUp.iTLBHack; config_cache.bVBeam = StartUp.bVBeam; config_cache.bFastDiscSpeed = StartUp.bFastDiscSpeed; @@ -107,8 +107,8 @@ bool BootCore(const std::string& _rFilename) game_ini.Get("Core", "SkipIdle", &StartUp.bSkipIdle, StartUp.bSkipIdle); game_ini.Get("Core", "EnableFPRF", &StartUp.bEnableFPRF, StartUp.bEnableFPRF); game_ini.Get("Core", "MMU", &StartUp.bMMU, StartUp.bMMU); - game_ini.Get("Core", "BAT", &StartUp.bMMUBAT, StartUp.bMMUBAT); game_ini.Get("Core", "TLBHack", &StartUp.iTLBHack, StartUp.iTLBHack); + game_ini.Get("Core", "DCBZ", &StartUp.bDCBZOFF, StartUp.bDCBZOFF); game_ini.Get("Core", "VBeam", &StartUp.bVBeam, StartUp.bVBeam); game_ini.Get("Core", "FastDiscSpeed", &StartUp.bFastDiscSpeed, StartUp.bFastDiscSpeed); game_ini.Get("Core", "BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks); @@ -167,7 +167,7 @@ void Stop() StartUp.iCPUCore = config_cache.iCPUCore; StartUp.bEnableFPRF = config_cache.bEnableFPRF; StartUp.bMMU = config_cache.bMMU; - StartUp.bMMUBAT = config_cache.bMMUBAT; + StartUp.bDCBZOFF = config_cache.bDCBZOFF; StartUp.iTLBHack = config_cache.iTLBHack; StartUp.bVBeam = config_cache.bVBeam; StartUp.bFastDiscSpeed = config_cache.bFastDiscSpeed; diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 317e770868..f6194c1bb7 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -400,7 +400,7 @@ void SConfig::LoadSettings() ini.Get("Core", "TLBHack", &m_LocalCoreStartupParameter.iTLBHack, 0); ini.Get("Core", "VBeam", &m_LocalCoreStartupParameter.bVBeam, false); ini.Get("Core", "FastDiscSpeed", &m_LocalCoreStartupParameter.bFastDiscSpeed, false); - ini.Get("Core", "BAT", &m_LocalCoreStartupParameter.bMMUBAT, false); + ini.Get("Core", "DCBZ", &m_LocalCoreStartupParameter.bDCBZOFF, false); ini.Get("Core", "FrameLimit", &m_Framelimit, 1); // auto frame limit by default ini.Get("Core", "UseFPS", &b_UseFPS, false); // use vps as default diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index 16615f5805..9fc451c807 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -49,7 +49,7 @@ SCoreStartupParameter::SCoreStartupParameter() bMergeBlocks(false), bDPL2Decoder(false), iLatency(14), bRunCompareServer(false), bRunCompareClient(false), - bMMU(false), bMMUBAT(false), iTLBHack(0), bVBeam(false), + bMMU(false), bDCBZOFF(false), iTLBHack(0), bVBeam(false), bFastDiscSpeed(false), SelectedLanguage(0), bWii(false), bDisableWiimoteSpeaker(false), bConfirmStop(false), bHideCursor(false), @@ -75,7 +75,7 @@ void SCoreStartupParameter::LoadDefaults() bDSPThread = true; bEnableFPRF = false; bMMU = false; - bMMUBAT = false; + bDCBZOFF = false; iTLBHack = 0; bVBeam = false; bFastDiscSpeed = false; diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index 4c7c33cdfb..e2e5eb6f1b 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -113,7 +113,7 @@ struct SCoreStartupParameter bool bRunCompareClient; bool bMMU; - bool bMMUBAT; + bool bDCBZOFF; int iTLBHack; bool bVBeam; bool bFastDiscSpeed; diff --git a/Source/Core/Core/Src/HW/MemmapFunctions.cpp b/Source/Core/Core/Src/HW/MemmapFunctions.cpp index b391eea975..e01eedaaab 100644 --- a/Source/Core/Core/Src/HW/MemmapFunctions.cpp +++ b/Source/Core/Core/Src/HW/MemmapFunctions.cpp @@ -956,7 +956,7 @@ u32 TranslateAddress(const u32 _Address, const XCheckTLBFlag _Flag) // Check MSR[DR] bit before translating data addresses //if (((_Flag == FLAG_READ) || (_Flag == FLAG_WRITE)) && !(MSR & (1 << (31 - 27)))) return _Address; - u32 tlb_addr = Core::g_CoreStartupParameter.bMMUBAT?TranslateBlockAddress(_Address, _Flag):0; + u32 tlb_addr = TranslateBlockAddress(_Address, _Flag); if (tlb_addr == 0) { tlb_addr = TranslatePageAddress(_Address, _Flag); diff --git a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp index bc5cfc10e6..5e665eb38e 100644 --- a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp +++ b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp @@ -407,7 +407,7 @@ void Interpreter::dcbtst(UGeckoInstruction _inst) void Interpreter::dcbz(UGeckoInstruction _inst) { // HACK but works... we think - if (HID2.WPE || !HID0.DCFA) + if (!Core::g_CoreStartupParameter.bDCBZOFF) Memory::Memset(Helper_Get_EA_X(_inst) & (~31), 0, 32); if (!jit) PowerPC::CheckExceptions(); diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp index f06b3daa8a..2083c39201 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.cpp +++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp @@ -315,10 +315,10 @@ void CISOProperties::CreateGUIControls(bool IsWad) SkipIdle = new wxCheckBox(m_GameConfig, ID_IDLESKIP, _("Enable Idle Skipping"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); MMU = new wxCheckBox(m_GameConfig, ID_MMU, _("Enable MMU"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); MMU->SetToolTip(_("Enables the Memory Management Unit, needed for some games. (ON = Compatible, OFF = Fast)")); - MMUBAT = new wxCheckBox(m_GameConfig, ID_MMUBAT, _("Enable BAT"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); - MMUBAT->SetToolTip(_("Enables Block Address Translation (BAT); a function of the Memory Management Unit. Accurate to the hardware, but slow to emulate. (ON = Compatible, OFF = Fast)")); TLBHack = new wxCheckBox(m_GameConfig, ID_TLBHACK, _("MMU Speed Hack"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); TLBHack->SetToolTip(_("Fast version of the MMU. Does not work for every game.")); + DCBZOFF = new wxCheckBox(m_GameConfig, ID_DCBZOFF, _("Skip DCBZ clearing"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); + DCBZOFF->SetToolTip(_("Bypass the clearing of the data cache by the DCBZ instruction. Usually leave this option disabled.")); VBeam = new wxCheckBox(m_GameConfig, ID_VBEAM, _("Accurate VBeam emulation"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); VBeam->SetToolTip(_("If the FPS is erratic, this option may help. (ON = Compatible, OFF = Fast)")); FastDiscSpeed = new wxCheckBox(m_GameConfig, ID_DISCSPEED, _("Speed up Disc Transfer Rate"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); @@ -364,7 +364,7 @@ void CISOProperties::CreateGUIControls(bool IsWad) sbCoreOverrides->Add(CPUThread, 0, wxLEFT, 5); sbCoreOverrides->Add(SkipIdle, 0, wxLEFT, 5); sbCoreOverrides->Add(MMU, 0, wxLEFT, 5); - sbCoreOverrides->Add(MMUBAT, 0, wxLEFT, 5); + sbCoreOverrides->Add(DCBZOFF, 0, wxLEFT, 5); sbCoreOverrides->Add(TLBHack, 0, wxLEFT, 5); sbCoreOverrides->Add(VBeam, 0, wxLEFT, 5); sbCoreOverrides->Add(FastDiscSpeed, 0, wxLEFT, 5); @@ -930,16 +930,16 @@ void CISOProperties::LoadGameConfig() else MMU->Set3StateValue(wxCHK_UNDETERMINED); - if (GameIni.Get("Core", "BAT", &bTemp)) - MMUBAT->Set3StateValue((wxCheckBoxState)bTemp); - else - MMUBAT->Set3StateValue(wxCHK_UNDETERMINED); - if (GameIni.Get("Core", "TLBHack", &bTemp)) TLBHack->Set3StateValue((wxCheckBoxState)bTemp); else TLBHack->Set3StateValue(wxCHK_UNDETERMINED); + if (GameIni.Get("Core", "DCBZ", &bTemp)) + DCBZOFF->Set3StateValue((wxCheckBoxState)bTemp); + else + DCBZOFF->Set3StateValue(wxCHK_UNDETERMINED); + if (GameIni.Get("Core", "VBeam", &bTemp)) VBeam->Set3StateValue((wxCheckBoxState)bTemp); else @@ -1025,16 +1025,16 @@ bool CISOProperties::SaveGameConfig() else GameIni.Set("Core", "MMU", MMU->Get3StateValue()); - if (MMUBAT->Get3StateValue() == wxCHK_UNDETERMINED) - GameIni.DeleteKey("Core", "BAT"); - else - GameIni.Set("Core", "BAT", MMUBAT->Get3StateValue()); - if (TLBHack->Get3StateValue() == wxCHK_UNDETERMINED) GameIni.DeleteKey("Core", "TLBHack"); else GameIni.Set("Core", "TLBHack", TLBHack->Get3StateValue()); + if (DCBZOFF->Get3StateValue() == wxCHK_UNDETERMINED) + GameIni.DeleteKey("Core", "DCBZ"); + else + GameIni.Set("Core", "DCBZ", DCBZOFF->Get3StateValue()); + if (VBeam->Get3StateValue() == wxCHK_UNDETERMINED) GameIni.DeleteKey("Core", "VBeam"); else diff --git a/Source/Core/DolphinWX/Src/ISOProperties.h b/Source/Core/DolphinWX/Src/ISOProperties.h index 9d71e675e2..4f03130ba7 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.h +++ b/Source/Core/DolphinWX/Src/ISOProperties.h @@ -69,7 +69,7 @@ private: DECLARE_EVENT_TABLE(); // Core - wxCheckBox *CPUThread, *SkipIdle, *MMU, *MMUBAT, *TLBHack; + wxCheckBox *CPUThread, *SkipIdle, *MMU, *DCBZOFF, *TLBHack; wxCheckBox *VBeam, *FastDiscSpeed, *BlockMerging, *DSPHLE; // Wii wxCheckBox *EnableWideScreen, *DisableWiimoteSpeaker; @@ -127,7 +127,7 @@ private: ID_USEDUALCORE, ID_IDLESKIP, ID_MMU, - ID_MMUBAT, + ID_DCBZOFF, ID_TLBHACK, ID_VBEAM, ID_DISCSPEED, -- cgit v1.2.3 From 4cc4abfe25747b6ade6c60c47258a1b6622a64f1 Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 20 Jan 2013 16:11:15 +1100 Subject: Preset the HBeam and VBeam to 0 on boot. Fixes Densha de Go Shinkansen EX. Fixes issue 4882. --- Source/Core/Core/Src/HW/VideoInterface.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/HW/VideoInterface.cpp b/Source/Core/Core/Src/HW/VideoInterface.cpp index cc2ce18ce0..95c06d1f88 100644 --- a/Source/Core/Core/Src/HW/VideoInterface.cpp +++ b/Source/Core/Core/Src/HW/VideoInterface.cpp @@ -144,8 +144,8 @@ void Preset(bool _bNTSC) m_HorizontalStepping.FbSteps = 40; m_HorizontalStepping.FieldSteps = 40; - m_HBeamPos = 1; - m_VBeamPos = 1; + m_HBeamPos = 0; + m_VBeamPos = 0; // 54MHz, capable of progressive scan m_Clock = Core::g_CoreStartupParameter.bProgressive; -- cgit v1.2.3 From 83237a36e03dc53545dab51f6a54c70bfc7b2b66 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Sun, 20 Jan 2013 18:47:59 -0500 Subject: Save memory card paths relative to exe directory. --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 423885e0f2..4daf263b63 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -1064,6 +1064,13 @@ void CConfigMain::ChooseMemcardPath(std::string& strMemcard, bool isSlotA) return; } } + #ifdef _WIN32 + if (!strncmp(File::GetExeDirectory().c_str(), filename.c_str(), File::GetExeDirectory().size())) + { + filename.erase(0, File::GetExeDirectory().size() +1); + filename = "./" + filename; + } + #endif // also check that the path isn't used for the other memcard... if (filename.compare(isSlotA ? SConfig::GetInstance().m_strMemoryCardB -- cgit v1.2.3 From 45a7fa293bebd520d86f5068dc866a35793d7af8 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Sun, 20 Jan 2013 19:15:48 -0500 Subject: Set the default memory card path as relative too. --- Source/Core/Core/Src/CoreParameter.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index 9fc451c807..7f019bcf59 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -348,7 +348,11 @@ void SCoreStartupParameter::CheckMemcardPath(std::string& memcardPath, std::stri { // Use default memcard path if there is no user defined name std::string defaultFilename = isSlotA ? GC_MEMCARDA : GC_MEMCARDB; - memcardPath = File::GetUserPath(D_GCUSER_IDX) + defaultFilename + ext; + #ifdef _WIN32 + memcardPath = "." + File::GetUserPath(D_GCUSER_IDX).substr(File::GetExeDirectory().size()) + defaultFilename + ext; + #else + memcardPath = File::GetUserPath(D_GCUSER_IDX) + defaultFilename + ext; + #endif } else { -- cgit v1.2.3 From 0c1ea605d5008fabc8b23feeeac9708fef18fadf Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 20 Jan 2013 23:24:56 -0500 Subject: Ctrl+A support in the action replay code editing menu. Makes adding/editing codes less of a pain in the ass. You don't need to manually highlight everything anymore. --- Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp | 24 ++++++++++++++++++++++++ Source/Core/DolphinWX/Src/ARCodeAddEdit.h | 1 + 2 files changed, 25 insertions(+) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp b/Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp index c3ed12bbea..03cf7f47b4 100644 --- a/Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp +++ b/Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp @@ -48,11 +48,13 @@ CARCodeAddEdit::CARCodeAddEdit(int _selection, wxWindow* parent, wxWindowID id, wxStaticText* EditCheatNameText = new wxStaticText(this, ID_EDITCHEAT_NAME_TEXT, _("Name:"), wxDefaultPosition, wxDefaultSize); EditCheatName = new wxTextCtrl(this, ID_EDITCHEAT_NAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); + EditCheatName->Bind(wxEVT_KEY_DOWN, &CARCodeAddEdit::OnKey, this); EditCheatName->SetValue(currentName); EntrySelection = new wxSpinButton(this, ID_ENTRY_SELECT, wxDefaultPosition, wxDefaultSize, wxVERTICAL); EntrySelection->SetRange(1, ((int)arCodes.size()) > 0 ? (int)arCodes.size() : 1); EntrySelection->SetValue((int)(arCodes.size() - selection)); EditCheatCode = new wxTextCtrl(this, ID_EDITCHEAT_CODE, wxEmptyString, wxDefaultPosition, wxSize(300, 100), wxTE_MULTILINE); + EditCheatCode->Bind(wxEVT_KEY_DOWN, &CARCodeAddEdit::OnKey, this); UpdateTextCtrl(tempEntries); sgEntry->Add(EditCheatNameText, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER|wxALL, 5); @@ -174,3 +176,25 @@ void CARCodeAddEdit::UpdateTextCtrl(ActionReplay::ARCode arCode) else EditCheatCode->SetValue(_("Insert Encrypted or Decrypted code here...")); } + +void CARCodeAddEdit::OnKey(wxKeyEvent& event) +{ + // Technically you can extend this to whatever bindings you want. + switch (event.GetKeyCode()) + { + case 'a': + case 'A': + { + if (event.ControlDown() && FindFocus() == EditCheatCode) + { + EditCheatCode->SetSelection(0, EditCheatCode->GetValue().Length()); + } + + if (event.ControlDown() && FindFocus() == EditCheatName) + { + EditCheatName->SetSelection(0, EditCheatName->GetValue().Length()); + } + } + break; + } +} diff --git a/Source/Core/DolphinWX/Src/ARCodeAddEdit.h b/Source/Core/DolphinWX/Src/ARCodeAddEdit.h index 2702dfb888..c3e5f72f58 100644 --- a/Source/Core/DolphinWX/Src/ARCodeAddEdit.h +++ b/Source/Core/DolphinWX/Src/ARCodeAddEdit.h @@ -49,6 +49,7 @@ class CARCodeAddEdit : public wxDialog void SaveCheatData(wxCommandEvent& event); void ChangeEntry(wxSpinEvent& event); void UpdateTextCtrl(ActionReplay::ARCode arCode); + void OnKey(wxKeyEvent& event); int selection; -- cgit v1.2.3 From 2bae4345c58c3684b6375ad4de847876e5e77357 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 21 Jan 2013 00:11:53 -0500 Subject: Revert "Ctrl+A support in the action replay code editing menu." Guess it wasnt much of a solution as I'd hoped. (considering it seems to work on linux without this). This reverts commit 0c1ea605d5008fabc8b23feeeac9708fef18fadf. --- Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp | 24 ------------------------ Source/Core/DolphinWX/Src/ARCodeAddEdit.h | 1 - 2 files changed, 25 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp b/Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp index 03cf7f47b4..c3ed12bbea 100644 --- a/Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp +++ b/Source/Core/DolphinWX/Src/ARCodeAddEdit.cpp @@ -48,13 +48,11 @@ CARCodeAddEdit::CARCodeAddEdit(int _selection, wxWindow* parent, wxWindowID id, wxStaticText* EditCheatNameText = new wxStaticText(this, ID_EDITCHEAT_NAME_TEXT, _("Name:"), wxDefaultPosition, wxDefaultSize); EditCheatName = new wxTextCtrl(this, ID_EDITCHEAT_NAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); - EditCheatName->Bind(wxEVT_KEY_DOWN, &CARCodeAddEdit::OnKey, this); EditCheatName->SetValue(currentName); EntrySelection = new wxSpinButton(this, ID_ENTRY_SELECT, wxDefaultPosition, wxDefaultSize, wxVERTICAL); EntrySelection->SetRange(1, ((int)arCodes.size()) > 0 ? (int)arCodes.size() : 1); EntrySelection->SetValue((int)(arCodes.size() - selection)); EditCheatCode = new wxTextCtrl(this, ID_EDITCHEAT_CODE, wxEmptyString, wxDefaultPosition, wxSize(300, 100), wxTE_MULTILINE); - EditCheatCode->Bind(wxEVT_KEY_DOWN, &CARCodeAddEdit::OnKey, this); UpdateTextCtrl(tempEntries); sgEntry->Add(EditCheatNameText, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER|wxALL, 5); @@ -176,25 +174,3 @@ void CARCodeAddEdit::UpdateTextCtrl(ActionReplay::ARCode arCode) else EditCheatCode->SetValue(_("Insert Encrypted or Decrypted code here...")); } - -void CARCodeAddEdit::OnKey(wxKeyEvent& event) -{ - // Technically you can extend this to whatever bindings you want. - switch (event.GetKeyCode()) - { - case 'a': - case 'A': - { - if (event.ControlDown() && FindFocus() == EditCheatCode) - { - EditCheatCode->SetSelection(0, EditCheatCode->GetValue().Length()); - } - - if (event.ControlDown() && FindFocus() == EditCheatName) - { - EditCheatName->SetSelection(0, EditCheatName->GetValue().Length()); - } - } - break; - } -} diff --git a/Source/Core/DolphinWX/Src/ARCodeAddEdit.h b/Source/Core/DolphinWX/Src/ARCodeAddEdit.h index c3e5f72f58..2702dfb888 100644 --- a/Source/Core/DolphinWX/Src/ARCodeAddEdit.h +++ b/Source/Core/DolphinWX/Src/ARCodeAddEdit.h @@ -49,7 +49,6 @@ class CARCodeAddEdit : public wxDialog void SaveCheatData(wxCommandEvent& event); void ChangeEntry(wxSpinEvent& event); void UpdateTextCtrl(ActionReplay::ARCode arCode); - void OnKey(wxKeyEvent& event); int selection; -- cgit v1.2.3 From 0ba1794df3ee479ade6520ac46860610774ffdff Mon Sep 17 00:00:00 2001 From: Sonicadvance1 Date: Mon, 21 Jan 2013 21:48:02 +0000 Subject: Fix AGL.cpp --- Source/Core/DolphinWX/Src/GLInterface/AGL.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'Source') diff --git a/Source/Core/DolphinWX/Src/GLInterface/AGL.cpp b/Source/Core/DolphinWX/Src/GLInterface/AGL.cpp index 30ff4a31cf..cf68c0baa4 100644 --- a/Source/Core/DolphinWX/Src/GLInterface/AGL.cpp +++ b/Source/Core/DolphinWX/Src/GLInterface/AGL.cpp @@ -18,6 +18,7 @@ #include "VideoConfig.h" #include "Host.h" #include "RenderBase.h" +#include "ConfigManager.h" #include "VertexShaderManager.h" #include "../GLInterface.h" @@ -90,13 +91,6 @@ bool cInterfaceAGL::Create(void *&window_handle) } bool cInterfaceAGL::MakeCurrent() -{ - [GLWin.cocoaCtx makeCurrentContext]; - return true; -} - -// Update window width, size and etc. Called from Render.cpp -void cInterfaceAGL::Update() { int width, height; @@ -110,6 +104,7 @@ void cInterfaceAGL::Update() [GLWin.cocoaCtx makeCurrentContext]; s_backbuffer_width = width; s_backbuffer_height = height; + return true; } // Close backend -- cgit v1.2.3 From cff8fe8f77cda18cda80b95364d59dc45a9c6830 Mon Sep 17 00:00:00 2001 From: skidau Date: Tue, 22 Jan 2013 21:17:29 +1100 Subject: Revert the fix for the random static audio that would sometimes occur in DSP HLE and DSP LLE. The fix caused the music in Fast - Racing League to play random sounds. This reverts commit r7bf72a6c8476798ecbb9cdb13ec3a8f0b9858da6. Fixes issue 5910. --- Source/Core/Core/Src/DSP/DSPAccelerator.cpp | 5 +++-- Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'Source') diff --git a/Source/Core/Core/Src/DSP/DSPAccelerator.cpp b/Source/Core/Core/Src/DSP/DSPAccelerator.cpp index 2058a92f9d..dcb79b7ac5 100644 --- a/Source/Core/Core/Src/DSP/DSPAccelerator.cpp +++ b/Source/Core/Core/Src/DSP/DSPAccelerator.cpp @@ -165,10 +165,11 @@ u16 dsp_read_accelerator() // Somehow, YN1 and YN2 must be initialized with their "loop" values, // so yeah, it seems likely that we should raise an exception to let // the DSP program do that, at least if DSP_FORMAT == 0x0A. - if ((Address & ~0x1f) == (EndAddress & ~0x1f)) + if (Address >= EndAddress) { // Set address back to start address. - Address = (g_dsp.ifx_regs[DSP_ACSAH] << 16) | g_dsp.ifx_regs[DSP_ACSAL]; + if ((Address & ~0x1f) == (EndAddress & ~0x1f)) + Address = (g_dsp.ifx_regs[DSP_ACSAH] << 16) | g_dsp.ifx_regs[DSP_ACSAL]; DSPCore_SetException(EXP_ACCOV); } diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h index e39b38b100..349dc7e03b 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h @@ -203,10 +203,12 @@ u16 AcceleratorGetSample() // // On real hardware, this would raise an interrupt that is handled by the // UCode. We simulate what this interrupt does here. - if ((*acc_cur_addr & ~0x1F) == (acc_end_addr & ~0x1F)) + if (*acc_cur_addr >= acc_end_addr) { - // If we are really at the end, loop back to loop_addr. - *acc_cur_addr = acc_loop_addr; + // If we are really at the end (and we don't simply have cur_addr > + // end_addr all the time), loop back to loop_addr. + if ((*acc_cur_addr & ~0x1F) == (acc_end_addr & ~0x1F)) + *acc_cur_addr = acc_loop_addr; if (acc_pb->audio_addr.looping) { -- cgit v1.2.3 From b7d32b0a3d810736b2e1151d6d8b9da85ebfbcf3 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 23 Jan 2013 23:29:50 -0500 Subject: mem_fun -> mem_fn. mem_fun is deprecated in C++11. Also it does everything mem_fun can do, but more conveniently. --- Source/Core/AudioCommon/Src/AOSoundStream.cpp | 2 +- Source/Core/AudioCommon/Src/DSoundStream.cpp | 2 +- Source/Core/AudioCommon/Src/OpenALStream.cpp | 6 ++++-- Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp | 2 +- Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp | 2 +- Source/Core/Core/Src/NetPlayClient.cpp | 2 +- Source/Core/Core/Src/NetPlayServer.cpp | 2 +- Source/Core/InputCommon/Src/UDPWiimote.cpp | 2 +- 8 files changed, 11 insertions(+), 9 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/AOSoundStream.cpp b/Source/Core/AudioCommon/Src/AOSoundStream.cpp index 99ae2e661c..276938c3e2 100644 --- a/Source/Core/AudioCommon/Src/AOSoundStream.cpp +++ b/Source/Core/AudioCommon/Src/AOSoundStream.cpp @@ -63,7 +63,7 @@ bool AOSound::Start() { memset(realtimeBuffer, 0, sizeof(realtimeBuffer)); - thread = std::thread(std::mem_fun(&AOSound::SoundLoop), this); + thread = std::thread(std::mem_fn(&AOSound::SoundLoop), this); return true; } diff --git a/Source/Core/AudioCommon/Src/DSoundStream.cpp b/Source/Core/AudioCommon/Src/DSoundStream.cpp index b252dc90c5..c0c54e00f5 100644 --- a/Source/Core/AudioCommon/Src/DSoundStream.cpp +++ b/Source/Core/AudioCommon/Src/DSoundStream.cpp @@ -135,7 +135,7 @@ bool DSound::Start() dsBuffer->Lock(0, bufferSize, (void* *)&p1, &num1, 0, 0, DSBLOCK_ENTIREBUFFER); memset(p1, 0, num1); dsBuffer->Unlock(p1, num1, 0, 0); - thread = std::thread(std::mem_fun(&DSound::SoundLoop), this); + thread = std::thread(std::mem_fn(&DSound::SoundLoop), this); return true; } diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index cfe6a40630..814f720e6e 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -15,6 +15,8 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ +#include + #include "aldlist.h" #include "OpenALStream.h" #include "DPL2Decoder.h" @@ -52,7 +54,7 @@ bool OpenALStream::Start() //period_size_in_millisec = 1000 / refresh; alcMakeContextCurrent(pContext); - thread = std::thread(std::mem_fun(&OpenALStream::SoundLoop), this); + thread = std::thread(std::mem_fn(&OpenALStream::SoundLoop), this); bReturn = true; } else @@ -72,7 +74,7 @@ bool OpenALStream::Start() PanicAlertT("OpenAL: can't find sound devices"); } - // Initialise DPL2 parameters + // Initialize DPL2 parameters dpl2reset(); soundTouch.clear(); diff --git a/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp b/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp index 93b7cd5d09..ce416af7e2 100644 --- a/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp +++ b/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp @@ -101,7 +101,7 @@ bool GeckoSockServer::GetAvailableSock(sf::SocketTCP &sock_to_fill) recv_fifo = std::queue(); send_fifo = std::queue(); } - clientThread = std::thread(std::mem_fun(&GeckoSockServer::ClientThread), this); + clientThread = std::thread(std::mem_fn(&GeckoSockServer::ClientThread), this); client_count++; waiting_socks.pop(); sock_filled = true; diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp b/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp index cc05bc10e1..30054b274c 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp @@ -264,7 +264,7 @@ bool Wiimote::Connect() // Set LEDs SetLEDs(WIIMOTE_LED_1 << index); - m_wiimote_thread = std::thread(std::mem_fun(&Wiimote::ThreadFunc), this); + m_wiimote_thread = std::thread(std::mem_fn(&Wiimote::ThreadFunc), this); // This isn't as drastic as it sounds, since the process in which the threads // reside is normal priority. Needed for keeping audio reports at a decent rate diff --git a/Source/Core/Core/Src/NetPlayClient.cpp b/Source/Core/Core/Src/NetPlayClient.cpp index ef1edeeb7f..7293b615b3 100644 --- a/Source/Core/Core/Src/NetPlayClient.cpp +++ b/Source/Core/Core/Src/NetPlayClient.cpp @@ -70,7 +70,7 @@ NetPlayClient::NetPlayClient(const std::string& address, const u16 port, NetPlay is_connected = true; m_selector.Add(m_socket); - m_thread = std::thread(std::mem_fun(&NetPlayClient::ThreadFunc), this); + m_thread = std::thread(std::mem_fn(&NetPlayClient::ThreadFunc), this); } } else diff --git a/Source/Core/Core/Src/NetPlayServer.cpp b/Source/Core/Core/Src/NetPlayServer.cpp index 61a61d00ae..80e00c4656 100644 --- a/Source/Core/Core/Src/NetPlayServer.cpp +++ b/Source/Core/Core/Src/NetPlayServer.cpp @@ -38,7 +38,7 @@ NetPlayServer::NetPlayServer(const u16 port, const std::string& name, NetPlayUI* is_connected = true; m_selector.Add(m_socket); - m_thread = std::thread(std::mem_fun(&NetPlayServer::ThreadFunc), this); + m_thread = std::thread(std::mem_fn(&NetPlayServer::ThreadFunc), this); } else is_connected = false; diff --git a/Source/Core/InputCommon/Src/UDPWiimote.cpp b/Source/Core/InputCommon/Src/UDPWiimote.cpp index f14f9ed7e2..83799f2a43 100644 --- a/Source/Core/InputCommon/Src/UDPWiimote.cpp +++ b/Source/Core/InputCommon/Src/UDPWiimote.cpp @@ -134,7 +134,7 @@ UDPWiimote::UDPWiimote(const char *_port, const char * name, int _index) : initBroadcastIPv6(); std::lock_guard lk(d->termLock); - d->thread = std::thread(std::mem_fun(&UDPWiimote::mainThread), this); + d->thread = std::thread(std::mem_fn(&UDPWiimote::mainThread), this); return; } -- cgit v1.2.3 From fe7e691d77550195f71ae2b7af67c6395493908d Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 23 Jan 2013 23:38:49 -0500 Subject: Revert "mem_fun -> mem_fn." This reverts commit b7d32b0a3d810736b2e1151d6d8b9da85ebfbcf3. OSX C++ std library in charge of holding back progress (as usual). --- Source/Core/AudioCommon/Src/AOSoundStream.cpp | 2 +- Source/Core/AudioCommon/Src/DSoundStream.cpp | 2 +- Source/Core/AudioCommon/Src/OpenALStream.cpp | 6 ++---- Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp | 2 +- Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp | 2 +- Source/Core/Core/Src/NetPlayClient.cpp | 2 +- Source/Core/Core/Src/NetPlayServer.cpp | 2 +- Source/Core/InputCommon/Src/UDPWiimote.cpp | 2 +- 8 files changed, 9 insertions(+), 11 deletions(-) (limited to 'Source') diff --git a/Source/Core/AudioCommon/Src/AOSoundStream.cpp b/Source/Core/AudioCommon/Src/AOSoundStream.cpp index 276938c3e2..99ae2e661c 100644 --- a/Source/Core/AudioCommon/Src/AOSoundStream.cpp +++ b/Source/Core/AudioCommon/Src/AOSoundStream.cpp @@ -63,7 +63,7 @@ bool AOSound::Start() { memset(realtimeBuffer, 0, sizeof(realtimeBuffer)); - thread = std::thread(std::mem_fn(&AOSound::SoundLoop), this); + thread = std::thread(std::mem_fun(&AOSound::SoundLoop), this); return true; } diff --git a/Source/Core/AudioCommon/Src/DSoundStream.cpp b/Source/Core/AudioCommon/Src/DSoundStream.cpp index c0c54e00f5..b252dc90c5 100644 --- a/Source/Core/AudioCommon/Src/DSoundStream.cpp +++ b/Source/Core/AudioCommon/Src/DSoundStream.cpp @@ -135,7 +135,7 @@ bool DSound::Start() dsBuffer->Lock(0, bufferSize, (void* *)&p1, &num1, 0, 0, DSBLOCK_ENTIREBUFFER); memset(p1, 0, num1); dsBuffer->Unlock(p1, num1, 0, 0); - thread = std::thread(std::mem_fn(&DSound::SoundLoop), this); + thread = std::thread(std::mem_fun(&DSound::SoundLoop), this); return true; } diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 814f720e6e..cfe6a40630 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -15,8 +15,6 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ -#include - #include "aldlist.h" #include "OpenALStream.h" #include "DPL2Decoder.h" @@ -54,7 +52,7 @@ bool OpenALStream::Start() //period_size_in_millisec = 1000 / refresh; alcMakeContextCurrent(pContext); - thread = std::thread(std::mem_fn(&OpenALStream::SoundLoop), this); + thread = std::thread(std::mem_fun(&OpenALStream::SoundLoop), this); bReturn = true; } else @@ -74,7 +72,7 @@ bool OpenALStream::Start() PanicAlertT("OpenAL: can't find sound devices"); } - // Initialize DPL2 parameters + // Initialise DPL2 parameters dpl2reset(); soundTouch.clear(); diff --git a/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp b/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp index ce416af7e2..93b7cd5d09 100644 --- a/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp +++ b/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp @@ -101,7 +101,7 @@ bool GeckoSockServer::GetAvailableSock(sf::SocketTCP &sock_to_fill) recv_fifo = std::queue(); send_fifo = std::queue(); } - clientThread = std::thread(std::mem_fn(&GeckoSockServer::ClientThread), this); + clientThread = std::thread(std::mem_fun(&GeckoSockServer::ClientThread), this); client_count++; waiting_socks.pop(); sock_filled = true; diff --git a/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp b/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp index 30054b274c..cc05bc10e1 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/IOWin.cpp @@ -264,7 +264,7 @@ bool Wiimote::Connect() // Set LEDs SetLEDs(WIIMOTE_LED_1 << index); - m_wiimote_thread = std::thread(std::mem_fn(&Wiimote::ThreadFunc), this); + m_wiimote_thread = std::thread(std::mem_fun(&Wiimote::ThreadFunc), this); // This isn't as drastic as it sounds, since the process in which the threads // reside is normal priority. Needed for keeping audio reports at a decent rate diff --git a/Source/Core/Core/Src/NetPlayClient.cpp b/Source/Core/Core/Src/NetPlayClient.cpp index 7293b615b3..ef1edeeb7f 100644 --- a/Source/Core/Core/Src/NetPlayClient.cpp +++ b/Source/Core/Core/Src/NetPlayClient.cpp @@ -70,7 +70,7 @@ NetPlayClient::NetPlayClient(const std::string& address, const u16 port, NetPlay is_connected = true; m_selector.Add(m_socket); - m_thread = std::thread(std::mem_fn(&NetPlayClient::ThreadFunc), this); + m_thread = std::thread(std::mem_fun(&NetPlayClient::ThreadFunc), this); } } else diff --git a/Source/Core/Core/Src/NetPlayServer.cpp b/Source/Core/Core/Src/NetPlayServer.cpp index 80e00c4656..61a61d00ae 100644 --- a/Source/Core/Core/Src/NetPlayServer.cpp +++ b/Source/Core/Core/Src/NetPlayServer.cpp @@ -38,7 +38,7 @@ NetPlayServer::NetPlayServer(const u16 port, const std::string& name, NetPlayUI* is_connected = true; m_selector.Add(m_socket); - m_thread = std::thread(std::mem_fn(&NetPlayServer::ThreadFunc), this); + m_thread = std::thread(std::mem_fun(&NetPlayServer::ThreadFunc), this); } else is_connected = false; diff --git a/Source/Core/InputCommon/Src/UDPWiimote.cpp b/Source/Core/InputCommon/Src/UDPWiimote.cpp index 83799f2a43..f14f9ed7e2 100644 --- a/Source/Core/InputCommon/Src/UDPWiimote.cpp +++ b/Source/Core/InputCommon/Src/UDPWiimote.cpp @@ -134,7 +134,7 @@ UDPWiimote::UDPWiimote(const char *_port, const char * name, int _index) : initBroadcastIPv6(); std::lock_guard lk(d->termLock); - d->thread = std::thread(std::mem_fn(&UDPWiimote::mainThread), this); + d->thread = std::thread(std::mem_fun(&UDPWiimote::mainThread), this); return; } -- cgit v1.2.3 From f69b6b595ef80acf5ce776a80b1df27033bc7fdf Mon Sep 17 00:00:00 2001 From: degasus Date: Thu, 24 Jan 2013 13:10:13 +0100 Subject: change projection_type to u32 Fix issue 5740 thx @ erwan_taf for debuging all the week --- Source/Core/VideoCommon/Src/Statistics.h | 2 +- .../Core/VideoCommon/Src/VertexShaderManager.cpp | 61 ++++++++++++---------- Source/Core/VideoCommon/Src/XFMemory.h | 15 ++++-- 3 files changed, 46 insertions(+), 32 deletions(-) (limited to 'Source') diff --git a/Source/Core/VideoCommon/Src/Statistics.h b/Source/Core/VideoCommon/Src/Statistics.h index 7238398b42..e173bfc682 100644 --- a/Source/Core/VideoCommon/Src/Statistics.h +++ b/Source/Core/VideoCommon/Src/Statistics.h @@ -43,7 +43,7 @@ struct Statistics int numUniquePixelShaders; - float proj_0, proj_1, proj_2, proj_3, proj_4, proj_5, proj_6; + float proj_0, proj_1, proj_2, proj_3, proj_4, proj_5; float gproj_0, gproj_1, gproj_2, gproj_3, gproj_4, gproj_5; float gproj_6, gproj_7, gproj_8, gproj_9, gproj_10, gproj_11, gproj_12, gproj_13, gproj_14, gproj_15; diff --git a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp index 84340c6b98..1dce567b0d 100644 --- a/Source/Core/VideoCommon/Src/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/Src/VertexShaderManager.cpp @@ -350,26 +350,28 @@ void VertexShaderManager::SetConstants() if (bProjectionChanged) { bProjectionChanged = false; + + float *rawProjection = xfregs.projection.rawProjection; - if (xfregs.rawProjection[6] == 0) + switch(xfregs.projection.type) { - // Perspective + case GX_PERSPECTIVE: - g_fProjectionMatrix[0] = xfregs.rawProjection[0] * g_ActiveConfig.fAspectRatioHackW; + g_fProjectionMatrix[0] = rawProjection[0] * g_ActiveConfig.fAspectRatioHackW; g_fProjectionMatrix[1] = 0.0f; - g_fProjectionMatrix[2] = xfregs.rawProjection[1]; + g_fProjectionMatrix[2] = rawProjection[1]; g_fProjectionMatrix[3] = 0.0f; g_fProjectionMatrix[4] = 0.0f; - g_fProjectionMatrix[5] = xfregs.rawProjection[2] * g_ActiveConfig.fAspectRatioHackH; - g_fProjectionMatrix[6] = xfregs.rawProjection[3]; + g_fProjectionMatrix[5] = rawProjection[2] * g_ActiveConfig.fAspectRatioHackH; + g_fProjectionMatrix[6] = rawProjection[3]; g_fProjectionMatrix[7] = 0.0f; g_fProjectionMatrix[8] = 0.0f; g_fProjectionMatrix[9] = 0.0f; - g_fProjectionMatrix[10] = xfregs.rawProjection[4]; + g_fProjectionMatrix[10] = rawProjection[4]; - g_fProjectionMatrix[11] = xfregs.rawProjection[5]; + g_fProjectionMatrix[11] = rawProjection[5]; g_fProjectionMatrix[12] = 0.0f; g_fProjectionMatrix[13] = 0.0f; @@ -394,24 +396,24 @@ void VertexShaderManager::SetConstants() SETSTAT_FT(stats.gproj_13, g_fProjectionMatrix[13]); SETSTAT_FT(stats.gproj_14, g_fProjectionMatrix[14]); SETSTAT_FT(stats.gproj_15, g_fProjectionMatrix[15]); - } - else - { - // Orthographic Projection - g_fProjectionMatrix[0] = xfregs.rawProjection[0]; + break; + + case GX_ORTHOGRAPHIC: + + g_fProjectionMatrix[0] = rawProjection[0]; g_fProjectionMatrix[1] = 0.0f; g_fProjectionMatrix[2] = 0.0f; - g_fProjectionMatrix[3] = xfregs.rawProjection[1]; + g_fProjectionMatrix[3] = rawProjection[1]; g_fProjectionMatrix[4] = 0.0f; - g_fProjectionMatrix[5] = xfregs.rawProjection[2]; + g_fProjectionMatrix[5] = rawProjection[2]; g_fProjectionMatrix[6] = 0.0f; - g_fProjectionMatrix[7] = xfregs.rawProjection[3]; + g_fProjectionMatrix[7] = rawProjection[3]; g_fProjectionMatrix[8] = 0.0f; g_fProjectionMatrix[9] = 0.0f; - g_fProjectionMatrix[10] = (g_ProjHack1.value + xfregs.rawProjection[4]) * ((g_ProjHack1.sign == 0) ? 1.0f : g_ProjHack1.sign); - g_fProjectionMatrix[11] = (g_ProjHack2.value + xfregs.rawProjection[5]) * ((g_ProjHack2.sign == 0) ? 1.0f : g_ProjHack2.sign); + g_fProjectionMatrix[10] = (g_ProjHack1.value + rawProjection[4]) * ((g_ProjHack1.sign == 0) ? 1.0f : g_ProjHack1.sign); + g_fProjectionMatrix[11] = (g_ProjHack2.value + rawProjection[5]) * ((g_ProjHack2.sign == 0) ? 1.0f : g_ProjHack2.sign); g_fProjectionMatrix[12] = 0.0f; g_fProjectionMatrix[13] = 0.0f; @@ -424,7 +426,7 @@ void VertexShaderManager::SetConstants() */ g_fProjectionMatrix[14] = 0.0f; - g_fProjectionMatrix[15] = (g_ProjHack3 && xfregs.rawProjection[0] == 2.0f ? 0.0f : 1.0f); //causes either the efb copy or bloom layer not to show if proj hack enabled + g_fProjectionMatrix[15] = (g_ProjHack3 && rawProjection[0] == 2.0f ? 0.0f : 1.0f); //causes either the efb copy or bloom layer not to show if proj hack enabled SETSTAT_FT(stats.g2proj_0, g_fProjectionMatrix[0]); SETSTAT_FT(stats.g2proj_1, g_fProjectionMatrix[1]); @@ -442,18 +444,21 @@ void VertexShaderManager::SetConstants() SETSTAT_FT(stats.g2proj_13, g_fProjectionMatrix[13]); SETSTAT_FT(stats.g2proj_14, g_fProjectionMatrix[14]); SETSTAT_FT(stats.g2proj_15, g_fProjectionMatrix[15]); - SETSTAT_FT(stats.proj_0, xfregs.rawProjection[0]); - SETSTAT_FT(stats.proj_1, xfregs.rawProjection[1]); - SETSTAT_FT(stats.proj_2, xfregs.rawProjection[2]); - SETSTAT_FT(stats.proj_3, xfregs.rawProjection[3]); - SETSTAT_FT(stats.proj_4, xfregs.rawProjection[4]); - SETSTAT_FT(stats.proj_5, xfregs.rawProjection[5]); - SETSTAT_FT(stats.proj_6, xfregs.rawProjection[6]); + SETSTAT_FT(stats.proj_0, rawProjection[0]); + SETSTAT_FT(stats.proj_1, rawProjection[1]); + SETSTAT_FT(stats.proj_2, rawProjection[2]); + SETSTAT_FT(stats.proj_3, rawProjection[3]); + SETSTAT_FT(stats.proj_4, rawProjection[4]); + SETSTAT_FT(stats.proj_5, rawProjection[5]); + break; + + default: + ERROR_LOG(VIDEO, "unknown projection type: %d", xfregs.projection.type); } - PRIM_LOG("Projection: %f %f %f %f %f %f\n", xfregs.rawProjection[0], xfregs.rawProjection[1], xfregs.rawProjection[2], xfregs.rawProjection[3], xfregs.rawProjection[4], xfregs.rawProjection[5]); + PRIM_LOG("Projection: %f %f %f %f %f %f\n", rawProjection[0], rawProjection[1], rawProjection[2], rawProjection[3], rawProjection[4], rawProjection[5]); - if ((g_ActiveConfig.bFreeLook || g_ActiveConfig.bAnaglyphStereo ) && xfregs.rawProjection[6] == 0) + if ((g_ActiveConfig.bFreeLook || g_ActiveConfig.bAnaglyphStereo ) && xfregs.projection.type == GX_PERSPECTIVE) { Matrix44 mtxA; Matrix44 mtxB; diff --git a/Source/Core/VideoCommon/Src/XFMemory.h b/Source/Core/VideoCommon/Src/XFMemory.h index ee3c3b0fdc..fc199b8c32 100644 --- a/Source/Core/VideoCommon/Src/XFMemory.h +++ b/Source/Core/VideoCommon/Src/XFMemory.h @@ -61,6 +61,9 @@ #define LIGHTATTN_NONE 2 #define LIGHTATTN_DIR 3 +#define GX_PERSPECTIVE 0 +#define GX_ORTHOGRAPHIC 1 + #define XFMEM_SIZE 0x8000 #define XFMEM_POSMATRICES 0x000 #define XFMEM_POSMATRICES_END 0x100 @@ -235,6 +238,12 @@ struct Viewport float farZ; }; +struct Projection +{ + float rawProjection[6]; + u32 type; // only GX_PERSPECTIVE or GX_ORTHOGRAPHIC are allowed +}; + struct XFRegisters { u32 error; // 0x1000 @@ -257,10 +266,10 @@ struct XFRegisters u32 unk5; // 0x1015 u32 unk6; // 0x1016 u32 unk7; // 0x1017 - u32 MatrixIndexA; // 0x1018 - u32 MatrixIndexB; // 0x1019 + u32 MatrixIndexA; // 0x1018 + u32 MatrixIndexB; // 0x1019 Viewport viewport; // 0x101a - 0x101f - float rawProjection[7]; // 0x1020 - 0x1026 + Projection projection; // 0x1020 - 0x1026 u32 unk8[24]; // 0x1027 - 0x103e NumTexGen numTexGen; // 0x103f TexMtxInfo texMtxInfo[8]; // 0x1040 - 0x1047 -- cgit v1.2.3 From 2db0c4270eda2e652bb39e394aa8a576785a2354 Mon Sep 17 00:00:00 2001 From: lioncash Date: Thu, 24 Jan 2013 08:21:08 -0500 Subject: Fix a potential memory leak on non-windows systems. Also added a FIXME to BPStructs.cpp and BPMemLoader.cpp --- Source/Core/Common/Src/FileUtil.cpp | 12 ++++++++++++ Source/Core/VideoCommon/Src/BPStructs.cpp | 1 + Source/Plugins/Plugin_VideoSoftware/Src/BPMemLoader.cpp | 1 + 3 files changed, 14 insertions(+) (limited to 'Source') diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp index d7b248a722..d74c99b7a2 100644 --- a/Source/Core/Common/Src/FileUtil.cpp +++ b/Source/Core/Common/Src/FileUtil.cpp @@ -512,12 +512,24 @@ bool DeleteDirRecursively(const std::string &directory) if (IsDirectory(newPath)) { if (!DeleteDirRecursively(newPath)) + { + #ifndef _WIN32 + closedir(dirp); + #endif + return false; + } } else { if (!File::Delete(newPath)) + { + #ifndef _WIN32 + closedir(dirp); + #endif + return false; + } } #ifdef _WIN32 diff --git a/Source/Core/VideoCommon/Src/BPStructs.cpp b/Source/Core/VideoCommon/Src/BPStructs.cpp index 9ba2afbbd1..add40d99c3 100644 --- a/Source/Core/VideoCommon/Src/BPStructs.cpp +++ b/Source/Core/VideoCommon/Src/BPStructs.cpp @@ -519,6 +519,7 @@ void BPWritten(const BPCmd& bp) for (u32 i = 0; i < tmem_cfg.preload_tile_info.count; ++i) { + // FIXME: Duplicate conditions. if (tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE || tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE) break; diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/BPMemLoader.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/BPMemLoader.cpp index 6a17a40eb1..f0674a96cc 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/BPMemLoader.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/BPMemLoader.cpp @@ -137,6 +137,7 @@ void SWBPWritten(int address, int newvalue) for (int i = 0; i < tmem_cfg.preload_tile_info.count; ++i) { + // FIXME: Duplicate conditions if (tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE || tmem_addr_even + TMEM_LINE_SIZE > TMEM_SIZE) break; -- cgit v1.2.3 From d60cc373d1b389215eb63c4e20fe24e902680c7a Mon Sep 17 00:00:00 2001 From: degasus Date: Thu, 24 Jan 2013 16:11:07 +0100 Subject: Revert "Revert 30dd9c2 e9d00bf db5f4c8 and bff0fae" This reverts commit d0301ca89d318d8d6e3e7fde9c4b60e470e184e4. Conflicts: .gitignore --- Source/Core/Common/Src/MathUtil.h | 2 + Source/Core/VideoCommon/Src/BPFunctions.cpp | 2 +- .../Plugin_VideoOGL/Src/FramebufferManager.cpp | 85 +++++-- .../Plugin_VideoOGL/Src/NativeVertexFormat.cpp | 37 ++- Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp | 232 ++++++++++------- Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h | 22 +- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 274 +++++++++++++++------ .../Plugins/Plugin_VideoOGL/Src/TextureCache.cpp | 93 ++++++- Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h | 3 + .../Plugin_VideoOGL/Src/TextureConverter.cpp | 112 +++++++-- .../Plugins/Plugin_VideoOGL/Src/VertexManager.cpp | 3 - .../Plugin_VideoSoftware/Src/SWRenderer.cpp | 5 +- 12 files changed, 627 insertions(+), 243 deletions(-) (limited to 'Source') diff --git a/Source/Core/Common/Src/MathUtil.h b/Source/Core/Common/Src/MathUtil.h index a6290ff602..c5f613ada1 100644 --- a/Source/Core/Common/Src/MathUtil.h +++ b/Source/Core/Common/Src/MathUtil.h @@ -117,6 +117,8 @@ struct Rectangle Rectangle(T theLeft, T theTop, T theRight, T theBottom) : left(theLeft), top(theTop), right(theRight), bottom(theBottom) { } + + bool operator==(const Rectangle& r) { return left==r.left && top==r.top && right==r.right && bottom==r.bottom; } T GetWidth() const { return abs(right - left); } T GetHeight() const { return abs(bottom - top); } diff --git a/Source/Core/VideoCommon/Src/BPFunctions.cpp b/Source/Core/VideoCommon/Src/BPFunctions.cpp index cddeae3000..b9a76ba7b6 100644 --- a/Source/Core/VideoCommon/Src/BPFunctions.cpp +++ b/Source/Core/VideoCommon/Src/BPFunctions.cpp @@ -236,7 +236,7 @@ bool GetConfig(const int &type) case CONFIG_DISABLEFOG: return g_ActiveConfig.bDisableFog; case CONFIG_SHOWEFBREGIONS: - return false; + return g_ActiveConfig.bShowEFBCopyRegions; default: PanicAlert("GetConfig Error: Unknown Config Type!"); return false; diff --git a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp index 0e37c3adb6..e7fb7ad7b7 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/FramebufferManager.cpp @@ -17,6 +17,7 @@ #include "Globals.h" #include "FramebufferManager.h" +#include "VertexShaderGen.h" #include "TextureConverter.h" #include "Render.h" @@ -27,6 +28,11 @@ namespace OGL extern bool s_bHaveFramebufferBlit; // comes from Render.cpp. ugly. +static GLuint s_VBO = 0; +static GLuint s_VAO = 0; +static MathUtil::Rectangle s_cached_sourcerc; +static MathUtil::Rectangle s_cached_drawrc; + int FramebufferManager::m_targetWidth; int FramebufferManager::m_targetHeight; int FramebufferManager::m_msaaSamples; @@ -53,6 +59,15 @@ FramebufferManager::FramebufferManager(int targetWidth, int targetHeight, int ms m_resolvedDepthTexture = 0; m_xfbFramebuffer = 0; + s_cached_sourcerc.bottom = -1; + s_cached_sourcerc.left = -1; + s_cached_sourcerc.right = -1; + s_cached_sourcerc.top = -1; + s_cached_drawrc.bottom = -1; + s_cached_drawrc.left = -1; + s_cached_drawrc.right = -1; + s_cached_drawrc.top = -1; + m_targetWidth = targetWidth; m_targetHeight = targetHeight; @@ -169,7 +184,28 @@ FramebufferManager::FramebufferManager(int targetWidth, int targetHeight, int ms // Create XFB framebuffer; targets will be created elsewhere. glGenFramebuffersEXT(1, &m_xfbFramebuffer); - + + // Generate VBO & VAO - and initialize the VAO for "Draw" + glGenBuffers(1, &s_VBO); + glGenVertexArrays(1, &s_VAO); + glBindBuffer(GL_ARRAY_BUFFER, s_VBO); + glBindVertexArray(s_VAO); + + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(2, GL_FLOAT, 6*sizeof(GLfloat), NULL); + + glClientActiveTexture(GL_TEXTURE0); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer(2, GL_FLOAT, 6*sizeof(GLfloat), (GLfloat*)NULL+2); + + glClientActiveTexture(GL_TEXTURE1); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer(2, GL_FLOAT, 6*sizeof(GLfloat), (GLfloat*)NULL+4); + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + // EFB framebuffer is currently bound, make sure to clear its alpha value to 1.f glViewport(0, 0, m_targetWidth, m_targetHeight); glScissor(0, 0, m_targetWidth, m_targetHeight); @@ -181,6 +217,8 @@ FramebufferManager::FramebufferManager(int targetWidth, int targetHeight, int ms FramebufferManager::~FramebufferManager() { glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glDeleteBuffers(1, &s_VBO); + glDeleteVertexArrays(1, &s_VAO); GLuint glObj[3]; @@ -305,24 +343,35 @@ void XFBSource::Draw(const MathUtil::Rectangle &sourcerc, glBindTexture(GL_TEXTURE_RECTANGLE_ARB, texture); - glBegin(GL_QUADS); - glTexCoord2f(sourcerc.left, sourcerc.bottom); - glMultiTexCoord2fARB(GL_TEXTURE1, 0, 0); - glVertex2f(drawrc.left, drawrc.bottom); - - glTexCoord2f(sourcerc.left, sourcerc.top); - glMultiTexCoord2fARB(GL_TEXTURE1, 0, 1); - glVertex2f(drawrc.left, drawrc.top); - - glTexCoord2f(sourcerc.right, sourcerc.top); - glMultiTexCoord2fARB(GL_TEXTURE1, 1, 1); - glVertex2f(drawrc.right, drawrc.top); - - glTexCoord2f(sourcerc.right, sourcerc.bottom); - glMultiTexCoord2fARB(GL_TEXTURE1, 1, 0); - glVertex2f(drawrc.right, drawrc.bottom); - glEnd(); + if(!(s_cached_sourcerc == sourcerc) || !(s_cached_drawrc == drawrc)) { + GLfloat vertices[] = { + drawrc.left, drawrc.bottom, + sourcerc.left, sourcerc.bottom, + 0.0f, 0.0f, + drawrc.left, drawrc.top, + sourcerc.left, sourcerc.top, + 0.0f, 1.0f, + drawrc.right, drawrc.top, + sourcerc.right, sourcerc.top, + 1.0f, 1.0f, + drawrc.right, drawrc.bottom, + sourcerc.right, sourcerc.bottom, + 1.0f, 0.0f + }; + glBindBuffer(GL_ARRAY_BUFFER, s_VBO); + glBufferData(GL_ARRAY_BUFFER, 2*4*3*sizeof(GLfloat), vertices, GL_STREAM_DRAW); + + s_cached_sourcerc = sourcerc; + s_cached_drawrc = drawrc; + } + glBindVertexArray(s_VAO); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + GL_REPORT_ERRORD(); } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/NativeVertexFormat.cpp b/Source/Plugins/Plugin_VideoOGL/Src/NativeVertexFormat.cpp index ae20649433..a435be0dca 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/NativeVertexFormat.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/NativeVertexFormat.cpp @@ -27,8 +27,9 @@ #define COMPILED_CODE_SIZE 4096 -// TODO: this guy is never initialized -u32 s_prevcomponents; // previous state set +// TODO: Use this again for performance, but without VAO we never know exactly the last configuration +static u32 s_prevcomponents; // previous state set + /* #ifdef _WIN32 #ifdef _M_IX86 @@ -64,7 +65,6 @@ public: virtual void Initialize(const PortableVertexDeclaration &_vtx_decl); virtual void SetupVertexPointers(); - virtual void EnableComponents(u32 components); }; namespace OGL @@ -187,6 +187,7 @@ void GLVertexFormat::SetupVertexPointers() { #ifdef USE_JIT ((void (*)())(void*)m_compiledCode)(); #else + glVertexPointer(3, GL_FLOAT, vtx_decl.stride, VertexManager::s_pBaseBufferPointer); if (vtx_decl.num_normals >= 1) { glNormalPointer(VarToGL(vtx_decl.normal_gl_type), vtx_decl.stride, (void *)(VertexManager::s_pBaseBufferPointer + vtx_decl.normal_offset[0])); @@ -219,34 +220,32 @@ void GLVertexFormat::SetupVertexPointers() { glVertexAttribPointer(SHADER_POSMTX_ATTRIB, 4, GL_UNSIGNED_BYTE, GL_FALSE, vtx_decl.stride, (void *)(VertexManager::s_pBaseBufferPointer + vtx_decl.posmtx_offset)); } #endif -} -void GLVertexFormat::EnableComponents(u32 components) -{ - if (s_prevcomponents != components) + if (s_prevcomponents != m_components) { - VertexManager::Flush(); + // vertices + glEnableClientState(GL_VERTEX_ARRAY); // matrices - if ((components & VB_HAS_POSMTXIDX) != (s_prevcomponents & VB_HAS_POSMTXIDX)) + if ((m_components & VB_HAS_POSMTXIDX) != (s_prevcomponents & VB_HAS_POSMTXIDX)) { - if (components & VB_HAS_POSMTXIDX) + if (m_components & VB_HAS_POSMTXIDX) glEnableVertexAttribArray(SHADER_POSMTX_ATTRIB); else glDisableVertexAttribArray(SHADER_POSMTX_ATTRIB); } // normals - if ((components & VB_HAS_NRM0) != (s_prevcomponents & VB_HAS_NRM0)) + if ((m_components & VB_HAS_NRM0) != (s_prevcomponents & VB_HAS_NRM0)) { - if (components & VB_HAS_NRM0) + if (m_components & VB_HAS_NRM0) glEnableClientState(GL_NORMAL_ARRAY); else glDisableClientState(GL_NORMAL_ARRAY); } - if ((components & VB_HAS_NRM1) != (s_prevcomponents & VB_HAS_NRM1)) + if ((m_components & VB_HAS_NRM1) != (s_prevcomponents & VB_HAS_NRM1)) { - if (components & VB_HAS_NRM1) { + if (m_components & VB_HAS_NRM1) { glEnableVertexAttribArray(SHADER_NORM1_ATTRIB); glEnableVertexAttribArray(SHADER_NORM2_ATTRIB); } @@ -259,9 +258,9 @@ void GLVertexFormat::EnableComponents(u32 components) // color for (int i = 0; i < 2; ++i) { - if ((components & (VB_HAS_COL0 << i)) != (s_prevcomponents & (VB_HAS_COL0 << i))) + if ((m_components & (VB_HAS_COL0 << i)) != (s_prevcomponents & (VB_HAS_COL0 << i))) { - if (components & (VB_HAS_COL0 << i)) + if (m_components & (VB_HAS_COL0 << i)) glEnableClientState(i ? GL_SECONDARY_COLOR_ARRAY : GL_COLOR_ARRAY); else glDisableClientState(i ? GL_SECONDARY_COLOR_ARRAY : GL_COLOR_ARRAY); @@ -271,16 +270,16 @@ void GLVertexFormat::EnableComponents(u32 components) // tex for (int i = 0; i < 8; ++i) { - if ((components & (VB_HAS_UV0 << i)) != (s_prevcomponents & (VB_HAS_UV0 << i))) + if ((m_components & (VB_HAS_UV0 << i)) != (s_prevcomponents & (VB_HAS_UV0 << i))) { glClientActiveTexture(GL_TEXTURE0 + i); - if (components & (VB_HAS_UV0 << i)) + if (m_components & (VB_HAS_UV0 << i)) glEnableClientState(GL_TEXTURE_COORD_ARRAY); else glDisableClientState(GL_TEXTURE_COORD_ARRAY); } } - s_prevcomponents = components; + s_prevcomponents = m_components; } } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp b/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp index da53fae6d5..95c99ac78c 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.cpp @@ -17,12 +17,16 @@ #include "GLUtil.h" -#include - #include "RasterFont.h" // globals -const GLubyte rasters[][13] = { + +static const u32 char_width = 8; +static const u32 char_height = 13; +static const u32 char_offset = 32; +static const u32 char_count = 95; + +const u8 rasters[char_count][char_height] = { {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36}, @@ -120,104 +124,160 @@ const GLubyte rasters[][13] = { {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x8f, 0xf1, 0x60, 0x00, 0x00, 0x00} }; +static const char *s_vertex_shader = + "attribute vec2 vertexPosition;\n" + "attribute vec2 texturePosition;\n" + "varying vec2 tpos;\n" + "void main(void) {\n" + " gl_Position = vec4(vertexPosition,0,1);\n" + " tpos = texturePosition;\n" + "}\n"; + +static const char *s_fragment_shader = + "#extension GL_ARB_texture_rectangle : enable\n" + "uniform sampler2DRect textureSampler;\n" + "uniform vec4 color;\n" + "varying vec2 tpos;\n" + "void main(void) {\n" + " gl_FragColor = texture2DRect(textureSampler,tpos) * color;\n" + "}\n"; + RasterFont::RasterFont() { - // set GL modes - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - // create the raster font - fontOffset = glGenLists(128); - for (int i = 32; i < 127; i++) { - glNewList(i + fontOffset, GL_COMPILE); - glBitmap(8, 13, 0.0f, 2.0f, 10.0f, 0.0f, rasters[i - 32]); - glEndList(); + // generate the texture + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_RECTANGLE, texture); + u32* texture_data = new u32[char_width*char_count*char_height]; + for(u32 y=0; y= TEMP_BUFFER_SIZE) - length = TEMP_BUFFER_SIZE - 1; - - // Sanitize string to avoid GL errors. - char *s2 = temp_buffer; - memcpy(s2, s, length); - s2[length] = 0; - for (int i = 0; i < length; i++) { - if (s2[i] < 32 || s2[i] > 126) - s2[i] = '!'; - } - - // go to the right spot - glRasterPos3d(x, y, z); - GL_REPORT_ERRORD(); - - glPushAttrib (GL_LIST_BIT); - glListBase(fontOffset); - glCallLists((GLsizei)strlen(s2), GL_UNSIGNED_BYTE, (GLubyte *) s2); - GL_REPORT_ERRORD(); - glPopAttrib(); - GL_REPORT_ERRORD(); -} - -void RasterFont::printCenteredString(const char *s, double y, int screen_width, double z) -{ - int length = (int)strlen(s); - int x = (int)(screen_width/2.0 - (length/2.0)*char_width); - printString(s, x, y, z); -} - -void RasterFont::printMultilineText(const char *text, double start_x, double start_y, double z, int bbWidth, int bbHeight) -{ - double x = start_x; - double y = start_y; - char temp[1024]; - char *t = temp; - while (*text) - { - if (*text == '\n') - { - *t = 0; - printString(temp, x, y, z); - y -= char_height * 2.0f / bbHeight; + return; // nothing to do + + glBindVertexArray(VAO); + glBindBuffer(GL_ARRAY_BUFFER, VBO); + glBufferData(GL_ARRAY_BUFFER, length*4*6*sizeof(GLfloat), NULL, GL_STREAM_DRAW); + GLfloat *vertices = (GLfloat*)glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); + + int usage = 0; + GLfloat delta_x = 2*char_width/GLfloat(bbWidth); + GLfloat delta_y = 2*char_height/GLfloat(bbHeight); + GLfloat border_x = 1*2/GLfloat(bbWidth); + GLfloat border_y = 2*2/GLfloat(bbHeight); + + GLfloat x = start_x; + GLfloat y = start_y; + + for(int i=0; i= char_count+char_offset) continue; + + vertices[usage++] = x; + vertices[usage++] = y; + vertices[usage++] = (c-char_offset)*char_width; + vertices[usage++] = 0; + + vertices[usage++] = x+delta_x; + vertices[usage++] = y; + vertices[usage++] = (c-char_offset+1)*char_width; + vertices[usage++] = 0; + + vertices[usage++] = x+delta_x; + vertices[usage++] = y+delta_y; + vertices[usage++] = (c-char_offset+1)*char_width; + vertices[usage++] = char_height; + + vertices[usage++] = x; + vertices[usage++] = y; + vertices[usage++] = (c-char_offset)*char_width; + vertices[usage++] = 0; + + vertices[usage++] = x+delta_x; + vertices[usage++] = y+delta_y; + vertices[usage++] = (c-char_offset+1)*char_width; + vertices[usage++] = char_height; + + vertices[usage++] = x; + vertices[usage++] = y+delta_y; + vertices[usage++] = (c-char_offset)*char_width; + vertices[usage++] = char_height; + + x += delta_x + border_x; } + glUnmapBuffer(GL_ARRAY_BUFFER); - // ???? - if (t != text) - { - *t = 0; - printString(temp, x, y, z); + glUseProgram(shader_program); + + if(color != cached_color) { + glUniform4f(uniform_color_id, ((color>>16)&0xff)/255.f,((color>>8)&0xff)/255.f,((color>>0)&0xff)/255.f,((color>>24)&0xff)/255.f); + cached_color = color; } + + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_RECTANGLE, texture); + glDrawArrays(GL_TRIANGLES, 0, usage/4); + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + + glUseProgram(0); } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h b/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h index 3ebc684dd0..fcbfdfff61 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/RasterFont.h @@ -23,20 +23,16 @@ public: RasterFont(); ~RasterFont(void); static int debug; - - // some useful constants - enum {char_width = 10}; - enum {char_height = 15}; - - // and the happy helper functions - void printString(const char *s, double x, double y, double z=0.0); - void printCenteredString(const char *s, double y, int screen_width, double z=0.0); - - void printMultilineText(const char *text, double x, double y, double z, int bbWidth, int bbHeight); + + void printMultilineText(const char *text, double x, double y, double z, int bbWidth, int bbHeight, u32 color); private: - int fontOffset; - char *temp_buffer; - enum {TEMP_BUFFER_SIZE = 64 * 1024}; + + u32 VBO; + u32 VAO; + u32 texture; + u32 shader_program; + u32 uniform_color_id; + u32 cached_color; }; #endif // _RASTERFONT_H_ diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index e3c35a6511..49a0312340 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -107,10 +107,14 @@ namespace OGL // Declarations and definitions // ---------------------------- -int s_fps=0; +static int s_fps = 0; +static GLuint s_ShowEFBCopyRegions_VBO = 0; +static GLuint s_ShowEFBCopyRegions_VAO = 0; +static GLuint s_Swap_VBO = 0; +static GLuint s_Swap_VAO[2]; +static TargetRectangle s_cached_targetRc; - -RasterFont* s_pfont = NULL; +static RasterFont* s_pfont = NULL; // 1 for no MSAA. Use s_MSAASamples > 1 to check for MSAA. static int s_MSAASamples = 1; @@ -126,9 +130,9 @@ static std::thread scrshotThread; #endif // EFB cache related -const u32 EFB_CACHE_RECT_SIZE = 64; // Cache 64x64 blocks. -const u32 EFB_CACHE_WIDTH = (EFB_WIDTH + EFB_CACHE_RECT_SIZE - 1) / EFB_CACHE_RECT_SIZE; // round up -const u32 EFB_CACHE_HEIGHT = (EFB_HEIGHT + EFB_CACHE_RECT_SIZE - 1) / EFB_CACHE_RECT_SIZE; +static const u32 EFB_CACHE_RECT_SIZE = 64; // Cache 64x64 blocks. +static const u32 EFB_CACHE_WIDTH = (EFB_WIDTH + EFB_CACHE_RECT_SIZE - 1) / EFB_CACHE_RECT_SIZE; // round up +static const u32 EFB_CACHE_HEIGHT = (EFB_HEIGHT + EFB_CACHE_RECT_SIZE - 1) / EFB_CACHE_RECT_SIZE; static bool s_efbCacheValid[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT]; static std::vector s_efbCache[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT]; // 2 for PEEK_Z and PEEK_COLOR @@ -251,7 +255,16 @@ Renderer::Renderer() OSDInternalH = 0; s_fps=0; + s_ShowEFBCopyRegions_VBO = 0; + s_Swap_VBO = 0; s_blendMode = 0; + + // should be invalid, so there will be an upload on the first call + s_cached_targetRc.bottom = -1; + s_cached_targetRc.top = -1; + s_cached_targetRc.left = -1; + s_cached_targetRc.right = -1; + InitFPSCounter(); @@ -312,6 +325,13 @@ Renderer::Renderer() bSuccess = false; } + if (!GLEW_ARB_vertex_array_object) + { + ERROR_LOG(VIDEO, "GPU: OGL ERROR: Need GL_ARB_vertex_array_object.\n" + "GPU: Does your video card support OpenGL 3.0?"); + bSuccess = false; + } + s_bHaveFramebufferBlit = strstr(ptoken, "GL_EXT_framebuffer_blit") != NULL; s_bHaveCoverageMSAA = strstr(ptoken, "GL_NV_framebuffer_multisample_coverage") != NULL; @@ -451,17 +471,46 @@ Renderer::Renderer() cgGLSetDebugMode(GL_FALSE); #endif #endif - + + // creating buffers + glGenBuffers(1, &s_ShowEFBCopyRegions_VBO); + glGenVertexArrays(1, &s_ShowEFBCopyRegions_VAO); + glBindBuffer(GL_ARRAY_BUFFER, s_ShowEFBCopyRegions_VBO); + glBindVertexArray( s_ShowEFBCopyRegions_VAO ); + glEnableClientState(GL_COLOR_ARRAY); + glColorPointer (3, GL_FLOAT, sizeof(GLfloat)*5, (GLfloat*)NULL+2); + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(2, GL_FLOAT, sizeof(GLfloat)*5, NULL); + + glGenBuffers(1, &s_Swap_VBO); + glGenVertexArrays(2, s_Swap_VAO); + glBindBuffer(GL_ARRAY_BUFFER, s_Swap_VBO); + glBindVertexArray(s_Swap_VAO[0]); + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(3, GL_FLOAT, 7*sizeof(GLfloat), NULL); + glClientActiveTexture(GL_TEXTURE0); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer(2, GL_FLOAT, 7*sizeof(GLfloat), (GLfloat*)NULL+3); + + glBindVertexArray(s_Swap_VAO[1]); + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(3, GL_FLOAT, 7*sizeof(GLfloat), NULL); + glClientActiveTexture(GL_TEXTURE0); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer(2, GL_FLOAT, 7*sizeof(GLfloat), (GLfloat*)NULL+3); + glClientActiveTexture(GL_TEXTURE1); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer(2, GL_FLOAT, 7*sizeof(GLfloat), (GLfloat*)NULL+5); + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + glStencilFunc(GL_ALWAYS, 0, 0); glBlendFunc(GL_ONE, GL_ONE); glViewport(0, 0, GetTargetWidth(), GetTargetHeight()); // Reset The Current Viewport - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glShadeModel(GL_SMOOTH); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClearDepth(1.0f); @@ -478,11 +527,6 @@ Renderer::Renderer() glBlendColorEXT(0, 0, 0, 0.5f); glClearDepth(1.0f); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - // legacy multitexturing: select texture channel only. glActiveTexture(GL_TEXTURE0); glClientActiveTexture(GL_TEXTURE0); @@ -498,6 +542,13 @@ Renderer::~Renderer() { g_Config.bRunning = false; UpdateActiveConfig(); + + glDeleteBuffers(1, &s_ShowEFBCopyRegions_VBO); + glDeleteVertexArrays(1, &s_ShowEFBCopyRegions_VAO); + glDeleteBuffers(1, &s_Swap_VBO); + glDeleteVertexArrays(2, s_Swap_VAO); + s_ShowEFBCopyRegions_VBO = 0; + delete s_pfont; s_pfont = 0; @@ -545,9 +596,15 @@ void Renderer::DrawDebugInfo() // Set Line Size glLineWidth(3.0f); - glBegin(GL_LINES); + // 2*Coords + 3*Color + glBindBuffer(GL_ARRAY_BUFFER, s_ShowEFBCopyRegions_VBO); + glBufferData(GL_ARRAY_BUFFER, stats.efb_regions.size() * sizeof(GLfloat) * (2+3)*2*6, NULL, GL_STREAM_DRAW); + GLfloat *Vertices = (GLfloat*)glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); // Draw EFB copy regions rectangles + int a = 0; + GLfloat color[3] = {0.0f, 1.0f, 1.0f}; + for (std::vector::const_iterator it = stats.efb_regions.begin(); it != stats.efb_regions.end(); ++it) { @@ -558,22 +615,97 @@ void Renderer::DrawDebugInfo() GLfloat x2 = (GLfloat) -1.0f + ((GLfloat)it->right / halfWidth); GLfloat y2 = (GLfloat) 1.0f - ((GLfloat)it->bottom / halfHeight); - // Draw shadow of rect - glColor3f(0.0f, 0.0f, 0.0f); - glVertex2f(x, y - 0.01); glVertex2f(x2, y - 0.01); - glVertex2f(x, y2 - 0.01); glVertex2f(x2, y2 - 0.01); - glVertex2f(x + 0.005, y); glVertex2f(x + 0.005, y2); - glVertex2f(x2 + 0.005, y); glVertex2f(x2 + 0.005, y2); - - // Draw rect - glColor3f(0.0f, 1.0f, 1.0f); - glVertex2f(x, y); glVertex2f(x2, y); - glVertex2f(x, y2); glVertex2f(x2, y2); - glVertex2f(x, y); glVertex2f(x, y2); - glVertex2f(x2, y); glVertex2f(x2, y2); + Vertices[a++] = x; + Vertices[a++] = y; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + Vertices[a++] = x2; + Vertices[a++] = y; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + + Vertices[a++] = x2; + Vertices[a++] = y; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + Vertices[a++] = x2; + Vertices[a++] = y2; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + + Vertices[a++] = x2; + Vertices[a++] = y2; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + Vertices[a++] = x; + Vertices[a++] = y2; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + + Vertices[a++] = x; + Vertices[a++] = y2; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + Vertices[a++] = x; + Vertices[a++] = y; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + + Vertices[a++] = x; + Vertices[a++] = y; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + Vertices[a++] = x2; + Vertices[a++] = y2; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + + Vertices[a++] = x2; + Vertices[a++] = y; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + Vertices[a++] = x; + Vertices[a++] = y2; + Vertices[a++] = color[0]; + Vertices[a++] = color[1]; + Vertices[a++] = color[2]; + + // TO DO: build something nicer here + GLfloat temp = color[0]; + color[0] = color[1]; + color[1] = color[2]; + color[2] = temp; } - - glEnd(); + glUnmapBuffer(GL_ARRAY_BUFFER); + + glBindVertexArray( s_ShowEFBCopyRegions_VAO ); + glDrawArrays(GL_LINES, 0, stats.efb_regions.size() * 2*6); + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); // Restore Line Size glLineWidth(lSize); @@ -601,16 +733,13 @@ void Renderer::RenderText(const char *text, int left, int top, u32 color) const int nBackbufferWidth = (int)GLInterface->GetBackBufferWidth(); const int nBackbufferHeight = (int)GLInterface->GetBackBufferHeight(); - glColor4f(((color>>16) & 0xff)/255.0f, ((color>> 8) & 0xff)/255.0f, - ((color>> 0) & 0xff)/255.0f, ((color>>24) & 0xFF)/255.0f); - glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); s_pfont->printMultilineText(text, left * 2.0f / (float)nBackbufferWidth - 1, 1 - top * 2.0f / (float)nBackbufferHeight, - 0, nBackbufferWidth, nBackbufferHeight); + 0, nBackbufferWidth, nBackbufferHeight, color); GL_REPORT_ERRORD(); @@ -1135,43 +1264,42 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons // Render to the real buffer now. glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); // switch to the window backbuffer glBindTexture(GL_TEXTURE_RECTANGLE_ARB, read_texture); - if (applyShader) - { - glBegin(GL_QUADS); - glTexCoord2f(targetRc.left, targetRc.bottom); - glMultiTexCoord2fARB(GL_TEXTURE1, 0, 0); - glVertex2f(-1, -1); - - glTexCoord2f(targetRc.left, targetRc.top); - glMultiTexCoord2fARB(GL_TEXTURE1, 0, 1); - glVertex2f(-1, 1); - - glTexCoord2f(targetRc.right, targetRc.top); - glMultiTexCoord2fARB(GL_TEXTURE1, 1, 1); - glVertex2f( 1, 1); - - glTexCoord2f(targetRc.right, targetRc.bottom); - glMultiTexCoord2fARB(GL_TEXTURE1, 1, 0); - glVertex2f( 1, -1); - glEnd(); - PixelShaderCache::DisableShader(); - } - else - { - glBegin(GL_QUADS); - glTexCoord2f(targetRc.left, targetRc.bottom); - glVertex2f(-1, -1); - - glTexCoord2f(targetRc.left, targetRc.top); - glVertex2f(-1, 1); - - glTexCoord2f(targetRc.right, targetRc.top); - glVertex2f( 1, 1); - glTexCoord2f(targetRc.right, targetRc.bottom); - glVertex2f( 1, -1); - glEnd(); - } + if(!( s_cached_targetRc == targetRc)) { + GLfloat vertices[] = { + -1.0f, -1.0f, 1.0f, + (GLfloat)targetRc.left, (GLfloat)targetRc.bottom, + 0.0f, 0.0f, + + -1.0f, 1.0f, 1.0f, + (GLfloat)targetRc.left, (GLfloat)targetRc.top, + 0.0f, 1.0f, + + 1.0f, 1.0f, 1.0f, + (GLfloat)targetRc.right, (GLfloat)targetRc.top, + 1.0f, 1.0f, + + 1.0f, -1.0f, 1.0f, + (GLfloat)targetRc.right, (GLfloat)targetRc.bottom, + 1.0f, 0.0f + }; + + glBindBuffer(GL_ARRAY_BUFFER, s_Swap_VBO); + glBufferData(GL_ARRAY_BUFFER, 4*7*sizeof(GLfloat), vertices, GL_STREAM_DRAW); + + s_cached_targetRc = targetRc; + } + + glBindVertexArray(s_Swap_VAO[applyShader]); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + + if(applyShader) + PixelShaderCache::DisableShader(); } glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp index 7a62131f90..d90f651a82 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp @@ -56,6 +56,13 @@ namespace OGL { +struct VBOCache { + GLuint vbo; + GLuint vao; + TargetRectangle targetSource; +}; +static std::map s_VBO; + static u32 s_TempFramebuffer = 0; static const GLint c_MinLinearFilter[8] = { @@ -106,6 +113,8 @@ TextureCache::TCacheEntry::~TCacheEntry() TextureCache::TCacheEntry::TCacheEntry() { glGenTextures(1, &texture); + currmode.hex = 0; + currmode1.hex = 0; GL_REPORT_ERRORD(); } @@ -118,7 +127,9 @@ void TextureCache::TCacheEntry::Bind(unsigned int stage) // TODO: is this already done somewhere else? TexMode0 &tm0 = bpmem.tex[stage >> 2].texMode0[stage & 3]; TexMode1 &tm1 = bpmem.tex[stage >> 2].texMode1[stage & 3]; - SetTextureParameters(tm0, tm1); + + if(currmode.hex != tm0.hex || currmode1.hex != tm1.hex) + SetTextureParameters(tm0, tm1); } bool TextureCache::TCacheEntry::Save(const char filename[], unsigned int level) @@ -304,13 +315,57 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo GL_REPORT_ERRORD(); TargetRectangle targetSource = g_renderer->ConvertEFBRectangle(srcRect); - - glBegin(GL_QUADS); - glTexCoord2f((GLfloat)targetSource.left, (GLfloat)targetSource.bottom); glVertex2f(-1, 1); - glTexCoord2f((GLfloat)targetSource.left, (GLfloat)targetSource.top ); glVertex2f(-1, -1); - glTexCoord2f((GLfloat)targetSource.right, (GLfloat)targetSource.top ); glVertex2f( 1, -1); - glTexCoord2f((GLfloat)targetSource.right, (GLfloat)targetSource.bottom); glVertex2f( 1, 1); - glEnd(); + GL_REPORT_ERRORD(); + + // should be unique enough, if not, vbo will "only" be uploaded to much + u64 targetSourceHash = u64(targetSource.left)<<48 | u64(targetSource.top)<<32 | u64(targetSource.right)<<16 | u64(targetSource.bottom); + std::map::iterator vbo_it = s_VBO.find(targetSourceHash); + + if(vbo_it == s_VBO.end()) { + VBOCache item; + item.targetSource.bottom = -1; + item.targetSource.top = -1; + item.targetSource.left = -1; + item.targetSource.right = -1; + glGenBuffers(1, &item.vbo); + glGenVertexArrays(1, &item.vao); + + glBindBuffer(GL_ARRAY_BUFFER, item.vbo); + glBindVertexArray(item.vao); + + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(2, GL_FLOAT, sizeof(GLfloat)*4, 0); + + glClientActiveTexture(GL_TEXTURE0); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer(2, GL_FLOAT, sizeof(GLfloat)*4, (GLfloat*)NULL + 2); + + vbo_it = s_VBO.insert(std::pair(targetSourceHash, item)).first; + } + if(!(vbo_it->second.targetSource == targetSource)) { + GLfloat vertices[] = { + -1.f, 1.f, + (GLfloat)targetSource.left, (GLfloat)targetSource.bottom, + -1.f, -1.f, + (GLfloat)targetSource.left, (GLfloat)targetSource.top, + 1.f, -1.f, + (GLfloat)targetSource.right, (GLfloat)targetSource.top, + 1.f, 1.f, + (GLfloat)targetSource.right, (GLfloat)targetSource.bottom + }; + + glBindBuffer(GL_ARRAY_BUFFER, vbo_it->second.vbo); + glBufferData(GL_ARRAY_BUFFER, 4*4*sizeof(GLfloat), vertices, GL_STREAM_DRAW); + + vbo_it->second.targetSource = targetSource; + } + + glBindVertexArray(vbo_it->second.vao); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); GL_REPORT_ERRORD(); @@ -357,6 +412,9 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo void TextureCache::TCacheEntry::SetTextureParameters(const TexMode0 &newmode, const TexMode1 &newmode1) { + currmode = newmode; + currmode1 = newmode1; + // TODO: not used anywhere TexMode0 mode = newmode; //mode1 = newmode1; @@ -388,13 +446,24 @@ void TextureCache::TCacheEntry::SetTextureParameters(const TexMode0 &newmode, co (float)(1 << g_ActiveConfig.iMaxAnisotropy)); } +TextureCache::TextureCache() +{ +} + + TextureCache::~TextureCache() { - if (s_TempFramebuffer) + for(std::map::iterator it = s_VBO.begin(); it != s_VBO.end(); it++) { + glDeleteBuffers(1, &it->second.vbo); + glDeleteVertexArrays(1, &it->second.vao); + } + s_VBO.clear(); + + if (s_TempFramebuffer) { - glDeleteFramebuffersEXT(1, (GLuint*)&s_TempFramebuffer); - s_TempFramebuffer = 0; - } + glDeleteFramebuffersEXT(1, (GLuint*)&s_TempFramebuffer); + s_TempFramebuffer = 0; + } } void TextureCache::DisableStage(unsigned int stage) diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h index 30f44b797d..dc560e098b 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.h @@ -32,6 +32,7 @@ namespace OGL class TextureCache : public ::TextureCache { public: + TextureCache(); static void DisableStage(unsigned int stage); private: @@ -66,6 +67,8 @@ private: private: void SetTextureParameters(const TexMode0 &newmode, const TexMode1 &newmode1); + TexMode0 currmode; + TexMode1 currmode1; }; ~TextureCache(); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp b/Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp index c73d3abdbf..54a2e2464c 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureConverter.cpp @@ -57,6 +57,14 @@ static FRAGMENTSHADER s_yuyvToRgbProgram; const u32 NUM_ENCODING_PROGRAMS = 64; static FRAGMENTSHADER s_encodingPrograms[NUM_ENCODING_PROGRAMS]; +static GLuint s_encode_VBO = 0; +static GLuint s_encode_VAO = 0; +static GLuint s_decode_VBO = 0; +static GLuint s_decode_VAO = 0; +static TargetRectangle s_cached_sourceRc; +static int s_cached_srcWidth = 0; +static int s_cached_srcHeight = 0; + void CreateRgbToYuyvProgram() { // Output is BGRA because that is slightly faster than RGBA. @@ -140,9 +148,40 @@ FRAGMENTSHADER &GetOrCreateEncodingShader(u32 format) void Init() { glGenFramebuffersEXT(1, &s_texConvFrameBuffer); + + glGenBuffers(1, &s_encode_VBO ); + glGenVertexArrays(1, &s_encode_VAO ); + glBindBuffer(GL_ARRAY_BUFFER, s_encode_VBO ); + glBindVertexArray( s_encode_VAO ); + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(2, GL_FLOAT, 4*sizeof(GLfloat), NULL); + glClientActiveTexture(GL_TEXTURE0); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer(2, GL_FLOAT, 4*sizeof(GLfloat), (GLfloat*)NULL + 2); + s_cached_sourceRc.top = -1; + s_cached_sourceRc.bottom = -1; + s_cached_sourceRc.left = -1; + s_cached_sourceRc.right = -1; + + glGenBuffers(1, &s_decode_VBO ); + glGenVertexArrays(1, &s_decode_VAO ); + glBindBuffer(GL_ARRAY_BUFFER, s_decode_VBO ); + glBindVertexArray( s_decode_VAO ); + s_cached_srcWidth = -1; + s_cached_srcHeight = -1; + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(2, GL_FLOAT, sizeof(GLfloat)*4, NULL); + glClientActiveTexture(GL_TEXTURE0); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer(2, GL_FLOAT, sizeof(GLfloat)*4, (GLfloat*)NULL+2); + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); glGenRenderbuffersEXT(1, &s_dstRenderBuffer); glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, s_dstRenderBuffer); + glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGBA, renderBufferWidth, renderBufferHeight); s_srcTextureWidth = 0; @@ -162,6 +201,10 @@ void Shutdown() glDeleteTextures(1, &s_srcTexture); glDeleteRenderbuffersEXT(1, &s_dstRenderBuffer); glDeleteFramebuffersEXT(1, &s_texConvFrameBuffer); + glDeleteBuffers(1, &s_encode_VBO ); + glDeleteVertexArrays(1, &s_encode_VAO ); + glDeleteBuffers(1, &s_decode_VBO ); + glDeleteVertexArrays(1, &s_decode_VAO ); s_rgbToYuyvProgram.Destroy(); s_yuyvToRgbProgram.Destroy(); @@ -213,13 +256,31 @@ void EncodeToRamUsingShader(FRAGMENTSHADER& shader, GLuint srcTexture, const Tar PixelShaderCache::SetCurrentShader(shader.glprogid); - // Draw... - glBegin(GL_QUADS); - glTexCoord2f((float)sourceRc.left, (float)sourceRc.top); glVertex2f(-1,-1); - glTexCoord2f((float)sourceRc.left, (float)sourceRc.bottom); glVertex2f(-1,1); - glTexCoord2f((float)sourceRc.right, (float)sourceRc.bottom); glVertex2f(1,1); - glTexCoord2f((float)sourceRc.right, (float)sourceRc.top); glVertex2f(1,-1); - glEnd(); + GL_REPORT_ERRORD(); + if(!(s_cached_sourceRc == sourceRc)) { + GLfloat vertices[] = { + -1.f, -1.f, + (float)sourceRc.left, (float)sourceRc.top, + -1.f, 1.f, + (float)sourceRc.left, (float)sourceRc.bottom, + 1.f, 1.f, + (float)sourceRc.right, (float)sourceRc.bottom, + 1.f, -1.f, + (float)sourceRc.right, (float)sourceRc.top + }; + glBindBuffer(GL_ARRAY_BUFFER, s_encode_VBO ); + glBufferData(GL_ARRAY_BUFFER, 4*4*sizeof(GLfloat), vertices, GL_STREAM_DRAW); + + s_cached_sourceRc = sourceRc; + } + + glBindVertexArray( s_encode_VAO ); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + GL_REPORT_ERRORD(); // .. and then read back the results. @@ -375,18 +436,39 @@ void DecodeToTexture(u32 xfbAddr, int srcWidth, int srcHeight, GLuint destTextur PixelShaderCache::SetCurrentShader(s_yuyvToRgbProgram.glprogid); GL_REPORT_ERRORD(); - - glBegin(GL_QUADS); - glTexCoord2f((float)srcFmtWidth, (float)srcHeight); glVertex2f(1,-1); - glTexCoord2f((float)srcFmtWidth, 0); glVertex2f(1,1); - glTexCoord2f(0, 0); glVertex2f(-1,1); - glTexCoord2f(0, (float)srcHeight); glVertex2f(-1,-1); - glEnd(); + + if(s_cached_srcHeight != srcHeight || s_cached_srcWidth != srcWidth) { + GLfloat vertices[] = { + 1.f, -1.f, + (float)srcFmtWidth, (float)srcHeight, + 1.f, 1.f, + (float)srcFmtWidth, 0.f, + -1.f, 1.f, + 0.f, 0.f, + -1.f, -1.f, + 0.f, (float)srcHeight + }; + + glBindBuffer(GL_ARRAY_BUFFER, s_decode_VBO ); + glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*4*4, vertices, GL_STREAM_DRAW); + + s_cached_srcHeight = srcHeight; + s_cached_srcWidth = srcWidth; + } + + glBindVertexArray( s_decode_VAO ); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + + // TODO: this after merging with graphic_update + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + + GL_REPORT_ERRORD(); // reset state glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0); glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_RECTANGLE_ARB, 0, 0); - TextureCache::DisableStage(0); + TextureCache::DisableStage(0); VertexShaderManager::SetViewportChanged(); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp index ce33247d7c..54d433d546 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp @@ -64,9 +64,6 @@ VertexManager::VertexManager() // max_Index_size = MAXIBUFFERSIZE; // //GL_REPORT_ERRORD(); - - glEnableClientState(GL_VERTEX_ARRAY); - GL_REPORT_ERRORD(); } void VertexManager::CreateDeviceObjects() diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp index fb472cfdba..9d2ad1e254 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWRenderer.cpp @@ -98,12 +98,11 @@ void SWRenderer::RenderText(const char* pstr, int left, int top, u32 color) #ifndef USE_GLES int nBackbufferWidth = (int)GLInterface->GetBackBufferWidth(); int nBackbufferHeight = (int)GLInterface->GetBackBufferHeight(); - glColor4f(((color>>16) & 0xff)/255.0f, ((color>> 8) & 0xff)/255.0f, - ((color>> 0) & 0xff)/255.0f, ((color>>24) & 0xFF)/255.0f); + s_pfont->printMultilineText(pstr, left * 2.0f / (float)nBackbufferWidth - 1, 1 - top * 2.0f / (float)nBackbufferHeight, - 0, nBackbufferWidth, nBackbufferHeight); + 0, nBackbufferWidth, nBackbufferHeight, color); #endif } -- cgit v1.2.3