From b8ef050d649a32c42b7bcef062f026ccdc5104ed Mon Sep 17 00:00:00 2001 From: kichik Date: Fri, 24 Mar 2006 21:32:46 +0000 Subject: [PATCH] tests for CResourceEditor and CDialogTemplate git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4609 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/Tests/DialogTemplate.cpp | 51 ++ Source/Tests/ResourceEditor.cpp | 832 ++++++++++++++++++++++++++++++++ Source/Tests/SConscript | 7 + 3 files changed, 890 insertions(+) create mode 100644 Source/Tests/DialogTemplate.cpp create mode 100644 Source/Tests/ResourceEditor.cpp diff --git a/Source/Tests/DialogTemplate.cpp b/Source/Tests/DialogTemplate.cpp new file mode 100644 index 00000000..8ac484a9 --- /dev/null +++ b/Source/Tests/DialogTemplate.cpp @@ -0,0 +1,51 @@ +#include +#include "../DialogTemplate.h" + +#include + +class CDialogTemplateTest : public CppUnit::TestFixture { + + CPPUNIT_TEST_SUITE( CDialogTemplateTest ); + CPPUNIT_TEST( testCorrectness ); + CPPUNIT_TEST_SUITE_END(); + +public: + void testCorrectness() { + unsigned char original_dialog[184] = { + 1, 0, 255, 255, 0, 0, 0, 0, 0, 0, + 0, 0, 72, 4, 0, 64, 3, 0, 0, 0, 0, + 0, 10, 1, 130, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 1, 77, 0, 83, 0, 32, + 0, 83, 0, 104, 0, 101, 0, 108, 0, 108, 0, + 32, 0, 68, 0, 108, 0, 103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 80, + 0, 0, 0, 0, 22, 0, 20, 0, 7, 4, 0, + 0, 255, 255, 130, 0, 255, 255, 103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 80, 25, 0, 0, 0, 241, 0, 23, 0, + 238, 3, 0, 0, 255, 255, 130, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, + 161, 80, 0, 0, 24, 0, 10, 1, 105, 0, 232, + 3, 0, 0, 82, 0, 105, 0, 99, 0, 104, 0, + 69, 0, 100, 0, 105, 0, 116, 0, 50, 0, 48, + 0, 65, 0, 0, 0, 0, 0, 0, 0 + }; + + CDialogTemplate dt(original_dialog, 1252); + + DWORD dwSize; + unsigned char *saved_dialog = dt.Save(dwSize); + + FILE *f = fopen("F:\\NSIS\\Source\\test2.dlg", "wb"); + fwrite(saved_dialog, dwSize, 1, f); + fclose(f); + + CPPUNIT_ASSERT_EQUAL( (DWORD) sizeof(original_dialog), dwSize ); + CPPUNIT_ASSERT_EQUAL( 0, memcmp(saved_dialog, original_dialog, dwSize) ); + + delete [] saved_dialog; + } + +}; + +CPPUNIT_TEST_SUITE_REGISTRATION( CDialogTemplateTest ); diff --git a/Source/Tests/ResourceEditor.cpp b/Source/Tests/ResourceEditor.cpp new file mode 100644 index 00000000..3448195a --- /dev/null +++ b/Source/Tests/ResourceEditor.cpp @@ -0,0 +1,832 @@ +#include +#include "../ResourceEditor.h" + +#include + +class CResourceEditorTest : public CppUnit::TestFixture { + + CPPUNIT_TEST_SUITE( CResourceEditorTest ); + CPPUNIT_TEST( testCorrectness ); + CPPUNIT_TEST_SUITE_END(); + +public: + void testCorrectness() { + extern unsigned char original_pe[8704]; + + CResourceEditor re(original_pe, sizeof(original_pe)); + + DWORD size; + + // get size + size = re.Save(NULL, size); + unsigned char *saved_pe = new unsigned char[size]; + + // save + int rc = re.Save(saved_pe, size); + CPPUNIT_ASSERT_EQUAL( rc, 0 ); + + // compare + CPPUNIT_ASSERT_EQUAL( (DWORD) sizeof(original_pe), size ); + CPPUNIT_ASSERT_EQUAL( 0, memcmp(saved_pe, original_pe, size) ); + + delete [] saved_pe; + } + +}; + +CPPUNIT_TEST_SUITE_REGISTRATION( CResourceEditorTest ); + +unsigned char original_pe[8704] = { + 77, 90, 144, 0, 3, 0, 0, 0, 4, 0, + 0, 0, 255, 255, 0, 0, 184, 0, 0, 0, 0, + 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 14, + 31, 186, 14, 0, 180, 9, 205, 33, 184, 1, 76, + 205, 33, 84, 104, 105, 115, 32, 112, 114, 111, 103, + 114, 97, 109, 32, 99, 97, 110, 110, 111, 116, 32, + 98, 101, 32, 114, 117, 110, 32, 105, 110, 32, 68, + 79, 83, 32, 109, 111, 100, 101, 46, 13, 13, 10, + 36, 0, 0, 0, 0, 0, 0, 0, 252, 249, 48, + 199, 184, 152, 94, 148, 184, 152, 94, 148, 184, 152, + 94, 148, 184, 152, 95, 148, 168, 152, 94, 148, 59, + 144, 3, 148, 189, 152, 94, 148, 236, 187, 111, 148, + 185, 152, 94, 148, 127, 158, 88, 148, 185, 152, 94, + 148, 82, 105, 99, 104, 184, 152, 94, 148, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 80, 69, 0, 0, 76, 1, 4, 0, + 86, 34, 23, 68, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 15, 1, 11, 1, 6, 0, 0, 4, + 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 126, + 18, 0, 0, 0, 16, 0, 0, 0, 32, 0, 0, + 0, 0, 64, 0, 0, 16, 0, 0, 0, 2, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 16, 0, 0, 16, 0, 0, 0, 0, 16, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, + 32, 0, 0, 60, 0, 0, 0, 0, 80, 0, 0, + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 116, + 101, 120, 116, 0, 0, 0, 160, 2, 0, 0, 0, + 16, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 0, 0, 96, 46, 114, 100, 97, 116, 97, + 0, 0, 240, 1, 0, 0, 0, 32, 0, 0, 0, + 2, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, + 64, 46, 100, 97, 116, 97, 0, 0, 0, 100, 18, + 0, 0, 0, 48, 0, 0, 0, 20, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 0, 0, 192, 46, 114, 115, + 114, 99, 0, 0, 0, 0, 16, 0, 0, 0, 80, + 0, 0, 0, 4, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 139, 68, 36, 8, 129, 236, 12, 2, 0, + 0, 45, 16, 1, 0, 0, 83, 85, 86, 87, 15, + 132, 234, 1, 0, 0, 72, 15, 133, 79, 2, 0, + 0, 139, 132, 36, 40, 2, 0, 0, 102, 61, 2, + 0, 117, 28, 51, 219, 83, 255, 180, 36, 36, 2, + 0, 0, 255, 21, 60, 32, 64, 0, 83, 255, 21, + 56, 32, 64, 0, 233, 38, 2, 0, 0, 139, 200, + 193, 233, 16, 102, 131, 249, 1, 15, 133, 178, 0, + 0, 0, 51, 219, 190, 71, 1, 0, 0, 83, 83, + 189, 234, 3, 0, 0, 86, 85, 255, 180, 36, 48, + 2, 0, 0, 255, 21, 52, 32, 64, 0, 131, 248, + 255, 15, 132, 241, 1, 0, 0, 83, 83, 191, 233, + 3, 0, 0, 86, 87, 255, 180, 36, 48, 2, 0, + 0, 255, 21, 52, 32, 64, 0, 131, 248, 255, 15, + 132, 210, 1, 0, 0, 83, 83, 86, 87, 255, 180, + 36, 48, 2, 0, 0, 139, 61, 52, 32, 64, 0, + 255, 215, 15, 183, 4, 197, 104, 50, 64, 0, 83, + 83, 86, 85, 255, 180, 36, 48, 2, 0, 0, 193, + 224, 10, 137, 68, 36, 36, 255, 215, 15, 183, 4, + 197, 0, 48, 64, 0, 139, 76, 36, 16, 11, 200, + 141, 68, 36, 28, 81, 104, 84, 66, 64, 0, 80, + 255, 21, 48, 32, 64, 0, 131, 196, 12, 141, 68, + 36, 28, 80, 104, 235, 3, 0, 0, 255, 180, 36, + 40, 2, 0, 0, 255, 21, 44, 32, 64, 0, 233, + 101, 1, 0, 0, 102, 61, 1, 0, 15, 133, 91, + 1, 0, 0, 51, 219, 190, 71, 1, 0, 0, 83, + 83, 189, 234, 3, 0, 0, 86, 85, 255, 180, 36, + 48, 2, 0, 0, 255, 21, 52, 32, 64, 0, 131, + 248, 255, 15, 132, 53, 1, 0, 0, 83, 83, 191, + 233, 3, 0, 0, 86, 87, 255, 180, 36, 48, 2, + 0, 0, 255, 21, 52, 32, 64, 0, 131, 248, 255, + 15, 132, 22, 1, 0, 0, 106, 16, 106, 2, 255, + 21, 4, 32, 64, 0, 59, 195, 137, 68, 36, 16, + 15, 132, 0, 1, 0, 0, 80, 255, 21, 0, 32, + 64, 0, 83, 83, 86, 87, 255, 180, 36, 48, 2, + 0, 0, 139, 61, 52, 32, 64, 0, 137, 68, 36, + 44, 255, 215, 15, 183, 4, 197, 104, 50, 64, 0, + 83, 83, 86, 85, 255, 180, 36, 48, 2, 0, 0, + 193, 224, 10, 137, 68, 36, 40, 255, 215, 15, 183, + 4, 197, 0, 48, 64, 0, 139, 76, 36, 20, 11, + 200, 81, 104, 80, 66, 64, 0, 255, 116, 36, 32, + 255, 21, 48, 32, 64, 0, 131, 196, 12, 255, 116, + 36, 16, 255, 21, 16, 32, 64, 0, 255, 180, 36, + 32, 2, 0, 0, 255, 21, 40, 32, 64, 0, 133, + 192, 15, 132, 134, 0, 0, 0, 255, 21, 36, 32, + 64, 0, 255, 116, 36, 16, 106, 1, 255, 21, 32, + 32, 64, 0, 255, 21, 28, 32, 64, 0, 235, 108, + 51, 219, 83, 83, 104, 128, 0, 0, 0, 255, 180, + 36, 44, 2, 0, 0, 255, 21, 24, 32, 64, 0, + 139, 53, 52, 32, 64, 0, 51, 255, 189, 234, 3, + 0, 0, 255, 183, 4, 48, 64, 0, 83, 104, 67, + 1, 0, 0, 85, 255, 180, 36, 48, 2, 0, 0, + 255, 214, 131, 199, 8, 129, 255, 104, 2, 0, 0, + 114, 223, 51, 237, 191, 233, 3, 0, 0, 255, 181, + 108, 50, 64, 0, 83, 104, 67, 1, 0, 0, 87, + 255, 180, 36, 48, 2, 0, 0, 255, 214, 131, 197, + 8, 129, 253, 224, 2, 0, 0, 114, 223, 95, 94, + 93, 51, 192, 91, 129, 196, 12, 2, 0, 0, 194, + 16, 0, 106, 0, 104, 0, 16, 64, 0, 106, 0, + 106, 101, 106, 0, 255, 21, 12, 32, 64, 0, 80, + 255, 21, 64, 32, 64, 0, 106, 0, 255, 21, 8, + 32, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 220, 32, 0, 0, 234, 32, 0, 0, + 248, 32, 0, 0, 6, 33, 0, 0, 204, 32, 0, + 0, 0, 0, 0, 0, 40, 33, 0, 0, 56, 33, + 0, 0, 74, 33, 0, 0, 94, 33, 0, 0, 112, + 33, 0, 0, 128, 33, 0, 0, 146, 33, 0, 0, + 158, 33, 0, 0, 180, 33, 0, 0, 198, 33, 0, + 0, 210, 33, 0, 0, 0, 0, 0, 0, 132, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, + 33, 0, 0, 0, 32, 0, 0, 156, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 33, 0, + 0, 24, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 220, 32, 0, 0, 234, 32, 0, 0, + 248, 32, 0, 0, 6, 33, 0, 0, 204, 32, 0, + 0, 0, 0, 0, 0, 40, 33, 0, 0, 56, 33, + 0, 0, 74, 33, 0, 0, 94, 33, 0, 0, 112, + 33, 0, 0, 128, 33, 0, 0, 146, 33, 0, 0, + 158, 33, 0, 0, 180, 33, 0, 0, 198, 33, 0, + 0, 210, 33, 0, 0, 0, 0, 0, 0, 0, 2, + 71, 108, 111, 98, 97, 108, 85, 110, 108, 111, 99, + 107, 0, 0, 249, 1, 71, 108, 111, 98, 97, 108, + 76, 111, 99, 107, 0, 0, 238, 1, 71, 108, 111, + 98, 97, 108, 65, 108, 108, 111, 99, 0, 175, 0, + 69, 120, 105, 116, 80, 114, 111, 99, 101, 115, 115, + 0, 119, 1, 71, 101, 116, 77, 111, 100, 117, 108, + 101, 72, 97, 110, 100, 108, 101, 65, 0, 0, 75, + 69, 82, 78, 69, 76, 51, 50, 46, 100, 108, 108, + 0, 0, 58, 2, 83, 101, 110, 100, 77, 101, 115, + 115, 97, 103, 101, 65, 0, 0, 66, 0, 67, 108, + 111, 115, 101, 67, 108, 105, 112, 98, 111, 97, 114, + 100, 0, 0, 73, 2, 83, 101, 116, 67, 108, 105, + 112, 98, 111, 97, 114, 100, 68, 97, 116, 97, 0, + 0, 193, 0, 69, 109, 112, 116, 121, 67, 108, 105, + 112, 98, 111, 97, 114, 100, 0, 0, 245, 1, 79, + 112, 101, 110, 67, 108, 105, 112, 98, 111, 97, 114, + 100, 0, 82, 2, 83, 101, 116, 68, 108, 103, 73, + 116, 101, 109, 84, 101, 120, 116, 65, 0, 213, 2, + 119, 115, 112, 114, 105, 110, 116, 102, 65, 0, 53, + 2, 83, 101, 110, 100, 68, 108, 103, 73, 116, 101, + 109, 77, 101, 115, 115, 97, 103, 101, 65, 0, 3, + 2, 80, 111, 115, 116, 81, 117, 105, 116, 77, 101, + 115, 115, 97, 103, 101, 0, 198, 0, 69, 110, 100, + 68, 105, 97, 108, 111, 103, 0, 158, 0, 68, 105, + 97, 108, 111, 103, 66, 111, 120, 80, 97, 114, 97, + 109, 65, 0, 85, 83, 69, 82, 51, 50, 46, 100, + 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 66, 64, 0, 127, 0, 0, 0, 48, + 66, 64, 0, 54, 0, 0, 0, 32, 66, 64, 0, + 28, 0, 0, 0, 16, 66, 64, 0, 1, 0, 0, + 0, 4, 66, 64, 0, 43, 0, 0, 0, 244, 65, + 64, 0, 77, 0, 0, 0, 228, 65, 64, 0, 44, + 0, 0, 0, 216, 65, 64, 0, 45, 0, 0, 0, + 204, 65, 64, 0, 35, 0, 0, 0, 188, 65, 64, + 0, 69, 0, 0, 0, 172, 65, 64, 0, 2, 0, + 0, 0, 156, 65, 64, 0, 3, 0, 0, 0, 140, + 65, 64, 0, 4, 0, 0, 0, 124, 65, 64, 0, + 26, 0, 0, 0, 108, 65, 64, 0, 5, 0, 0, + 0, 96, 65, 64, 0, 6, 0, 0, 0, 84, 65, + 64, 0, 101, 0, 0, 0, 72, 65, 64, 0, 19, + 0, 0, 0, 60, 65, 64, 0, 9, 0, 0, 0, + 44, 65, 64, 0, 37, 0, 0, 0, 28, 65, 64, + 0, 56, 0, 0, 0, 12, 65, 64, 0, 41, 0, + 0, 0, 0, 65, 64, 0, 11, 0, 0, 0, 240, + 64, 64, 0, 12, 0, 0, 0, 228, 64, 64, 0, + 86, 0, 0, 0, 212, 64, 64, 0, 55, 0, 0, + 0, 196, 64, 64, 0, 7, 0, 0, 0, 184, 64, + 64, 0, 8, 0, 0, 0, 172, 64, 64, 0, 71, + 0, 0, 0, 156, 64, 64, 0, 13, 0, 0, 0, + 144, 64, 64, 0, 57, 0, 0, 0, 132, 64, 64, + 0, 14, 0, 0, 0, 116, 64, 64, 0, 15, 0, + 0, 0, 100, 64, 64, 0, 33, 0, 0, 0, 84, + 64, 64, 0, 16, 0, 0, 0, 68, 64, 64, 0, + 17, 0, 0, 0, 52, 64, 64, 0, 75, 0, 0, + 0, 36, 64, 64, 0, 96, 0, 0, 0, 20, 64, + 64, 0, 63, 0, 0, 0, 8, 64, 64, 0, 87, + 0, 0, 0, 248, 63, 64, 0, 18, 0, 0, 0, + 236, 63, 64, 0, 64, 0, 0, 0, 224, 63, 64, + 0, 38, 0, 0, 0, 208, 63, 64, 0, 39, 0, + 0, 0, 192, 63, 64, 0, 47, 0, 0, 0, 176, + 63, 64, 0, 62, 0, 0, 0, 164, 63, 64, 0, + 76, 0, 0, 0, 148, 63, 64, 0, 88, 0, 0, + 0, 132, 63, 64, 0, 78, 0, 0, 0, 116, 63, + 64, 0, 80, 0, 0, 0, 100, 63, 64, 0, 97, + 0, 0, 0, 88, 63, 64, 0, 20, 0, 0, 0, + 72, 63, 64, 0, 72, 0, 0, 0, 60, 63, 64, + 0, 21, 0, 0, 0, 48, 63, 64, 0, 22, 0, + 0, 0, 32, 63, 64, 0, 70, 0, 0, 0, 16, + 63, 64, 0, 24, 0, 0, 0, 0, 63, 64, 0, + 25, 0, 0, 0, 240, 62, 64, 0, 79, 0, 0, + 0, 224, 62, 64, 0, 26, 0, 0, 0, 208, 62, + 64, 0, 89, 0, 0, 0, 196, 62, 64, 0, 27, + 0, 0, 0, 184, 62, 64, 0, 36, 0, 0, 0, + 168, 62, 64, 0, 10, 0, 0, 0, 152, 62, 64, + 0, 65, 0, 0, 0, 136, 62, 64, 0, 29, 0, + 0, 0, 120, 62, 64, 0, 90, 0, 0, 0, 108, + 62, 64, 0, 73, 0, 0, 0, 96, 62, 64, 0, + 68, 0, 0, 0, 84, 62, 64, 0, 74, 0, 0, + 0, 72, 62, 64, 0, 30, 0, 0, 0, 60, 62, + 64, 0, 31, 0, 0, 0, 44, 62, 64, 0, 34, + 0, 0, 0, 28, 62, 64, 0, 32, 0, 0, 0, + 16, 62, 64, 0, 67, 0, 0, 0, 4, 62, 64, + 0, 42, 0, 0, 0, 244, 61, 64, 0, 0, 0, + 0, 0, 228, 61, 64, 0, 1, 0, 0, 0, 212, + 61, 64, 0, 2, 0, 0, 0, 192, 61, 64, 0, + 1, 0, 0, 0, 164, 61, 64, 0, 2, 0, 0, + 0, 144, 61, 64, 0, 3, 0, 0, 0, 120, 61, + 64, 0, 4, 0, 0, 0, 96, 61, 64, 0, 5, + 0, 0, 0, 72, 61, 64, 0, 6, 0, 0, 0, + 48, 61, 64, 0, 7, 0, 0, 0, 24, 61, 64, + 0, 8, 0, 0, 0, 4, 61, 64, 0, 9, 0, + 0, 0, 236, 60, 64, 0, 10, 0, 0, 0, 212, + 60, 64, 0, 11, 0, 0, 0, 188, 60, 64, 0, + 12, 0, 0, 0, 164, 60, 64, 0, 13, 0, 0, + 0, 140, 60, 64, 0, 14, 0, 0, 0, 120, 60, + 64, 0, 15, 0, 0, 0, 96, 60, 64, 0, 16, + 0, 0, 0, 72, 60, 64, 0, 1, 0, 0, 0, + 52, 60, 64, 0, 2, 0, 0, 0, 28, 60, 64, + 0, 1, 0, 0, 0, 0, 60, 64, 0, 2, 0, + 0, 0, 228, 59, 64, 0, 3, 0, 0, 0, 200, + 59, 64, 0, 4, 0, 0, 0, 172, 59, 64, 0, + 5, 0, 0, 0, 148, 59, 64, 0, 1, 0, 0, + 0, 132, 59, 64, 0, 2, 0, 0, 0, 108, 59, + 64, 0, 1, 0, 0, 0, 88, 59, 64, 0, 2, + 0, 0, 0, 68, 59, 64, 0, 3, 0, 0, 0, + 48, 59, 64, 0, 4, 0, 0, 0, 28, 59, 64, + 0, 5, 0, 0, 0, 8, 59, 64, 0, 6, 0, + 0, 0, 240, 58, 64, 0, 7, 0, 0, 0, 208, + 58, 64, 0, 8, 0, 0, 0, 184, 58, 64, 0, + 9, 0, 0, 0, 156, 58, 64, 0, 10, 0, 0, + 0, 132, 58, 64, 0, 11, 0, 0, 0, 104, 58, + 64, 0, 12, 0, 0, 0, 76, 58, 64, 0, 13, + 0, 0, 0, 48, 58, 64, 0, 1, 0, 0, 0, + 32, 58, 64, 0, 2, 0, 0, 0, 8, 58, 64, + 0, 3, 0, 0, 0, 240, 57, 64, 0, 4, 0, + 0, 0, 216, 57, 64, 0, 5, 0, 0, 0, 188, + 57, 64, 0, 6, 0, 0, 0, 164, 57, 64, 0, + 1, 0, 0, 0, 148, 57, 64, 0, 2, 0, 0, + 0, 124, 57, 64, 0, 3, 0, 0, 0, 100, 57, + 64, 0, 4, 0, 0, 0, 72, 57, 64, 0, 5, + 0, 0, 0, 40, 57, 64, 0, 1, 0, 0, 0, + 24, 57, 64, 0, 2, 0, 0, 0, 0, 57, 64, + 0, 2, 0, 0, 0, 232, 56, 64, 0, 1, 0, + 0, 0, 216, 56, 64, 0, 1, 0, 0, 0, 196, + 56, 64, 0, 1, 0, 0, 0, 172, 56, 64, 0, + 2, 0, 0, 0, 140, 56, 64, 0, 2, 0, 0, + 0, 116, 56, 64, 0, 1, 0, 0, 0, 88, 56, + 64, 0, 2, 0, 0, 0, 60, 56, 64, 0, 2, + 0, 0, 0, 40, 56, 64, 0, 1, 0, 0, 0, + 8, 56, 64, 0, 2, 0, 0, 0, 240, 55, 64, + 0, 3, 0, 0, 0, 212, 55, 64, 0, 1, 0, + 0, 0, 196, 55, 64, 0, 2, 0, 0, 0, 172, + 55, 64, 0, 3, 0, 0, 0, 148, 55, 64, 0, + 4, 0, 0, 0, 120, 55, 64, 0, 5, 0, 0, + 0, 92, 55, 64, 0, 6, 0, 0, 0, 68, 55, + 64, 0, 7, 0, 0, 0, 32, 55, 64, 0, 8, + 0, 0, 0, 4, 55, 64, 0, 9, 0, 0, 0, + 232, 54, 64, 0, 10, 0, 0, 0, 208, 54, 64, + 0, 11, 0, 0, 0, 180, 54, 64, 0, 12, 0, + 0, 0, 156, 54, 64, 0, 13, 0, 0, 0, 132, + 54, 64, 0, 14, 0, 0, 0, 108, 54, 64, 0, + 15, 0, 0, 0, 80, 54, 64, 0, 16, 0, 0, + 0, 56, 54, 64, 0, 17, 0, 0, 0, 28, 54, + 64, 0, 18, 0, 0, 0, 0, 54, 64, 0, 19, + 0, 0, 0, 228, 53, 64, 0, 20, 0, 0, 0, + 200, 53, 64, 0, 1, 0, 0, 0, 184, 53, 64, + 0, 2, 0, 0, 0, 160, 53, 64, 0, 1, 0, + 0, 0, 136, 53, 64, 0, 2, 0, 0, 0, 116, + 53, 64, 0, 1, 0, 0, 0, 96, 53, 64, 0, + 2, 0, 0, 0, 72, 53, 64, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 85, 90, 66, 69, 75, 95, + 67, 89, 82, 73, 76, 76, 73, 67, 0, 0, 83, + 85, 66, 76, 65, 78, 71, 95, 85, 90, 66, 69, + 75, 95, 76, 65, 84, 73, 78, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 85, 82, 68, 85, 95, 73, + 78, 68, 73, 65, 0, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 85, 82, 68, 85, 95, 80, 65, 75, + 73, 83, 84, 65, 78, 0, 0, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 83, 87, 69, 68, 73, 83, + 72, 95, 70, 73, 78, 76, 65, 78, 68, 0, 83, + 85, 66, 76, 65, 78, 71, 95, 83, 87, 69, 68, + 73, 83, 72, 0, 83, 85, 66, 76, 65, 78, 71, + 95, 83, 80, 65, 78, 73, 83, 72, 95, 80, 85, + 69, 82, 84, 79, 95, 82, 73, 67, 79, 0, 83, + 85, 66, 76, 65, 78, 71, 95, 83, 80, 65, 78, + 73, 83, 72, 95, 78, 73, 67, 65, 82, 65, 71, + 85, 65, 0, 0, 0, 83, 85, 66, 76, 65, 78, + 71, 95, 83, 80, 65, 78, 73, 83, 72, 95, 72, + 79, 78, 68, 85, 82, 65, 83, 0, 0, 0, 0, + 83, 85, 66, 76, 65, 78, 71, 95, 83, 80, 65, + 78, 73, 83, 72, 95, 69, 76, 95, 83, 65, 76, + 86, 65, 68, 79, 82, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 83, 80, 65, 78, 73, 83, 72, 95, + 66, 79, 76, 73, 86, 73, 65, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 83, 80, 65, 78, 73, 83, + 72, 95, 80, 65, 82, 65, 71, 85, 65, 89, 0, + 0, 0, 0, 83, 85, 66, 76, 65, 78, 71, 95, + 83, 80, 65, 78, 73, 83, 72, 95, 85, 82, 85, + 71, 85, 65, 89, 0, 83, 85, 66, 76, 65, 78, + 71, 95, 83, 80, 65, 78, 73, 83, 72, 95, 67, + 72, 73, 76, 69, 0, 0, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 83, 80, 65, 78, 73, 83, 72, + 95, 69, 67, 85, 65, 68, 79, 82, 0, 83, 85, + 66, 76, 65, 78, 71, 95, 83, 80, 65, 78, 73, + 83, 72, 95, 65, 82, 71, 69, 78, 84, 73, 78, + 65, 0, 0, 0, 83, 85, 66, 76, 65, 78, 71, + 95, 83, 80, 65, 78, 73, 83, 72, 95, 80, 69, + 82, 85, 0, 0, 0, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 83, 80, 65, 78, 73, 83, 72, 95, + 67, 79, 76, 79, 77, 66, 73, 65, 0, 0, 0, + 0, 83, 85, 66, 76, 65, 78, 71, 95, 83, 80, + 65, 78, 73, 83, 72, 95, 86, 69, 78, 69, 90, + 85, 69, 76, 65, 0, 0, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 83, 80, 65, 78, 73, 83, 72, + 95, 68, 79, 77, 73, 78, 73, 67, 65, 78, 95, + 82, 69, 80, 85, 66, 76, 73, 67, 0, 0, 83, + 85, 66, 76, 65, 78, 71, 95, 83, 80, 65, 78, + 73, 83, 72, 95, 80, 65, 78, 65, 77, 65, 0, + 0, 83, 85, 66, 76, 65, 78, 71, 95, 83, 80, + 65, 78, 73, 83, 72, 95, 67, 79, 83, 84, 65, + 95, 82, 73, 67, 65, 0, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 83, 80, 65, 78, 73, 83, 72, + 95, 71, 85, 65, 84, 69, 77, 65, 76, 65, 0, + 0, 0, 83, 85, 66, 76, 65, 78, 71, 95, 83, + 80, 65, 78, 73, 83, 72, 95, 77, 79, 68, 69, + 82, 78, 0, 0, 83, 85, 66, 76, 65, 78, 71, + 95, 83, 80, 65, 78, 73, 83, 72, 95, 77, 69, + 88, 73, 67, 65, 78, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 83, 80, 65, 78, 73, 83, 72, 0, + 83, 85, 66, 76, 65, 78, 71, 95, 83, 69, 82, + 66, 73, 65, 78, 95, 67, 89, 82, 73, 76, 76, + 73, 67, 0, 0, 0, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 83, 69, 82, 66, 73, 65, 78, 95, + 76, 65, 84, 73, 78, 0, 0, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 80, 79, 82, 84, 85, 71, + 85, 69, 83, 69, 95, 66, 82, 65, 90, 73, 76, + 73, 65, 78, 0, 0, 0, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 80, 79, 82, 84, 85, 71, 85, + 69, 83, 69, 0, 0, 83, 85, 66, 76, 65, 78, + 71, 95, 78, 79, 82, 87, 69, 71, 73, 65, 78, + 95, 78, 89, 78, 79, 82, 83, 75, 0, 0, 0, + 83, 85, 66, 76, 65, 78, 71, 95, 78, 79, 82, + 87, 69, 71, 73, 65, 78, 95, 66, 79, 75, 77, + 65, 76, 0, 0, 0, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 78, 69, 80, 65, 76, 73, 95, 73, + 78, 68, 73, 65, 0, 0, 0, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 77, 65, 76, 65, 89, 95, + 66, 82, 85, 78, 69, 73, 95, 68, 65, 82, 85, + 83, 83, 65, 76, 65, 77, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 77, 65, 76, 65, 89, 95, 77, + 65, 76, 65, 89, 83, 73, 65, 0, 0, 83, 85, + 66, 76, 65, 78, 71, 95, 76, 73, 84, 72, 85, + 65, 78, 73, 65, 78, 0, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 75, 79, 82, 69, 65, 78, 0, + 0, 83, 85, 66, 76, 65, 78, 71, 95, 75, 65, + 83, 72, 77, 73, 82, 73, 95, 73, 78, 68, 73, + 65, 0, 0, 83, 85, 66, 76, 65, 78, 71, 95, + 73, 84, 65, 76, 73, 65, 78, 95, 83, 87, 73, + 83, 83, 0, 0, 0, 83, 85, 66, 76, 65, 78, + 71, 95, 73, 84, 65, 76, 73, 65, 78, 0, 83, + 85, 66, 76, 65, 78, 71, 95, 71, 69, 82, 77, + 65, 78, 95, 76, 73, 69, 67, 72, 84, 69, 78, + 83, 84, 69, 73, 78, 0, 0, 0, 0, 83, 85, + 66, 76, 65, 78, 71, 95, 71, 69, 82, 77, 65, + 78, 95, 76, 85, 88, 69, 77, 66, 79, 85, 82, + 71, 0, 0, 0, 83, 85, 66, 76, 65, 78, 71, + 95, 71, 69, 82, 77, 65, 78, 95, 65, 85, 83, + 84, 82, 73, 65, 78, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 71, 69, 82, 77, 65, 78, 95, 83, + 87, 73, 83, 83, 0, 0, 0, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 71, 69, 82, 77, 65, 78, + 0, 0, 83, 85, 66, 76, 65, 78, 71, 95, 70, + 82, 69, 78, 67, 72, 95, 77, 79, 78, 65, 67, + 79, 0, 0, 0, 83, 85, 66, 76, 65, 78, 71, + 95, 70, 82, 69, 78, 67, 72, 95, 76, 85, 88, + 69, 77, 66, 79, 85, 82, 71, 0, 0, 0, 83, + 85, 66, 76, 65, 78, 71, 95, 70, 82, 69, 78, + 67, 72, 95, 83, 87, 73, 83, 83, 0, 0, 0, + 0, 83, 85, 66, 76, 65, 78, 71, 95, 70, 82, + 69, 78, 67, 72, 95, 67, 65, 78, 65, 68, 73, + 65, 78, 0, 83, 85, 66, 76, 65, 78, 71, 95, + 70, 82, 69, 78, 67, 72, 95, 66, 69, 76, 71, + 73, 65, 78, 0, 0, 83, 85, 66, 76, 65, 78, + 71, 95, 70, 82, 69, 78, 67, 72, 0, 0, 83, + 85, 66, 76, 65, 78, 71, 95, 69, 78, 71, 76, + 73, 83, 72, 95, 80, 72, 73, 76, 73, 80, 80, + 73, 78, 69, 83, 0, 83, 85, 66, 76, 65, 78, + 71, 95, 69, 78, 71, 76, 73, 83, 72, 95, 90, + 73, 77, 66, 65, 66, 87, 69, 0, 0, 0, 0, + 83, 85, 66, 76, 65, 78, 71, 95, 69, 78, 71, + 76, 73, 83, 72, 95, 84, 82, 73, 78, 73, 68, + 65, 68, 0, 0, 0, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 69, 78, 71, 76, 73, 83, 72, 95, + 66, 69, 76, 73, 90, 69, 0, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 69, 78, 71, 76, 73, 83, + 72, 95, 67, 65, 82, 73, 66, 66, 69, 65, 78, + 0, 0, 0, 83, 85, 66, 76, 65, 78, 71, 95, + 69, 78, 71, 76, 73, 83, 72, 95, 74, 65, 77, + 65, 73, 67, 65, 0, 83, 85, 66, 76, 65, 78, + 71, 95, 69, 78, 71, 76, 73, 83, 72, 95, 83, + 79, 85, 84, 72, 95, 65, 70, 82, 73, 67, 65, + 0, 0, 0, 0, 83, 85, 66, 76, 65, 78, 71, + 95, 69, 78, 71, 76, 73, 83, 72, 95, 69, 73, + 82, 69, 0, 0, 0, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 69, 78, 71, 76, 73, 83, 72, 95, + 78, 90, 0, 0, 83, 85, 66, 76, 65, 78, 71, + 95, 69, 78, 71, 76, 73, 83, 72, 95, 67, 65, + 78, 0, 83, 85, 66, 76, 65, 78, 71, 95, 69, + 78, 71, 76, 73, 83, 72, 95, 65, 85, 83, 0, + 83, 85, 66, 76, 65, 78, 71, 95, 69, 78, 71, + 76, 73, 83, 72, 95, 85, 75, 0, 0, 83, 85, + 66, 76, 65, 78, 71, 95, 69, 78, 71, 76, 73, + 83, 72, 95, 85, 83, 0, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 68, 85, 84, 67, 72, 95, 66, + 69, 76, 71, 73, 65, 78, 0, 0, 0, 83, 85, + 66, 76, 65, 78, 71, 95, 68, 85, 84, 67, 72, + 0, 0, 0, 83, 85, 66, 76, 65, 78, 71, 95, + 67, 72, 73, 78, 69, 83, 69, 95, 77, 65, 67, + 65, 85, 0, 0, 0, 83, 85, 66, 76, 65, 78, + 71, 95, 67, 72, 73, 78, 69, 83, 69, 95, 83, + 73, 78, 71, 65, 80, 79, 82, 69, 0, 0, 0, + 83, 85, 66, 76, 65, 78, 71, 95, 67, 72, 73, + 78, 69, 83, 69, 95, 72, 79, 78, 71, 75, 79, + 78, 71, 0, 0, 0, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 67, 72, 73, 78, 69, 83, 69, 95, + 83, 73, 77, 80, 76, 73, 70, 73, 69, 68, 0, + 0, 83, 85, 66, 76, 65, 78, 71, 95, 67, 72, + 73, 78, 69, 83, 69, 95, 84, 82, 65, 68, 73, + 84, 73, 79, 78, 65, 76, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 65, 90, 69, 82, 73, 95, 67, + 89, 82, 73, 76, 76, 73, 67, 0, 0, 83, 85, + 66, 76, 65, 78, 71, 95, 65, 90, 69, 82, 73, + 95, 76, 65, 84, 73, 78, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 65, 82, 65, 66, 73, 67, 95, + 81, 65, 84, 65, 82, 0, 0, 0, 0, 83, 85, + 66, 76, 65, 78, 71, 95, 65, 82, 65, 66, 73, + 67, 95, 66, 65, 72, 82, 65, 73, 78, 0, 0, + 83, 85, 66, 76, 65, 78, 71, 95, 65, 82, 65, + 66, 73, 67, 95, 85, 65, 69, 0, 0, 83, 85, + 66, 76, 65, 78, 71, 95, 65, 82, 65, 66, 73, + 67, 95, 75, 85, 87, 65, 73, 84, 0, 0, 0, + 83, 85, 66, 76, 65, 78, 71, 95, 65, 82, 65, + 66, 73, 67, 95, 76, 69, 66, 65, 78, 79, 78, + 0, 0, 83, 85, 66, 76, 65, 78, 71, 95, 65, + 82, 65, 66, 73, 67, 95, 74, 79, 82, 68, 65, + 78, 0, 0, 0, 83, 85, 66, 76, 65, 78, 71, + 95, 65, 82, 65, 66, 73, 67, 95, 83, 89, 82, + 73, 65, 0, 0, 0, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 65, 82, 65, 66, 73, 67, 95, 89, + 69, 77, 69, 78, 0, 0, 0, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 65, 82, 65, 66, 73, 67, + 95, 79, 77, 65, 78, 0, 83, 85, 66, 76, 65, + 78, 71, 95, 65, 82, 65, 66, 73, 67, 95, 84, + 85, 78, 73, 83, 73, 65, 0, 0, 83, 85, 66, + 76, 65, 78, 71, 95, 65, 82, 65, 66, 73, 67, + 95, 77, 79, 82, 79, 67, 67, 79, 0, 0, 83, + 85, 66, 76, 65, 78, 71, 95, 65, 82, 65, 66, + 73, 67, 95, 65, 76, 71, 69, 82, 73, 65, 0, + 0, 83, 85, 66, 76, 65, 78, 71, 95, 65, 82, + 65, 66, 73, 67, 95, 76, 73, 66, 89, 65, 0, + 0, 0, 0, 83, 85, 66, 76, 65, 78, 71, 95, + 65, 82, 65, 66, 73, 67, 95, 69, 71, 89, 80, + 84, 0, 0, 0, 0, 83, 85, 66, 76, 65, 78, + 71, 95, 65, 82, 65, 66, 73, 67, 95, 73, 82, + 65, 81, 0, 83, 85, 66, 76, 65, 78, 71, 95, + 65, 82, 65, 66, 73, 67, 95, 83, 65, 85, 68, + 73, 95, 65, 82, 65, 66, 73, 65, 0, 83, 85, + 66, 76, 65, 78, 71, 95, 83, 89, 83, 95, 68, + 69, 70, 65, 85, 76, 84, 0, 83, 85, 66, 76, + 65, 78, 71, 95, 68, 69, 70, 65, 85, 76, 84, + 0, 83, 85, 66, 76, 65, 78, 71, 95, 78, 69, + 85, 84, 82, 65, 76, 0, 76, 65, 78, 71, 95, + 86, 73, 69, 84, 78, 65, 77, 69, 83, 69, 0, + 76, 65, 78, 71, 95, 85, 90, 66, 69, 75, 0, + 0, 76, 65, 78, 71, 95, 85, 82, 68, 85, 0, + 0, 0, 76, 65, 78, 71, 95, 85, 75, 82, 65, + 73, 78, 73, 65, 78, 0, 0, 76, 65, 78, 71, + 95, 84, 85, 82, 75, 73, 83, 72, 0, 0, 0, + 0, 76, 65, 78, 71, 95, 84, 72, 65, 73, 0, + 0, 0, 76, 65, 78, 71, 95, 84, 69, 76, 85, + 71, 85, 0, 76, 65, 78, 71, 95, 84, 65, 84, + 65, 82, 0, 0, 76, 65, 78, 71, 95, 84, 65, + 77, 73, 76, 0, 0, 76, 65, 78, 71, 95, 83, + 89, 82, 73, 65, 67, 0, 76, 65, 78, 71, 95, + 83, 87, 69, 68, 73, 83, 72, 0, 0, 0, 0, + 76, 65, 78, 71, 95, 83, 87, 65, 72, 73, 76, + 73, 0, 0, 0, 0, 76, 65, 78, 71, 95, 83, + 80, 65, 78, 73, 83, 72, 0, 0, 0, 0, 76, + 65, 78, 71, 95, 83, 76, 79, 86, 69, 78, 73, + 65, 78, 0, 0, 76, 65, 78, 71, 95, 83, 76, + 79, 86, 65, 75, 0, 76, 65, 78, 71, 95, 83, + 73, 78, 68, 72, 73, 0, 76, 65, 78, 71, 95, + 83, 69, 82, 66, 73, 65, 78, 0, 0, 0, 0, + 76, 65, 78, 71, 95, 83, 65, 78, 83, 75, 82, + 73, 84, 0, 0, 0, 76, 65, 78, 71, 95, 82, + 85, 83, 83, 73, 65, 78, 0, 0, 0, 0, 76, + 65, 78, 71, 95, 82, 79, 77, 65, 78, 73, 65, + 78, 0, 0, 0, 76, 65, 78, 71, 95, 80, 85, + 78, 74, 65, 66, 73, 0, 0, 0, 0, 76, 65, + 78, 71, 95, 80, 79, 82, 84, 85, 71, 85, 69, + 83, 69, 0, 76, 65, 78, 71, 95, 80, 79, 76, + 73, 83, 72, 0, 76, 65, 78, 71, 95, 79, 82, + 73, 89, 65, 0, 0, 76, 65, 78, 71, 95, 78, + 79, 82, 87, 69, 71, 73, 65, 78, 0, 0, 76, + 65, 78, 71, 95, 78, 69, 80, 65, 76, 73, 0, + 76, 65, 78, 71, 95, 77, 79, 78, 71, 79, 76, + 73, 65, 78, 0, 0, 76, 65, 78, 71, 95, 77, + 65, 82, 65, 84, 72, 73, 0, 0, 0, 0, 76, + 65, 78, 71, 95, 77, 65, 78, 73, 80, 85, 82, + 73, 0, 0, 0, 76, 65, 78, 71, 95, 77, 65, + 76, 65, 89, 65, 76, 65, 77, 0, 0, 76, 65, + 78, 71, 95, 77, 65, 76, 65, 89, 0, 0, 76, + 65, 78, 71, 95, 77, 65, 67, 69, 68, 79, 78, + 73, 65, 78, 0, 76, 65, 78, 71, 95, 76, 73, + 84, 72, 85, 65, 78, 73, 65, 78, 0, 76, 65, + 78, 71, 95, 76, 65, 84, 86, 73, 65, 78, 0, + 0, 0, 0, 76, 65, 78, 71, 95, 75, 89, 82, + 71, 89, 90, 0, 76, 65, 78, 71, 95, 75, 79, + 82, 69, 65, 78, 0, 76, 65, 78, 71, 95, 75, + 79, 78, 75, 65, 78, 73, 0, 0, 0, 0, 76, + 65, 78, 71, 95, 75, 65, 90, 65, 75, 0, 0, + 76, 65, 78, 71, 95, 75, 65, 83, 72, 77, 73, + 82, 73, 0, 0, 0, 76, 65, 78, 71, 95, 75, + 65, 78, 78, 65, 68, 65, 0, 0, 0, 0, 76, + 65, 78, 71, 95, 74, 65, 80, 65, 78, 69, 83, + 69, 0, 0, 0, 76, 65, 78, 71, 95, 73, 84, + 65, 76, 73, 65, 78, 0, 0, 0, 0, 76, 65, + 78, 71, 95, 73, 78, 68, 79, 78, 69, 83, 73, + 65, 78, 0, 76, 65, 78, 71, 95, 73, 67, 69, + 76, 65, 78, 68, 73, 67, 0, 0, 76, 65, 78, + 71, 95, 72, 85, 78, 71, 65, 82, 73, 65, 78, + 0, 0, 76, 65, 78, 71, 95, 72, 73, 78, 68, + 73, 0, 0, 76, 65, 78, 71, 95, 72, 69, 66, + 82, 69, 87, 0, 76, 65, 78, 71, 95, 71, 85, + 74, 65, 82, 65, 84, 73, 0, 0, 0, 76, 65, + 78, 71, 95, 71, 82, 69, 69, 75, 0, 0, 76, + 65, 78, 71, 95, 71, 69, 82, 77, 65, 78, 0, + 76, 65, 78, 71, 95, 71, 69, 79, 82, 71, 73, + 65, 78, 0, 0, 0, 76, 65, 78, 71, 95, 71, + 65, 76, 73, 67, 73, 65, 78, 0, 0, 0, 76, + 65, 78, 71, 95, 70, 82, 69, 78, 67, 72, 0, + 76, 65, 78, 71, 95, 70, 73, 78, 78, 73, 83, + 72, 0, 0, 0, 0, 76, 65, 78, 71, 95, 70, + 65, 82, 83, 73, 0, 0, 76, 65, 78, 71, 95, + 70, 65, 69, 82, 79, 69, 83, 69, 0, 0, 0, + 76, 65, 78, 71, 95, 69, 83, 84, 79, 78, 73, + 65, 78, 0, 0, 0, 76, 65, 78, 71, 95, 69, + 78, 71, 76, 73, 83, 72, 0, 0, 0, 0, 76, + 65, 78, 71, 95, 68, 85, 84, 67, 72, 0, 0, + 76, 65, 78, 71, 95, 68, 73, 86, 69, 72, 73, + 0, 76, 65, 78, 71, 95, 68, 65, 78, 73, 83, + 72, 0, 76, 65, 78, 71, 95, 67, 90, 69, 67, + 72, 0, 0, 76, 65, 78, 71, 95, 67, 82, 79, + 65, 84, 73, 65, 78, 0, 0, 0, 76, 65, 78, + 71, 95, 67, 72, 73, 78, 69, 83, 69, 0, 0, + 0, 0, 76, 65, 78, 71, 95, 67, 65, 84, 65, + 76, 65, 78, 0, 0, 0, 0, 76, 65, 78, 71, + 95, 66, 85, 76, 71, 65, 82, 73, 65, 78, 0, + 0, 76, 65, 78, 71, 95, 66, 69, 78, 71, 65, + 76, 73, 0, 0, 0, 0, 76, 65, 78, 71, 95, + 66, 69, 76, 65, 82, 85, 83, 73, 65, 78, 0, + 76, 65, 78, 71, 95, 66, 65, 83, 81, 85, 69, + 0, 76, 65, 78, 71, 95, 65, 90, 69, 82, 73, + 0, 0, 76, 65, 78, 71, 95, 65, 83, 83, 65, + 77, 69, 83, 69, 0, 0, 0, 76, 65, 78, 71, + 95, 65, 82, 77, 69, 78, 73, 65, 78, 0, 0, + 0, 76, 65, 78, 71, 95, 65, 82, 65, 66, 73, + 67, 0, 76, 65, 78, 71, 95, 65, 76, 66, 65, + 78, 73, 65, 78, 0, 0, 0, 76, 65, 78, 71, + 95, 65, 70, 82, 73, 75, 65, 65, 78, 83, 0, + 0, 76, 65, 78, 71, 95, 73, 78, 86, 65, 82, + 73, 65, 78, 84, 0, 0, 76, 65, 78, 71, 95, + 78, 69, 85, 84, 82, 65, 76, 0, 0, 0, 0, + 37, 117, 0, 0, 76, 97, 110, 103, 117, 97, 103, + 101, 32, 73, 68, 58, 32, 37, 100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 5, 0, 0, + 0, 32, 0, 0, 128, 24, 0, 0, 0, 56, 0, + 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 101, 0, 0, 0, + 80, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 104, 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 9, 4, 0, 0, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 9, 4, 0, 0, 144, 0, 0, 0, 160, + 80, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 136, 81, 0, 0, 25, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 8, + 200, 128, 0, 0, 0, 0, 5, 0, 0, 0, 0, + 0, 135, 0, 75, 0, 0, 0, 0, 0, 77, 0, + 97, 0, 107, 0, 101, 0, 76, 0, 97, 0, 110, + 0, 103, 0, 73, 0, 68, 0, 0, 0, 8, 0, + 77, 0, 83, 0, 32, 0, 83, 0, 97, 0, 110, + 0, 115, 0, 32, 0, 83, 0, 101, 0, 114, 0, + 105, 0, 102, 0, 0, 0, 0, 0, 3, 0, 33, + 80, 0, 0, 0, 0, 7, 0, 7, 0, 121, 0, + 100, 0, 234, 3, 255, 255, 133, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 33, 80, 0, 0, 0, 0, + 7, 0, 24, 0, 121, 0, 100, 0, 233, 3, 255, + 255, 133, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 1, 80, 0, 0, 0, 0, 78, 0, 54, 0, 50, + 0, 14, 0, 1, 0, 255, 255, 128, 0, 67, 0, + 111, 0, 112, 0, 121, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 80, 0, 0, 0, 0, 7, 0, + 54, 0, 50, 0, 14, 0, 2, 0, 255, 255, 128, + 0, 69, 0, 120, 0, 105, 0, 116, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 80, 0, 0, 0, + 0, 7, 0, 41, 0, 121, 0, 8, 0, 235, 3, + 255, 255, 130, 0, 0, 0, 0, 0, 0, 0, 60, + 63, 120, 109, 108, 32, 118, 101, 114, 115, 105, 111, + 110, 61, 34, 49, 46, 48, 34, 32, 101, 110, 99, + 111, 100, 105, 110, 103, 61, 34, 85, 84, 70, 45, + 56, 34, 32, 115, 116, 97, 110, 100, 97, 108, 111, + 110, 101, 61, 34, 121, 101, 115, 34, 63, 62, 13, + 10, 60, 97, 115, 115, 101, 109, 98, 108, 121, 32, + 120, 109, 108, 110, 115, 61, 34, 117, 114, 110, 58, + 115, 99, 104, 101, 109, 97, 115, 45, 109, 105, 99, + 114, 111, 115, 111, 102, 116, 45, 99, 111, 109, 58, + 97, 115, 109, 46, 118, 49, 34, 32, 109, 97, 110, + 105, 102, 101, 115, 116, 86, 101, 114, 115, 105, 111, + 110, 61, 34, 49, 46, 48, 34, 62, 13, 10, 60, + 97, 115, 115, 101, 109, 98, 108, 121, 73, 100, 101, + 110, 116, 105, 116, 121, 32, 118, 101, 114, 115, 105, + 111, 110, 61, 34, 49, 46, 48, 46, 48, 46, 48, + 34, 32, 112, 114, 111, 99, 101, 115, 115, 111, 114, + 65, 114, 99, 104, 105, 116, 101, 99, 116, 117, 114, + 101, 61, 34, 88, 56, 54, 34, 32, 110, 97, 109, + 101, 61, 34, 78, 117, 108, 108, 115, 111, 102, 116, + 46, 78, 83, 73, 83, 46, 77, 97, 107, 101, 76, + 97, 110, 103, 73, 100, 34, 32, 116, 121, 112, 101, + 61, 34, 119, 105, 110, 51, 50, 34, 47, 62, 13, + 10, 60, 100, 101, 115, 99, 114, 105, 112, 116, 105, + 111, 110, 62, 77, 97, 107, 101, 76, 97, 110, 103, + 73, 100, 60, 47, 100, 101, 115, 99, 114, 105, 112, + 116, 105, 111, 110, 62, 13, 10, 60, 100, 101, 112, + 101, 110, 100, 101, 110, 99, 121, 62, 13, 10, 60, + 100, 101, 112, 101, 110, 100, 101, 110, 116, 65, 115, + 115, 101, 109, 98, 108, 121, 62, 13, 10, 60, 97, + 115, 115, 101, 109, 98, 108, 121, 73, 100, 101, 110, + 116, 105, 116, 121, 32, 116, 121, 112, 101, 61, 34, + 119, 105, 110, 51, 50, 34, 32, 110, 97, 109, 101, + 61, 34, 77, 105, 99, 114, 111, 115, 111, 102, 116, + 46, 87, 105, 110, 100, 111, 119, 115, 46, 67, 111, + 109, 109, 111, 110, 45, 67, 111, 110, 116, 114, 111, + 108, 115, 34, 32, 118, 101, 114, 115, 105, 111, 110, + 61, 34, 54, 46, 48, 46, 48, 46, 48, 34, 32, + 112, 114, 111, 99, 101, 115, 115, 111, 114, 65, 114, + 99, 104, 105, 116, 101, 99, 116, 117, 114, 101, 61, + 34, 88, 56, 54, 34, 32, 112, 117, 98, 108, 105, + 99, 75, 101, 121, 84, 111, 107, 101, 110, 61, 34, + 54, 53, 57, 53, 98, 54, 52, 49, 52, 52, 99, + 99, 102, 49, 100, 102, 34, 32, 108, 97, 110, 103, + 117, 97, 103, 101, 61, 34, 42, 34, 32, 47, 62, + 13, 10, 60, 47, 100, 101, 112, 101, 110, 100, 101, + 110, 116, 65, 115, 115, 101, 109, 98, 108, 121, 62, + 13, 10, 60, 47, 100, 101, 112, 101, 110, 100, 101, + 110, 99, 121, 62, 13, 10, 60, 47, 97, 115, 115, + 101, 109, 98, 108, 121, 62, 13, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 +}; diff --git a/Source/Tests/SConscript b/Source/Tests/SConscript index 6aad62eb..909ca606 100644 --- a/Source/Tests/SConscript +++ b/Source/Tests/SConscript @@ -1,16 +1,20 @@ target = 'test' tests = Split(""" + DialogTemplate.cpp endian.cpp mmap.cpp + ResourceEditor.cpp specmatch.cpp textrunner.cpp """) required = Split(""" + DialogTemplate.cpp dirreader.cpp growbuf.cpp mmap.cpp + ResourceEditor.cpp """) cppunitlibs = Split(""" @@ -19,6 +23,9 @@ cppunitlibs = Split(""" extralibs = Split(""" dl + gdi32 + iconv + user32 """) scripts = Split("""