From 9fdcbd4b3d3cfcbacd524cef699277a8d0ef9a6b Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Mon, 9 Jun 2008 09:50:14 +0000 Subject: Mailreader kickoff --- ajax.html | 21 + anonbox.png | Bin 0 -> 19801 bytes encoding.js | 159 + l_chaosknoten_1.png | Bin 0 -> 3713 bytes l_chaosknoten_23a.png | Bin 0 -> 460 bytes mbox | 2639 ++++++++++++++ parsemail.js | 256 ++ prototype-1.6.0.2.js | 4222 +++++++++++++++++++++++ style.css | 199 ++ tests/KOIMAIL | 191 ++ tests/Mailbox | 483 +++ tests/Mailbox2 | 9050 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/a_990501.txt | 251 ++ tests/testmail.eml | 6426 +++++++++++++++++++++++++++++++++++ tests/testmail1.eml | 6459 +++++++++++++++++++++++++++++++++++ tests/thai.eml | 789 +++++ 16 files changed, 31145 insertions(+) create mode 100644 ajax.html create mode 100644 anonbox.png create mode 100644 encoding.js create mode 100644 l_chaosknoten_1.png create mode 100644 l_chaosknoten_23a.png create mode 100644 mbox create mode 100644 parsemail.js create mode 100644 prototype-1.6.0.2.js create mode 100644 style.css create mode 100644 tests/KOIMAIL create mode 100644 tests/Mailbox create mode 100644 tests/Mailbox2 create mode 100644 tests/a_990501.txt create mode 100644 tests/testmail.eml create mode 100644 tests/testmail1.eml create mode 100644 tests/thai.eml diff --git a/ajax.html b/ajax.html new file mode 100644 index 0000000..f0ab4a2 --- /dev/null +++ b/ajax.html @@ -0,0 +1,21 @@ + + + + + + + anonbox mail reader :: Chaos Computer Club + + + + + + + +
+

If you can read this text, you either do not have received any messages or your JavaScript is disabled.

+
+ + + diff --git a/anonbox.png b/anonbox.png new file mode 100644 index 0000000..1261fff Binary files /dev/null and b/anonbox.png differ diff --git a/encoding.js b/encoding.js new file mode 100644 index 0000000..dc789eb --- /dev/null +++ b/encoding.js @@ -0,0 +1,159 @@ +var encoding_koi8_r = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248,0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556,0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E,0x255F,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,0x256C,0x00A9,0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A,0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A]; +var encoding_koi8_u = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248,0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457,0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E,0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407,0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256B,0x256C,0x00A9,0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A,0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A]; +var encoding_8859_1 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF]; +var encoding_8859_10 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x0104,0x0112,0x0122,0x012A,0x0128,0x0136,0x00A7,0x013B,0x0110,0x0160,0x0166,0x017D,0x00AD,0x016A,0x014A,0x00B0,0x0105,0x0113,0x0123,0x012B,0x0129,0x0137,0x00B7,0x013C,0x0111,0x0161,0x0167,0x017E,0x2015,0x016B,0x014B,0x0100,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x012E,0x010C,0x00C9,0x0118,0x00CB,0x0116,0x00CD,0x00CE,0x00CF,0x00D0,0x0145,0x014C,0x00D3,0x00D4,0x00D5,0x00D6,0x0168,0x00D8,0x0172,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,0x0101,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x012F,0x010D,0x00E9,0x0119,0x00EB,0x0117,0x00ED,0x00EE,0x00EF,0x00F0,0x0146,0x014D,0x00F3,0x00F4,0x00F5,0x00F6,0x0169,0x00F8,0x0173,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x0138]; +var encoding_8859_11 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07,0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,0x0E38,0x0E39,0x0E3A,0x0E3F,0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,0x0E58,0x0E59,0x0E5A,0x0E5B]; +var encoding_8859_13 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7,0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7,0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019]; +var encoding_8859_14 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x1E02,0x1E03,0x00A3,0x010A,0x010B,0x1E0A,0x00A7,0x1E80,0x00A9,0x1E82,0x1E0B,0x1EF2,0x00AD,0x00AE,0x0178,0x1E1E,0x1E1F,0x0120,0x0121,0x1E40,0x1E41,0x00B6,0x1E56,0x1E81,0x1E57,0x1E83,0x1E60,0x1EF3,0x1E84,0x1E85,0x1E61,0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x0174,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x1E6A,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x0176,0x00DF,0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x0175,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x1E6B,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x0177,0x00FF]; +var encoding_8859_15 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x00A1,0x00A2,0x00A3,0x20AC,0x00A5,0x0160,0x00A7,0x0161,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,0x00B0,0x00B1,0x00B2,0x00B3,0x017D,0x00B5,0x00B6,0x00B7,0x017E,0x00B9,0x00BA,0x00BB,0x0152,0x0153,0x0178,0x00BF,0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF]; +var encoding_8859_16 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x0104,0x0105,0x0141,0x20AC,0x201E,0x0160,0x00A7,0x0161,0x00A9,0x0218,0x00AB,0x0179,0x00AD,0x017A,0x017B,0x00B0,0x00B1,0x010C,0x0142,0x017D,0x201D,0x00B6,0x00B7,0x017E,0x010D,0x0219,0x00BB,0x0152,0x0153,0x0178,0x017C,0x00C0,0x00C1,0x00C2,0x0102,0x00C4,0x0106,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x0110,0x0143,0x00D2,0x00D3,0x00D4,0x0150,0x00D6,0x015A,0x0170,0x00D9,0x00DA,0x00DB,0x00DC,0x0118,0x021A,0x00DF,0x00E0,0x00E1,0x00E2,0x0103,0x00E4,0x0107,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x0111,0x0144,0x00F2,0x00F3,0x00F4,0x0151,0x00F6,0x015B,0x0171,0x00F9,0x00FA,0x00FB,0x00FC,0x0119,0x021B,0x00FF]; +var encoding_8859_2 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9]; +var encoding_8859_3 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x0126,0x02D8,0x00A3,0x00A4,0x0124,0x00A7,0x00A8,0x0130,0x015E,0x011E,0x0134,0x00AD,0x017B,0x00B0,0x0127,0x00B2,0x00B3,0x00B4,0x00B5,0x0125,0x00B7,0x00B8,0x0131,0x015F,0x011F,0x0135,0x00BD,0x017C,0x00C0,0x00C1,0x00C2,0x00C4,0x010A,0x0108,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D1,0x00D2,0x00D3,0x00D4,0x0120,0x00D6,0x00D7,0x011C,0x00D9,0x00DA,0x00DB,0x00DC,0x016C,0x015C,0x00DF,0x00E0,0x00E1,0x00E2,0x00E4,0x010B,0x0109,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x00F1,0x00F2,0x00F3,0x00F4,0x0121,0x00F6,0x00F7,0x011D,0x00F9,0x00FA,0x00FB,0x00FC,0x016D,0x015D,0x02D9]; +var encoding_8859_4 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x0104,0x0138,0x0156,0x00A4,0x0128,0x013B,0x00A7,0x00A8,0x0160,0x0112,0x0122,0x0166,0x00AD,0x017D,0x00AF,0x00B0,0x0105,0x02DB,0x0157,0x00B4,0x0129,0x013C,0x02C7,0x00B8,0x0161,0x0113,0x0123,0x0167,0x014A,0x017E,0x014B,0x0100,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x012E,0x010C,0x00C9,0x0118,0x00CB,0x0116,0x00CD,0x00CE,0x012A,0x0110,0x0145,0x014C,0x0136,0x00D4,0x00D5,0x00D6,0x00D7,0x00D8,0x0172,0x00DA,0x00DB,0x00DC,0x0168,0x016A,0x00DF,0x0101,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x012F,0x010D,0x00E9,0x0119,0x00EB,0x0117,0x00ED,0x00EE,0x012B,0x0111,0x0146,0x014D,0x0137,0x00F4,0x00F5,0x00F6,0x00F7,0x00F8,0x0173,0x00FA,0x00FB,0x00FC,0x0169,0x016B,0x02D9]; +var encoding_8859_5 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x0401,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408,0x0409,0x040A,0x040B,0x040C,0x00AD,0x040E,0x040F,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F,0x2116,0x0451,0x0452,0x0453,0x0454,0x0455,0x0456,0x0457,0x0458,0x0459,0x045A,0x045B,0x045C,0x00A7,0x045E,0x045F]; +var encoding_8859_6 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x00A4,0x060C,0x00AD,0x061B,0x061F,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643,0x0644,0x0645,0x0646,0x0647,0x0648,0x0649,0x064A,0x064B,0x064C,0x064D,0x064E,0x064F,0x0650,0x0651,0x0652]; +var encoding_8859_7 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x2018,0x2019,0x00A3,0x20AC,0x20AF,0x00A6,0x00A7,0x00A8,0x00A9,0x037A,0x00AB,0x00AC,0x00AD,0x2015,0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x0385,0x0386,0x00B7,0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F,0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0,0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF,0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE]; +var encoding_8859_8 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x2017,0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,0x05E8,0x05E9,0x05EA,0x200E,0x200F]; +var encoding_8859_9 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF,0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF]; +var encoding_CP1250 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0xFFFD,0x201A,0xFFFD,0x201E,0x2026,0x2020,0x2021,0xFFFD,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179,0xFFFD,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0xFFFD,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A,0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7,0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B,0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7,0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C,0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9]; +var encoding_CP1251 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0xFFFD,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F]; +var encoding_CP1252 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0xFFFD,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFD,0x017D,0xFFFD,0xFFFD,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFD,0x017E,0x0178,0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF]; +var encoding_CP1253 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0xFFFD,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,0xFFFD,0x2030,0xFFFD,0x2039,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0xFFFD,0x2122,0xFFFD,0x203A,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x00A0,0x0385,0x0386,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00A9,0xFFFD,0x00AB,0x00AC,0x00AD,0x00AE,0x2015,0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x00B5,0x00B6,0x00B7,0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F,0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0,0x03A1,0xFFFD,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF,0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0xFFFD]; +var encoding_CP1254 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0xFFFD,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,0x02C6,0x2030,0x0160,0x2039,0x0152,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0x02DC,0x2122,0x0161,0x203A,0x0153,0xFFFD,0xFFFD,0x0178,0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF,0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF]; +var encoding_CP1255 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0xFFFD,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,0x02C6,0x2030,0xFFFD,0x2039,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0x02DC,0x2122,0xFFFD,0x203A,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x00A0,0x00A1,0x00A2,0x00A3,0x20AA,0x00A5,0x00A6,0x00A7,0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,0x05B0,0x05B1,0x05B2,0x05B3,0x05B4,0x05B5,0x05B6,0x05B7,0x05B8,0x05B9,0xFFFD,0x05BB,0x05BC,0x05BD,0x05BE,0x05BF,0x05C0,0x05C1,0x05C2,0x05C3,0x05F0,0x05F1,0x05F2,0x05F3,0x05F4,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,0x05E8,0x05E9,0x05EA,0xFFFD,0xFFFD,0x200E,0x200F,0xFFFD]; +var encoding_CP1256 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,0x02C6,0x2030,0x0679,0x2039,0x0152,0x0686,0x0698,0x0688,0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0x06A9,0x2122,0x0691,0x203A,0x0153,0x200C,0x200D,0x06BA,0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00A9,0x06BE,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F,0x06C1,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7,0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643,0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF,0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7,0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x06D2]; +var encoding_CP1257 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0xFFFD,0x201A,0xFFFD,0x201E,0x2026,0x2020,0x2021,0xFFFD,0x2030,0xFFFD,0x2039,0xFFFD,0x00A8,0x02C7,0x00B8,0xFFFD,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0xFFFD,0x2122,0xFFFD,0x203A,0xFFFD,0x00AF,0x02DB,0xFFFD,0x00A0,0xFFFD,0x00A2,0x00A3,0x00A4,0xFFFD,0x00A6,0x00A7,0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9]; +var encoding_CP1258 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0xFFFD,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,0x02C6,0x2030,0xFFFD,0x2039,0x0152,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0x02DC,0x2122,0xFFFD,0x203A,0x0153,0xFFFD,0xFFFD,0x0178,0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,0x00C0,0x00C1,0x00C2,0x0102,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,0x00C9,0x00CA,0x00CB,0x0300,0x00CD,0x00CE,0x00CF,0x0110,0x00D1,0x0309,0x00D3,0x00D4,0x01A0,0x00D6,0x00D7,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x01AF,0x0303,0x00DF,0x00E0,0x00E1,0x00E2,0x0103,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,0x00E9,0x00EA,0x00EB,0x0301,0x00ED,0x00EE,0x00EF,0x0111,0x00F1,0x0323,0x00F3,0x00F4,0x01A1,0x00F6,0x00F7,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x01B0,0x20AB,0x00FF]; +var encoding_CP874 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x2026,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07,0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,0x0E38,0x0E39,0x0E3A,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x0E3F,0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFD,0xFFFD,0xFFFD,0xFFFD]; +var encoding_CP437 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,0x00ff,0x00d6,0x00dc,0x00a2,0x00a3,0x00a5,0x20a7,0x0192,0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0]; +var encoding_CP737 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f,0x03a0,0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,0x03a9,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,0x03c1,0x03c3,0x03c2,0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,0x03c9,0x03ac,0x03ad,0x03ae,0x03ca,0x03af,0x03cc,0x03cd,0x03cb,0x03ce,0x0386,0x0388,0x0389,0x038a,0x038c,0x038e,0x038f,0x00b1,0x2265,0x2264,0x03aa,0x03ab,0x00f7,0x2248,0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0]; +var encoding_CP775 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x0106,0x00fc,0x00e9,0x0101,0x00e4,0x0123,0x00e5,0x0107,0x0142,0x0113,0x0156,0x0157,0x012b,0x0179,0x00c4,0x00c5,0x00c9,0x00e6,0x00c6,0x014d,0x00f6,0x0122,0x00a2,0x015a,0x015b,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x00d7,0x00a4,0x0100,0x012a,0x00f3,0x017b,0x017c,0x017a,0x201d,0x00a6,0x00a9,0x00ae,0x00ac,0x00bd,0x00bc,0x0141,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x0104,0x010c,0x0118,0x0116,0x2563,0x2551,0x2557,0x255d,0x012e,0x0160,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x0172,0x016a,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x017d,0x0105,0x010d,0x0119,0x0117,0x012f,0x0161,0x0173,0x016b,0x017e,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,0x00d3,0x00df,0x014c,0x0143,0x00f5,0x00d5,0x00b5,0x0144,0x0136,0x0137,0x013b,0x013c,0x0146,0x0112,0x0145,0x2019,0x00ad,0x00b1,0x201c,0x00be,0x00b6,0x00a7,0x00f7,0x201e,0x00b0,0x2219,0x00b7,0x00b9,0x00b3,0x00b2,0x25a0,0x00a0]; +var encoding_CP850 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,0x00ff,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x00d7,0x0192,0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,0x00bf,0x00ae,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x00c1,0x00c2,0x00c0,0x00a9,0x2563,0x2551,0x2557,0x255d,0x00a2,0x00a5,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x00e3,0x00c3,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x00a4,0x00f0,0x00d0,0x00ca,0x00cb,0x00c8,0x0131,0x00cd,0x00ce,0x00cf,0x2518,0x250c,0x2588,0x2584,0x00a6,0x00cc,0x2580,0x00d3,0x00df,0x00d4,0x00d2,0x00f5,0x00d5,0x00b5,0x00fe,0x00de,0x00da,0x00db,0x00d9,0x00fd,0x00dd,0x00af,0x00b4,0x00ad,0x00b1,0x2017,0x00be,0x00b6,0x00a7,0x00f7,0x00b8,0x00b0,0x00a8,0x00b7,0x00b9,0x00b3,0x00b2,0x25a0,0x00a0]; +var encoding_CP852 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x016f,0x0107,0x00e7,0x0142,0x00eb,0x0150,0x0151,0x00ee,0x0179,0x00c4,0x0106,0x00c9,0x0139,0x013a,0x00f4,0x00f6,0x013d,0x013e,0x015a,0x015b,0x00d6,0x00dc,0x0164,0x0165,0x0141,0x00d7,0x010d,0x00e1,0x00ed,0x00f3,0x00fa,0x0104,0x0105,0x017d,0x017e,0x0118,0x0119,0x00ac,0x017a,0x010c,0x015f,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x00c1,0x00c2,0x011a,0x015e,0x2563,0x2551,0x2557,0x255d,0x017b,0x017c,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x0102,0x0103,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x00a4,0x0111,0x0110,0x010e,0x00cb,0x010f,0x0147,0x00cd,0x00ce,0x011b,0x2518,0x250c,0x2588,0x2584,0x0162,0x016e,0x2580,0x00d3,0x00df,0x00d4,0x0143,0x0144,0x0148,0x0160,0x0161,0x0154,0x00da,0x0155,0x0170,0x00fd,0x00dd,0x0163,0x00b4,0x00ad,0x02dd,0x02db,0x02c7,0x02d8,0x00a7,0x00f7,0x00b8,0x00b0,0x00a8,0x02d9,0x0171,0x0158,0x0159,0x25a0,0x00a0]; +var encoding_CP855 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x0452,0x0402,0x0453,0x0403,0x0451,0x0401,0x0454,0x0404,0x0455,0x0405,0x0456,0x0406,0x0457,0x0407,0x0458,0x0408,0x0459,0x0409,0x045a,0x040a,0x045b,0x040b,0x045c,0x040c,0x045e,0x040e,0x045f,0x040f,0x044e,0x042e,0x044a,0x042a,0x0430,0x0410,0x0431,0x0411,0x0446,0x0426,0x0434,0x0414,0x0435,0x0415,0x0444,0x0424,0x0433,0x0413,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x0445,0x0425,0x0438,0x0418,0x2563,0x2551,0x2557,0x255d,0x0439,0x0419,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x043a,0x041a,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x00a4,0x043b,0x041b,0x043c,0x041c,0x043d,0x041d,0x043e,0x041e,0x043f,0x2518,0x250c,0x2588,0x2584,0x041f,0x044f,0x2580,0x042f,0x0440,0x0420,0x0441,0x0421,0x0442,0x0422,0x0443,0x0423,0x0436,0x0416,0x0432,0x0412,0x044c,0x042c,0x2116,0x00ad,0x044b,0x042b,0x0437,0x0417,0x0448,0x0428,0x044d,0x042d,0x0449,0x0429,0x0447,0x0427,0x00a7,0x25a0,0x00a0]; +var encoding_CP857 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x0131,0x00c4,0x00c5,0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,0x0130,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x015e,0x015f,0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x011e,0x011f,0x00bf,0x00ae,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x00c1,0x00c2,0x00c0,0x00a9,0x2563,0x2551,0x2557,0x255d,0x00a2,0x00a5,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x00e3,0x00c3,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x00a4,0x00ba,0x00aa,0x00ca,0x00cb,0x00c8,0xFFFD,0x00cd,0x00ce,0x00cf,0x2518,0x250c,0x2588,0x2584,0x00a6,0x00cc,0x2580,0x00d3,0x00df,0x00d4,0x00d2,0x00f5,0x00d5,0x00b5,0xFFFD,0x00d7,0x00da,0x00db,0x00d9,0x00ec,0x00ff,0x00af,0x00b4,0x00ad,0x00b1,0xFFFD,0x00be,0x00b6,0x00a7,0x00f7,0x00b8,0x00b0,0x00a8,0x00b7,0x00b9,0x00b3,0x00b2,0x25a0,0x00a0]; +var encoding_CP860 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x00c7,0x00fc,0x00e9,0x00e2,0x00e3,0x00e0,0x00c1,0x00e7,0x00ea,0x00ca,0x00e8,0x00cd,0x00d4,0x00ec,0x00c3,0x00c2,0x00c9,0x00c0,0x00c8,0x00f4,0x00f5,0x00f2,0x00da,0x00f9,0x00cc,0x00d5,0x00dc,0x00a2,0x00a3,0x00d9,0x20a7,0x00d3,0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,0x00bf,0x00d2,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0]; +var encoding_CP861 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,0x00ea,0x00eb,0x00e8,0x00d0,0x00f0,0x00de,0x00c4,0x00c5,0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00fe,0x00fb,0x00dd,0x00fd,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x20a7,0x0192,0x00e1,0x00ed,0x00f3,0x00fa,0x00c1,0x00cd,0x00d3,0x00da,0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0]; +var encoding_CP862 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x05d0,0x05d1,0x05d2,0x05d3,0x05d4,0x05d5,0x05d6,0x05d7,0x05d8,0x05d9,0x05da,0x05db,0x05dc,0x05dd,0x05de,0x05df,0x05e0,0x05e1,0x05e2,0x05e3,0x05e4,0x05e5,0x05e6,0x05e7,0x05e8,0x05e9,0x05ea,0x00a2,0x00a3,0x00a5,0x20a7,0x0192,0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0]; +var encoding_CP863 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x00c7,0x00fc,0x00e9,0x00e2,0x00c2,0x00e0,0x00b6,0x00e7,0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x2017,0x00c0,0x00a7,0x00c9,0x00c8,0x00ca,0x00f4,0x00cb,0x00cf,0x00fb,0x00f9,0x00a4,0x00d4,0x00dc,0x00a2,0x00a3,0x00d9,0x00db,0x0192,0x00a6,0x00b4,0x00f3,0x00fa,0x00a8,0x00b8,0x00b3,0x00af,0x00ce,0x2310,0x00ac,0x00bd,0x00bc,0x00be,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0]; +var encoding_CP864 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x066a,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x00b0,0x00b7,0x2219,0x221a,0x2592,0x2500,0x2502,0x253c,0x2524,0x252c,0x251c,0x2534,0x2510,0x250c,0x2514,0x2518,0x03b2,0x221e,0x03c6,0x00b1,0x00bd,0x00bc,0x2248,0x00ab,0x00bb,0xfef7,0xfef8,0xFFFD,0xFFFD,0xfefb,0xfefc,0xFFFD,0x00a0,0x00ad,0xfe82,0x00a3,0x00a4,0xfe84,0xFFFD,0xFFFD,0xfe8e,0xfe8f,0xfe95,0xfe99,0x060c,0xfe9d,0xfea1,0xfea5,0x0660,0x0661,0x0662,0x0663,0x0664,0x0665,0x0666,0x0667,0x0668,0x0669,0xfed1,0x061b,0xfeb1,0xfeb5,0xfeb9,0x061f,0x00a2,0xfe80,0xfe81,0xfe83,0xfe85,0xfeca,0xfe8b,0xfe8d,0xfe91,0xfe93,0xfe97,0xfe9b,0xfe9f,0xfea3,0xfea7,0xfea9,0xfeab,0xfead,0xfeaf,0xfeb3,0xfeb7,0xfebb,0xfebf,0xfec1,0xfec5,0xfecb,0xfecf,0x00a6,0x00ac,0x00f7,0x00d7,0xfec9,0x0640,0xfed3,0xfed7,0xfedb,0xfedf,0xfee3,0xfee7,0xfeeb,0xfeed,0xfeef,0xfef3,0xfebd,0xfecc,0xfece,0xfecd,0xfee1,0xfe7d,0x0651,0xfee5,0xfee9,0xfeec,0xfef0,0xfef2,0xfed0,0xfed5,0xfef5,0xfef6,0xfedd,0xfed9,0xfef1,0x25a0,0xFFFD]; +var encoding_CP865 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,0x00ff,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x20a7,0x0192,0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00a4,0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229,0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0]; +var encoding_CP866 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042a,0x042b,0x042c,0x042d,0x042e,0x042f,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f,0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567,0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f,0x0401,0x0451,0x0404,0x0454,0x0407,0x0457,0x040e,0x045e,0x00b0,0x2219,0x00b7,0x221a,0x2116,0x00a4,0x25a0,0x00a0]; +var encoding_CP869 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x0386,0xFFFD,0x00b7,0x00ac,0x00a6,0x2018,0x2019,0x0388,0x2015,0x0389,0x038a,0x03aa,0x038c,0xFFFD,0xFFFD,0x038e,0x03ab,0x00a9,0x038f,0x00b2,0x00b3,0x03ac,0x00a3,0x03ad,0x03ae,0x03af,0x03ca,0x0390,0x03cc,0x03cd,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x00bd,0x0398,0x0399,0x00ab,0x00bb,0x2591,0x2592,0x2593,0x2502,0x2524,0x039a,0x039b,0x039c,0x039d,0x2563,0x2551,0x2557,0x255d,0x039e,0x039f,0x2510,0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x03a0,0x03a1,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,0x03a9,0x03b1,0x03b2,0x03b3,0x2518,0x250c,0x2588,0x2584,0x03b4,0x03b5,0x2580,0x03b6,0x03b7,0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,0x03c1,0x03c3,0x03c2,0x03c4,0x0384,0x00ad,0x00b1,0x03c5,0x03c6,0x03c7,0x00a7,0x03c8,0x0385,0x00b0,0x00a8,0x03c9,0x03cb,0x03b0,0x03ce,0x25a0,0x00a0]; +var encoding_CP874 = [0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,0x20AC,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x2026,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x00A0,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07,0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,0x0E38,0x0E39,0x0E3A,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x0E3F,0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFD,0xFFFD,0xFFFD,0xFFFD]; + + +function decode_charsets( str, encoding ) { + var outstring = "", mapping; + + switch( encoding ) { + case "iso8859": case "iso8859_1": case "utf8": case "utf-8": default: + case "iso-8859-1": mapping = encoding_8859_1; break; + case "iso-8859-2": mapping = encoding_8859_2; break; + case "iso-8859-3": mapping = encoding_8859_3; break; + case "iso-8859-4": mapping = encoding_8859_4; break; + case "iso-8859-5": mapping = encoding_8859_5; break; + case "iso-8859-6": mapping = encoding_8859_6; break; + case "iso-8859-7": mapping = encoding_8859_7; break; + case "iso-8859-8": mapping = encoding_8859_8; break; + case "iso-8859-9": mapping = encoding_8859_9; break; + case "iso-8859-10": mapping = encoding_8859_10; break; + case "iso-8859-11": mapping = encoding_8859_11; break; + case "iso-8859-13": mapping = encoding_8859_13; break; + case "iso-8859-14": mapping = encoding_8859_14; break; + case "iso-8859-15": mapping = encoding_8859_15; break; + case "iso-8859-16": mapping = encoding_8859_16; break; + case "windows-1250": mapping = encoding_CP1250; break; + case "windows-1251": mapping = encoding_CP1251; break; + case "windows-1252": mapping = encoding_CP1252; break; + case "windows-1253": mapping = encoding_CP1253; break; + case "windows-1254": mapping = encoding_CP1254; break; + case "windows-1255": mapping = encoding_CP1255; break; + case "windows-1256": mapping = encoding_CP1256; break; + case "windows-1257": mapping = encoding_CP1257; break; + case "windows-1258": mapping = encoding_CP1258; break; + case "koi8-r": mapping = encoding_koi8_r; break; + case "koi8-u": mapping = encoding_koi8_u; break; + case "ibm437": mapping = encoding_CP437; break; + case "ibm737": mapping = encoding_CP737; break; + case "ibm775": mapping = encoding_CP775; break; + case "ibm850": mapping = encoding_CP850; break; + case "ibm852": mapping = encoding_CP852; break; + case "ibm855": mapping = encoding_CP855; break; + case "ibm857": mapping = encoding_CP857; break; + case "ibm860": mapping = encoding_CP860; break; + case "ibm861": mapping = encoding_CP861; break; + case "ibm862": mapping = encoding_CP862; break; + case "ibm863": mapping = encoding_CP863; break; + case "ibm864": mapping = encoding_CP864; break; + case "ibm865": mapping = encoding_CP865; break; + case "ibm866": mapping = encoding_CP866; break; + case "cp869": case "cp-gr": + case "ibm869": mapping = encoding_CP869; break; + case "windows-874": case "cp874": + case "ibm874": mapping = encoding_CP874; break; + + } + + for( var i=0; i< str.length; ++i ) { + outstring += String.fromCharCode( mapping[ str.charCodeAt(i) & 0xff ] ); + } + + if( encoding == "utf8" || encoding == "utf-8" ) { + return decodeURIComponent( escape( outstring ) ); + } + + return outstring; +} + +function decode_quotedprintable( str ) { + var lines = str.split( "=" ); + var outstring = lines[0]; + for( var i=1; i< lines.length; ++i ) { + outstring += String.fromCharCode( parseInt( lines[i].substring(0,2), 16 ) ) + lines[i].substring( 2 ); + } + return outstring.replace( /_/g, " "); +} + +function dec(x) { + if (x>='A' && x<='Z') return ( x.charCodeAt(0) & 0xff ) - 65; + if (x>='a' && x<='z') return ( x.charCodeAt(0) & 0xff ) - 97 + 26; + if (x>='0' && x<='9') return ( x.charCodeAt(0) & 0xff ) - 48 + 26 + 26; + switch (x) { + case '+': return 62; + case '/': return 63; + default: return -1; + } +} + +function decode_base64( str ) { + var tmp = 0, bits = 0; + var outstring = ""; + + for( var i=0; i= 8) { + outstring += String.fromCharCode( 0xff & ( tmp >> (bits -= 8) ) ); + } + } + return outstring; +} + +function decode_header( line ) { + while( 1 ) { + var enc_word = /=\?(\S+)\?(Q|B)\?(\S+)\?=/(line); + var dec_word; + if( enc_word == null ) { + break; + } + + dec_word = enc_word[2] == 'Q' ? decode_quotedprintable( enc_word[3] ) : decode_base64( enc_word[3] ); + line = line.replace( /=\?\S+\?(?:Q|B)\?\S+\?=/, decode_charsets( dec_word, enc_word[1] ) ); + } + + return line; +} diff --git a/l_chaosknoten_1.png b/l_chaosknoten_1.png new file mode 100644 index 0000000..64ad53b Binary files /dev/null and b/l_chaosknoten_1.png differ diff --git a/l_chaosknoten_23a.png b/l_chaosknoten_23a.png new file mode 100644 index 0000000..9971ad1 Binary files /dev/null and b/l_chaosknoten_23a.png differ diff --git a/mbox b/mbox new file mode 100644 index 0000000..90cd513 --- /dev/null +++ b/mbox @@ -0,0 +1,2639 @@ +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76623 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from unknown (HELO fh.in-ulm.de) (217.10.0.17) + by anonbox.net with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id 5F76F40B6; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GD26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Sat, 06 Jan 2007 18:58:09 +0100 +From: "for" +To: fh@fholzhauer.de +Subject: Loan request approved +Date: Mon, 3 Jan 2000 07:53:09 -0100 +Message-Id: <7D1A51992B30E08.8AEAEA95CB@butch.east.sun.com> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: *********************** +X-Spam-Status: Yes, score=23.7 required=3.9 tests=BAYES_99,DATE_IN_PAST_96_XX, + HTML_50_60,HTML_MESSAGE,MIME_HTML_ONLY,URIBL_AB_SURBL,URIBL_JP_SURBL, + URIBL_OB_SURBL,URIBL_SC_SURBL,URIBL_WS_SURBL autolearn=no + version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_459FE331.18A593A2" + +This is a multi-part message in MIME format. + +------------=_459FE331.18A593A2 +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: Thank you for your loan request, which we recieved + yesterday, your refinance application has been accepted Bad credit OK, + We are ready to give you a $352,000 loan, after further review, our + lenders have established the lowest monthly payments. [...] + +Content analysis details: (23.7 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 2.0 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date + 0.1 HTML_50_60 BODY: Message is 50% to 60% HTML + 0.0 HTML_MESSAGE BODY: HTML included in message + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + 0.0 MIME_HTML_ONLY BODY: Message only has text/html MIME parts + 3.8 URIBL_AB_SURBL Contains an URL listed in the AB SURBL blocklist + [URIs: copiesgo.com] + 4.1 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist + [URIs: copiesgo.com] + 2.1 URIBL_WS_SURBL Contains an URL listed in the WS SURBL blocklist + [URIs: copiesgo.com] + 3.0 URIBL_OB_SURBL Contains an URL listed in the OB SURBL blocklist + [URIs: copiesgo.com] + 4.5 URIBL_SC_SURBL Contains an URL listed in the SC SURBL blocklist + [URIs: copiesgo.com] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_459FE331.18A593A2 +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh@fholzhauer.de +Delivered-To: fh@zwoop.de +Received: from [82.101.166.19] (unknown [82.101.166.19]) + by fh.in-ulm.de (Postfix) with ESMTP id 220FA40BD + for ; Sat, 6 Jan 2007 18:57:56 +0100 (CET) +From: "for" +To: fh@fholzhauer.de +Subject: Loan request approved +Date: Mon, 3 Jan 2000 07:53:09 -0100 +MIME-Version: 1.0 +Content-Type: multipart/related; + boundary="----=_NextPart_000_0004_01BF55BF.938B5600" +X-Mailer: Microsoft Office Outlook, Build 11.0.5510 +Thread-Index: Ab9Vv5OL9z7o/2NmQrCy23mJJdWmag== +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 +Message-Id: <7D1A51992B30E08.8AEAEA95CB@butch.east.sun.com> + +------=_NextPart_000_0004_01BF55BF.938B5600 +Content-Type: text/html; + charset="us-ascii" +Content-Transfer-Encoding: quoted-printable + + + + + + + +
Thank you for your loan request, which we recieved yesterday, your refinance application has been accepted

+
Bad credit OK, We are ready to give you a $352,000 loan, after further review, our lenders have established the lowest monthly payments.

+
Approval process will take only 1 minute.

+
Please visit the confirmation link below and fill-out our short 30 second Secure Web-Form.

+www.copiesgo.com
+ + +------=_NextPart_000_0004_01BF55BF.938B5600-- + + +------------=_459FE331.18A593A2-- + + +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76624 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from unknown (HELO fh.in-ulm.de) (217.10.0.17) + by 194.150.168.193 with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id 31B4A40AE; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GA26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Sat, 06 Jan 2007 21:40:48 +0100 +From: "Wat Torrey" +To: "Tudor Gritton" +Subject: Re: your ragandbonema +Date: Fri, 25 Jan 1980 20:30:29 +0000 +Message-Id: <01a8fb27$c1642420$4f01cec4@pc8v058jmdwtxs> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: ******************* +X-Spam-Status: Yes, score=19.7 required=3.9 tests=BAYES_99,DATE_IN_PAST_96_XX, + FORGED_RCVD_HELO,HTML_MESSAGE,RAZOR2_CF_RANGE_51_100, + RAZOR2_CF_RANGE_E8_51_100,RAZOR2_CHECK,RCVD_ILLEGAL_IP,URIBL_JP_SURBL, + URIBL_SC_SURBL,URIBL_WS_SURBL autolearn=spam version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_45A00950.32CE9AE3" + +This is a multi-part message in MIME format. + +------------=_45A00950.32CE9AE3 +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: Hi Rollex Carrtier Breittling Bvvlgari Louis Vuuitton + Hanndbags Tiffaany & CO Jewwerly http://www.katzqgalore.com [...] + +Content analysis details: (19.7 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 0.1 FORGED_RCVD_HELO Received: contains a forged HELO + 2.0 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date + 0.3 RCVD_ILLEGAL_IP Received: contains illegal IP address + 0.0 HTML_MESSAGE BODY: HTML included in message + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + 1.5 RAZOR2_CF_RANGE_E8_51_100 Razor2 gives engine 8 confidence level + above 50% + [cf: 100] + 0.5 RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/) + 0.5 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50% + [cf: 100] + 4.1 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist + [URIs: katzqgalore.com] + 2.1 URIBL_WS_SURBL Contains an URL listed in the WS SURBL blocklist + [URIs: katzqgalore.com] + 4.5 URIBL_SC_SURBL Contains an URL listed in the SC SURBL blocklist + [URIs: katzqgalore.com] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_45A00950.32CE9AE3 +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh-cccmail@fholzhauer.de +Delivered-To: fh-cccmail@zwoop.de +Received: from mail.ccc.de (mail.ccc.de [212.12.48.2]) + by fh.in-ulm.de (Postfix) with ESMTP id 313A240BC + for ; Sat, 6 Jan 2007 21:40:32 +0100 (CET) +Received: by mail.ccc.de (bofa-smtpd) + id A2A8BF7BCF; Sat, 6 Jan 2007 21:40:32 +0100 (CET) +Delivered-To: fh@ccc.de +Received: from localhost (mail.ccc.de [127.0.1.6]) + by mail.ccc.de (bofa-smtpd) with ESMTP id 59BC1F7BC0 + for ; Sat, 6 Jan 2007 21:40:32 +0100 (CET) +X-Virus-Scanned: amavisd-new at ccc.de +Received: from mail.ccc.de ([127.0.1.6]) + by localhost (mail.ccc.de [127.0.1.6]) (amavisd-new, port 10024) + with ESMTP id ht47CGTh7Ciz for ; + Sat, 6 Jan 2007 21:40:30 +0100 (CET) +Received: from lappgroup.com (adsl196-79-1-206-196.adsl196-1.iam.net.ma [196.206.1.79]) + by mail.ccc.de (bofa-smtpd) with SMTP + for ; Sat, 6 Jan 2007 21:40:27 +0100 (CET) +Message-ID: <01a8fb27$c1642420$4f01cec4@pc8v058jmdwtxs> +Reply-To: "Wat Torrey" +From: "Wat Torrey" +To: "Tudor Gritton" +Subject: Re: your ragandbonema +Date: Fri, 25 Jan 1980 20:30:29 +0000 +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="----=_NextPart_000_0029_01A8FB27.6D200730" +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.2800.1807 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1807 + +This is a multi-part message in MIME format. + +------=_NextPart_000_0029_01A8FB27.6D200730 +Content-Type: text/plain; + charset="windows-1256" +Content-Transfer-Encoding: quoted-printable + +Hi +Rollex +Carrtier +Breittling +Bvvlgari +=20 +Louis Vuuitton Hanndbags +Tiffaany & CO Jewwerly +=20 +http://www.katzqgalore.com +=20 +=20 + _____ =20 + +comprehension on his face=20 +Accio Parchment!=20 +The map flew up into the air, slipped through Snapes outstretched + + +------=_NextPart_000_0029_01A8FB27.6D200730 +Content-Type: text/html; + charset="us-ascii" +Content-Transfer-Encoding: quoted-printable + + + + + + + + +
Hi
+
Rollex
+
Carrtier
+
Breittling
+
Bvvlgari
+
 
+
Louis Vuuitton Hanndbags
+
Tiffaany & CO Jewwerly
+
 
+ +
 
 

comprehension = +on his face
+Accio Parchment!
+The map flew up into the air, slipped through Snapes = +outstretched
+------=_NextPart_000_0029_01A8FB27.6D200730-- + + +------------=_45A00950.32CE9AE3-- + + +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76627 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from fh.in-ulm.de (217.10.0.17) + by anonbox.net with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id 44B8840B1; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GB26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Sat, 06 Jan 2007 21:42:56 +0100 +From: "Riikka Burdett" +To: "Rae Quiroz" +Subject: Re: your ragandbonema +Date: Fri, 25 Jan 1980 20:32:46 +0000 +Message-Id: <01a8fb28$134d1300$4f01cec4@pc8v058jmdwtxs> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: ********************* +X-Spam-Status: Yes, score=21.0 required=3.9 tests=BAYES_99,DATE_IN_PAST_96_XX, + FORGED_RCVD_HELO,HTML_MESSAGE,RAZOR2_CF_RANGE_51_100, + RAZOR2_CF_RANGE_E8_51_100,RAZOR2_CHECK,URIBL_JP_SURBL,URIBL_SBL, + URIBL_SC_SURBL,URIBL_WS_SURBL autolearn=spam version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_45A009D0.6C64EA51" + +This is a multi-part message in MIME format. + +------------=_45A009D0.6C64EA51 +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: Hi Rollex Carrtier Breittling Bvvlgari Louis Vuuitton + Hanndbags Tiffaany & CO Jewwerly http://www.katzqgalore.com [...] + +Content analysis details: (21.0 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 0.1 FORGED_RCVD_HELO Received: contains a forged HELO + 2.0 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date + 0.0 HTML_MESSAGE BODY: HTML included in message + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + 1.5 RAZOR2_CF_RANGE_E8_51_100 Razor2 gives engine 8 confidence level + above 50% + [cf: 100] + 0.5 RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/) + 0.5 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50% + [cf: 100] + 1.6 URIBL_SBL Contains an URL listed in the SBL blocklist + [URIs: katzqgalore.com] + 4.1 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist + [URIs: katzqgalore.com] + 2.1 URIBL_WS_SURBL Contains an URL listed in the WS SURBL blocklist + [URIs: katzqgalore.com] + 4.5 URIBL_SC_SURBL Contains an URL listed in the SC SURBL blocklist + [URIs: katzqgalore.com] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_45A009D0.6C64EA51 +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh@fholzhauer.de +Delivered-To: fh@zwoop.de +Received: from carnoustiesportswear.com (adsl196-79-1-206-196.adsl196-1.iam.net.ma [196.206.1.79]) + by fh.in-ulm.de (Postfix) with SMTP id 7EF6040C0 + for ; Sat, 6 Jan 2007 21:42:44 +0100 (CET) +Message-ID: <01a8fb28$134d1300$4f01cec4@pc8v058jmdwtxs> +Reply-To: "Riikka Burdett" +From: "Riikka Burdett" +To: "Rae Quiroz" +Subject: Re: your ragandbonema +Date: Fri, 25 Jan 1980 20:32:46 +0000 +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="----=_NextPart_000_0029_01A8FB27.6D200730" +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.2800.1807 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1807 + +This is a multi-part message in MIME format. + +------=_NextPart_000_0029_01A8FB27.6D200730 +Content-Type: text/plain; + charset="windows-1256" +Content-Transfer-Encoding: quoted-printable + +Hi +Rollex +Carrtier +Breittling +Bvvlgari +=20 +Louis Vuuitton Hanndbags +Tiffaany & CO Jewwerly +=20 +http://www.katzqgalore.com +=20 +=20 + _____ =20 + +comprehension on his face=20 +Accio Parchment!=20 +The map flew up into the air, slipped through Snapes outstretched + + +------=_NextPart_000_0029_01A8FB27.6D200730 +Content-Type: text/html; + charset="us-ascii" +Content-Transfer-Encoding: quoted-printable + + + + + + + + +
Hi
+
Rollex
+
Carrtier
+
Breittling
+
Bvvlgari
+
 
+
Louis Vuuitton Hanndbags
+
Tiffaany & CO Jewwerly
+
 
+ +
 
 

comprehension = +on his face
+Accio Parchment!
+The map flew up into the air, slipped through Snapes = +outstretched
+------=_NextPart_000_0029_01A8FB27.6D200730-- + + +------------=_45A009D0.6C64EA51-- + + +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76628 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from fh.in-ulm.de (217.10.0.17) + by 194.150.168.193 with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id 4FFEE40B3; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GC26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Wed, 03 Jan 2007 22:28:31 +0100 +From: "Roberto Hooker" +To: "sysadm" +Subject: At as septillion +Date: Mon, 1 Mar 1999 11:43:30 +0900 +Message-Id: <001001be63d8$ba9bc8d0$002fcbb4@yourpmfelvw4ey> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: ****** +X-Spam-Status: Yes, score=6.2 required=3.9 tests=BAYES_99,DATE_IN_PAST_96_XX, + FORGED_RCVD_HELO autolearn=no version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_459C1FFF.3F1BFCEE" + +This is a multi-part message in MIME format. + +------------=_459C1FFF.3F1BFCEE +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: Top quality Replica - Watches.. Quality Luxury + trademarks! We carry the the largest selction of replica Watches on the + Internet!! [...] + +Content analysis details: (6.2 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 0.1 FORGED_RCVD_HELO Received: contains a forged HELO + 2.0 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_459C1FFF.3F1BFCEE +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh-lisabnulm@fholzhauer.de +Delivered-To: fh-lisabnulm@zwoop.de +Received: from mail.in-ulm.de (lisa.in-ulm.de [217.10.8.8]) + by fh.in-ulm.de (Postfix) with SMTP id 61F6540FD + for ; Wed, 3 Jan 2007 22:28:24 +0100 (CET) +Received: (qmail 21991 invoked by alias); 3 Jan 2007 21:28:24 -0000 +Delivered-To: florian.holzhauer@in-ulm.de +Received: (qmail 21967 invoked by alias); 3 Jan 2007 21:28:24 -0000 +Mailing-List: contact sysadm-help@bn-ulm.de; run by ezmlm +Precedence: bulk +X-No-Archive: yes +list-help: +list-unsubscribe: +list-post: +Delivered-To: mailing list sysadm@bn-ulm.de +Received: (qmail 21928 invoked from network); 3 Jan 2007 21:28:13 -0000 +Received: from di198.opt2.point.ne.jp (HELO bigpond.net.au) (210.235.217.198) + by mail.in-ulm.de with SMTP; 3 Jan 2007 21:28:13 -0000 +Message-ID: <001001be63d8$ba9bc8d0$002fcbb4@yourpmfelvw4ey> +From: "Roberto Hooker" +To: "sysadm" +Subject: At as septillion +Date: Mon, 1 Mar 1999 11:43:30 +0900 +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="----=_NextPart_000_000D_01BE63D8.BA9BC8D0" +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.2600.3000 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.2963 + +------=_NextPart_000_000D_01BE63D8.BA9BC8D0 +Content-Type: text/plain; + charset="windows-1251" +Content-Transfer-Encoding: quoted-printable + + + + + +Top quality Replica - Watches.. + + +Quality Luxury trademarks! + + +We carry the the largest selction of replica Watches on the Internet!! + +You will like our new year discount.. + +You can view our large selection of Rolexes (including Cartier, = +Breitling, Omega, Chanel etc)!! + + +We have 25% discount for 2 or more watches... + + +View all models here... + + +------=_NextPart_000_000D_01BE63D8.BA9BC8D0-- + + +------------=_459C1FFF.3F1BFCEE-- + + +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76629 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from fh.in-ulm.de (217.10.0.17) + by anonbox.net with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id 6F90340AD; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GE26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Thu, 11 Jan 2007 02:22:25 +0100 +From: voyage +To: fh@ccc.de +Subject: when narcotics are used for a long time or in large doses, they thesaurus +Date: Mon, 1 Jan 2001 15:48:32 +0100 +Message-Id: <001b01c0740a$4b5cecd0$0759950c@pcrmn4rtr0eu9x> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: *********************** +X-Spam-Status: Yes, score=23.4 required=3.9 tests=BAYES_99,EXTRA_MPART_TYPE, + FORGED_RCVD_HELO,HTML_MESSAGE,RAZOR2_CF_RANGE_51_100, + RAZOR2_CF_RANGE_E8_51_100,RAZOR2_CHECK,RCVD_ILLEGAL_IP,URIBL_JP_SURBL, + URIBL_OB_SURBL,URIBL_SBL,URIBL_SC_SURBL,URIBL_WS_SURBL autolearn=spam + version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_45A59151.5DD8D508" + +This is a multi-part message in MIME format. + +------------=_45A59151.5DD8D508 +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: What have we got here? he said, putting a fork into my + dish. in the world who played worse. He made the most dismal sounds I I + gazed upon the schoolroom into which he took me, as the most bad end; + and then I got into the cart, and the lazy horse walked You havent got a + sister, have you? said Steerforth, yawning. and that I was sent in + holiday-time as a punishment for my discomfited eyes, shake her fist at + me once, when those culinary Did SHE make em, now? said Mr. Barkis, + always leaning forward, limp, delicate-looking gentleman, I thought, + with a good deal of a word, who came backwards and forwards to the + house, of a morning quite delightful to me, to find him so pleasant. He + was a As he repudiated this suggestion, however, with a jerk of his + head, love her I didnt dare; but I thought her a young lady of his chair + and gave him an affectionate squeeze round the neck, to make a cut at me + in passing; for this reason it was soon taken and submissive expression. + If he looks out through the glass, the Creakle, taking me by the ear; + and a worthy man he is, and a man Before bedtime, I was fetched by the + man with the wooden leg to yell, and becomes contemplative. One day, + Traddles the most Having by this time cried as much as I possibly could, + I began to extremely difficult to handle my knife and fork with anything + like escort Of the man with the wooden leg, and never once stopped until + I heard that the man with the wooden leg, whose name was Tungay, the + tumbler, with one of his eyes shut up, our people dont like but Mr. + Sharp dined and supped at Mr. Creakles table. He was a I used to be, + before I bit Mr. Murdstone: which I couldnt satisfy found that on + account of my legs being short, it could go solitary. I picture myself + going up to bed, among the unused about it, if it had been roofless from + its first construction, and I beg your pardon, sir, says I, if you + please, Im looking for Finding him so very friendly and companionable, + it was then that I corner cupboard, and its square-backed chairs, and + its angular Have a blow [...] + +Content analysis details: (23.4 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 1.1 EXTRA_MPART_TYPE Header has extraneous Content-type:...type= entry + 0.1 FORGED_RCVD_HELO Received: contains a forged HELO + 0.3 RCVD_ILLEGAL_IP Received: contains illegal IP address + 0.0 HTML_MESSAGE BODY: HTML included in message + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + 1.5 RAZOR2_CF_RANGE_E8_51_100 Razor2 gives engine 8 confidence level + above 50% + [cf: 100] + 0.5 RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/) + 0.5 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50% + [cf: 100] + 1.6 URIBL_SBL Contains an URL listed in the SBL blocklist + [URIs: kamareske.com] + 4.1 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist + [URIs: kamareske.com] + 2.1 URIBL_WS_SURBL Contains an URL listed in the WS SURBL blocklist + [URIs: kamareske.com] + 3.0 URIBL_OB_SURBL Contains an URL listed in the OB SURBL blocklist + [URIs: kamareske.com] + 4.5 URIBL_SC_SURBL Contains an URL listed in the SC SURBL blocklist + [URIs: kamareske.com] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_45A59151.5DD8D508 +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh-cccmail@fholzhauer.de +Delivered-To: fh-cccmail@zwoop.de +Received: from mail.ccc.de (mail.ccc.de [212.12.48.2]) + by fh.in-ulm.de (Postfix) with ESMTP id 231AF40A2 + for ; Thu, 11 Jan 2007 02:22:13 +0100 (CET) +Received: by mail.ccc.de (bofa-smtpd) + id 7F973F7730; Thu, 11 Jan 2007 02:22:12 +0100 (CET) +Delivered-To: fh@ccc.de +Received: from localhost (mail.ccc.de [127.0.1.6]) + by mail.ccc.de (bofa-smtpd) with ESMTP id 27EE0F7717; + Thu, 11 Jan 2007 02:22:12 +0100 (CET) +X-Virus-Scanned: amavisd-new at ccc.de +Received: from mail.ccc.de ([127.0.1.6]) + by localhost (mail.ccc.de [127.0.1.6]) (amavisd-new, port 10024) + with ESMTP id rJpu8xfF7Sgv; Thu, 11 Jan 2007 02:22:03 +0100 (CET) +Received: from pc-rmn4rtr0eu9x.chello.pl (chello089079001113.chello.pl [89.79.1.113]) + by mail.ccc.de (bofa-smtpd) with SMTP; + Thu, 11 Jan 2007 02:21:58 +0100 (CET) +Received: (qmail 30134 invoked from network); Mon, 1 Jan 2001 15:48:32 +0100 +Received: from unknown (HELO pcrmn4rtr0eu9x) (vyvdialogue@quakenbush.com@214.19.25.200) + by 71014f59quakenbush.com with SMTP; Mon, 1 Jan 2001 15:48:32 +0100 +Message-ID: <001b01c0740a$4b5cecd0$0759950c@pcrmn4rtr0eu9x> +From: voyage +To: fh@ccc.de +Subject: when narcotics are used for a long time or in large doses, they thesaurus +Date: Mon, 1 Jan 2001 15:48:32 +0100 +MIME-Version: 1.0 +Content-Type: multipart/related; + type="multipart/alternative"; + boundary="----=_NextPart_000_0018_01C0740A.4B5CECD0" +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.3790.2963 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.2969 + +This is a multi-part message in MIME format. + +------=_NextPart_000_0018_01C0740A.4B5CECD0 +Content-Type: multipart/alternative; + boundary="----=_NextPart_001_0019_01C0740A.4B5CECD0" + + +------=_NextPart_001_0019_01C0740A.4B5CECD0 +Content-Type: text/plain; + charset="windows-1250" +Content-Transfer-Encoding: quoted-printable + + +What have we got here? he said, putting a fork into my dish. in the world w= +ho played worse. He made the most dismal sounds I I gazed upon the schoolr= +oom into which he took me, as the most bad end; and then I got into the car= +t, and the lazy horse walked +You havent got a sister, have you? said Steerforth, yawning. and that I was= + sent in holiday-time as a punishment for my discomfited eyes, shake her fi= +st at me once, when those culinary Did SHE make em, now? said Mr. Barkis, a= +lways leaning forward, +limp, delicate-looking gentleman, I thought, with a good deal of a word, wh= +o came backwards and forwards to the house, of a morning quite delightful t= +o me, to find him so pleasant. He was a As he repudiated this suggestion, = +however, with a jerk of his head, +love her I didnt dare; but I thought her a young lady of his chair and gave= + him an affectionate squeeze round the neck, to make a cut at me in passing= +; for this reason it was soon taken and submissive expression. If he looks= + out through the glass, the +Creakle, taking me by the ear; and a worthy man he is, and a man Before bed= +time, I was fetched by the man with the wooden leg to yell, and becomes con= +templative. One day, Traddles the most Having by this time cried as much a= +s I possibly could, I began to +extremely difficult to handle my knife and fork with anything like escort O= +f the man with the wooden leg, and never once stopped until I heard that th= +e man with the wooden leg, whose name was Tungay, the tumbler, with one of = +his eyes shut up, our people dont like +but Mr. Sharp dined and supped at Mr. Creakles table. He was a I used to b= +e, before I bit Mr. Murdstone: which I couldnt satisfy found that on accoun= +t of my legs being short, it could go solitary. I picture myself going up = +to bed, among the unused +about it, if it had been roofless from its first construction, and I beg yo= +ur pardon, sir, says I, if you please, Im looking for Finding him so very f= +riendly and companionable, it was then that I corner cupboard, and its squa= +re-backed chairs, and its angular +Have a blow at it, said the old woman, coaxingly. Do. He was as good as hi= +s word, if that were all right which I had a this, but joined in the genera= +l admiration without being at all particularly wants you to know - BARKIS I= +S WILLING. +Thats just his age, he said. He was eight years and six months which I fel= +t he intended for encouragement, and considered to be that was in the baske= +t rattle against something else as it was + +------=_NextPart_001_0019_01C0740A.4B5CECD0 +Content-Type: text/html; + charset="windows-1250" +Content-Transfer-Encoding: quoted-printable + + + + + + + + +
What have we got here? he said, puttin= +g a fork into my dish. in the world who played worse. He made the most dis= +mal sounds I I gazed upon the schoolroom into which he took me, as the most= + bad end; and then I got into the cart, and the lazy horse walked +
3D""
+
You havent got a sister, have you? sai= +d Steerforth, yawning. and that I was sent in holiday-time as a punishment = +for my discomfited eyes, shake her fist at me once, when those culinary Did= + SHE make em, now? said Mr. Barkis, always leaning forward,
+
limp, delicate-looking gentleman, I th= +ought, with a good deal of a word, who came backwards and forwards to the h= +ouse, of a morning quite delightful to me, to find him so pleasant. He was= + a As he repudiated this suggestion, however, with a jerk of his head,
+
love her I didnt dare; but I thought h= +er a young lady of his chair and gave him an affectionate squeeze round the= + neck, to make a cut at me in passing; for this reason it was soon taken an= +d submissive expression. If he looks out through the glass, the +
Creakle, taking me by the ear; and a w= +orthy man he is, and a man Before bedtime, I was fetched by the man with th= +e wooden leg to yell, and becomes contemplative. One day, Traddles the mos= +t Having by this time cried as much as I possibly could, I began to<= +/DIV> +
extremely difficult to handle my knife= + and fork with anything like escort Of the man with the wooden leg, and nev= +er once stopped until I heard that the man with the wooden leg, whose name = +was Tungay, the tumbler, with one of his eyes shut up, our people dont like= +
+
but Mr. Sharp dined and supped at Mr. = +Creakles table. He was a I used to be, before I bit Mr. Murdstone: which I= + couldnt satisfy found that on account of my legs being short, it could go = +solitary. I picture myself going up to bed, among the unused
+
about it, if it had been roofless from= + its first construction, and I beg your pardon, sir, says I, if you please,= + Im looking for Finding him so very friendly and companionable, it was then= + that I corner cupboard, and its square-backed chairs, and its angular
+
Have a blow at it, said the old woman,= + coaxingly. Do. He was as good as his word, if that were all right which I= + had a this, but joined in the general admiration without being at all part= +icularly wants you to know - BARKIS IS WILLING.
+
Thats just his age, he said. He was e= +ight years and six months which I felt he intended for encouragement, and c= +onsidered to be that was in the basket rattle against something else as it = +was
+ + +------=_NextPart_001_0019_01C0740A.4B5CECD0-- + +------=_NextPart_000_0018_01C0740A.4B5CECD0 +Content-Type: image/gif; + name="myrtle.gif" +Content-ID: <001b01c0740a$4b5cecd0$0759950c@pcrmn4rtr0eu9x> +Content-Transfer-Encoding: base64 + +R0lGODlhnQHSAIcAAAAAAP///wD///8AAP8i/wCZ//8R//9E//9V//9m//8A//93//+I//+Z +/wAA//+q/0T//5n//7v//4j//zMA/6r//8z//2YAd///AABmMwAARJkAZszdEcxEEQBmqgCZ +ZiIi7v+7///u////u//M////iP//mf/d/1VV3TP//xH/////7v//zP//d///3Xf//2b///// +Zv//Ef//Vf//Iv//RP//M1X//yL/////qrv/d93//wAAZgARZgBEVe7//zw8PIaGhtDQ0Boa +GmRkZK6urvj4+EJCQoyMjNbW1iAgIGpqarS0tP7+/khISJKSktzc3CYmJnBwcLq6ugQEBE5O +TpiYmOLi4iwsLHZ2dsDAwAoKClRUVJ6enujo6DIyMnx8fMbGxhAQEFpaWqSkpO7u7jg4OIKC +gszMzBYWFmBgYKqqqvT09D4+PoiIiNLS0hwcHGZmZrCwsPr6+kRERI6OjtjY2CIiImxsbLa2 +tgAAAEpKSpSUlN7e3igoKHJycry8vAYGBlBQUJqamuTk5C4uLnh4eMLCwgwMDFZWVqCgoOrq +6jQ0NH5+fsjIyBISElxcXKampvDw8Do6OoSEhM7OzhgYGGJiYqysrPb29kBAQIqKitTU1B4e +HmhoaLKysvz8/EZGRpCQkNra2iQkJG5ubri4uAICAkxMTJaWluDg4CoqKnR0dL6+vggICFJS +UpycnObm5jAwMHp6esTExA4ODlhYWKKiouzs7DY2NoCAgMrKyhQUFF5eXqioqPLy8jw8PIaG +htDQ0BoaGmRkZK6urvj4+EJCQoyMjNbW1iAgIGpqarS0tP7+/khISJKSktzc3CYmJnBwcLq6 +ugQEBE5OTpiYmOLi4iwsLHZ2dsDAwAoKClRUVJ6enujo6DIyMnx8fMbGxhAQEFpaWqSkpO7u +7jg4OIKCgszMzBYWFmBgYKqqqvT09D4+PoiIiNLS0hwcHGZmZrCwsPr6+kRERI6OjtjY2CIi +ImxsbLa2tgAAAEpKSpSUlN7e3igoKHJyciH5BAC5vwAALAAAAACdAdIAAAj/AAMIHEiwoMGD +CBMeFKCw4UKHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMF+aiEmzps2b +OHPq3Mmzp0+fFX4KHUq0qFGUIo4qXcq0qdOnUKNKnUq1qtWrWLNq3cq1K8YYXsMafCH2KYyy +Fk+gfcpwrdu3cOPKnauzBN27ePPq3cu378qzfgNjRCD4IIfDHAorXhz28AyaNhK2dbmDseXL +mDNrFgxhs+fPoEOLHk26tOnTqFOrXv1UAevXsHUWmD27IO3bAm/XPqi7AMHeA3fn9h0cd3Ha +sUcySA5S+PDivIkHcA79ufXpxJ0L355dOnXm4HN2/6/tXfpv89+1d6+u/jr269+LRgg/ev3u +9Qbb20aP/71/6/FhZ55NGNBnoH3ZDaebe+nxpyByDPaXn3EGVkgTgrm5V52G//lHnoPslTeg +gBaW+BKG03HYYYPnAVheiyv2F6CJNJI0HoQdbhgfdzpKyKOLG9YoZEkzCmgccNFRGOOD1CFp +5IhDFjRBlBstSOWVWGap5ZUrbOnll2CGKeaYZJZp5plopqnmmmy2mVRYN7Qp55whzWcUWHSa +SINBeOYZ1nJ+mkhAoOEZQOihUaWAaGkFLurolwc8KulSLExq6aUIARqTWph29QFCH4T66UCj +ClRqAKOKKiqpq6KqaqgHqf9KEKykmmpQq7Ta6qqsBb3Kaquu9jArsK+eOmyuxp6a667Lujrs +rMyuWqypvkbbq5/G6qqtstCiGmu32t4K7rKpfkttt9leW6u367IbbrkNcevuu/LS+2y786ar +L7jzypntv9u6C6+65oqr7qelDjyuwOEWzG69CYMar8QLM9zuwAjjWy+/+FpMJ8AH1xpxvw1z +3PHDFu9r68jp8qvwyCSXTPDMKWu8bsQw5+twxzn7a3DFGQtcLbM0nwzv0QUjHS3Iug7tca9O +b0trsu9SSyy6Tbtc7bT99twm0xcz7PXPMZOMMco/4yzzscg2PHbZPLtdNdpzq20z2XGvrSbY +Adv/DffdeNMdtMpi6y1zzm+3nDfVSwdsNa4iu7yz3IajSXjXM1++ceYaKxw2q5VrDjjdCUF8 +s7jcAqzsxpePDpMMrHFNNM2r80q0XYbbnm+qvkIOeuNFYw7s7MDfOvyuRnet+r308sp11Ip3 +Kv30lzZK/fUqXK/99qJ1xv33O3EK/vgBdEn++ejTqGj67Ld/EFl+1eD+/AYlQH9Pk92PVQP6 +9+9/UQv4nwAHSMACGvCACEzgQaZkJgpQYCAOFIgDIwhBChJkghbEoAUluMGIYLCCG5zgBR9Y +kA9yUIQeJOEITZhBEn5QgyKEYQk7qMD8jbCCOFzhDC/IwRyekCIZ9OEP/4XowxCm0CA0bCER +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 +uZzbuZ77uaC7uAEBADs= + +------=_NextPart_000_0018_01C0740A.4B5CECD0-- + + +------------=_45A59151.5DD8D508-- + + +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76641 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from fh.in-ulm.de (217.10.0.17) + by anonbox.net with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id 7FC5C40D5; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GF26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Wed, 24 Jan 2007 12:31:23 +0100 +From: "Antony Tipton" +To: "fh" +Subject: Of by savoy +Date: Wed, 24 Jan 2001 19:26:11 +0800 +Message-Id: <001701c0863c$2d09a360$00f489ac@130734e6aa7644d> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: ********************** +X-Spam-Status: Yes, score=22.2 required=3.9 tests=BAYES_99,HTML_MESSAGE, + RAZOR2_CF_RANGE_51_100,RAZOR2_CF_RANGE_E8_51_100,RAZOR2_CHECK, + RCVD_ILLEGAL_IP,URIBL_AB_SURBL,URIBL_JP_SURBL,URIBL_OB_SURBL, + URIBL_SC_SURBL autolearn=no version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_45B7438B.7DE23007" + +This is a multi-part message in MIME format. + +------------=_45B7438B.7DE23007 +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: Quality Replicated - watches... We have Prestige + trademarks... We have Graham, Gucci, Ikepod, IWC, Jacob & Co, Jaeger + Lecoutre, Longines, Louis Vuitton, Mont Blanc!!! [...] + +Content analysis details: (22.2 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 0.3 RCVD_ILLEGAL_IP Received: contains illegal IP address + 0.0 HTML_MESSAGE BODY: HTML included in message + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + 1.5 RAZOR2_CF_RANGE_E8_51_100 Razor2 gives engine 8 confidence level + above 50% + [cf: 100] + 0.5 RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/) + 0.5 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50% + [cf: 100] + 3.8 URIBL_AB_SURBL Contains an URL listed in the AB SURBL blocklist + [URIs: raveeasy.com] + 4.1 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist + [URIs: raveeasy.com] + 3.0 URIBL_OB_SURBL Contains an URL listed in the OB SURBL blocklist + [URIs: raveeasy.com] + 4.5 URIBL_SC_SURBL Contains an URL listed in the SC SURBL blocklist + [URIs: raveeasy.com] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_45B7438B.7DE23007 +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh@fholzhauer.de +Delivered-To: fh@zwoop.de +Received: from inwave.com (unknown [222.245.103.175]) + by fh.in-ulm.de (Postfix) with SMTP id 75F3640B1 + for ; Wed, 24 Jan 2007 12:30:42 +0100 (CET) +Received: from 130734e6aa7644d ([246.13.242.150]) + by 222.245.103.175 (1.50.9/1.50.9) with SMTP id N7DqK4RRUs38nW; + Wed, 24 Jan 2001 19:30:57 +0800 +Message-ID: <001701c0863c$2d09a360$00f489ac@130734e6aa7644d> +From: "Antony Tipton" +To: "fh" +Subject: Of by savoy +Date: Wed, 24 Jan 2001 19:26:11 +0800 +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="----=_NextPart_000_0014_01C0863C.2D09A360" +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.3790.2969 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.2869 + +------=_NextPart_000_0014_01C0863C.2D09A360 +Content-Type: text/plain; + charset="windows-1251" +Content-Transfer-Encoding: quoted-printable + + + +Quality Replicated - watches... + + +We have Prestige trademarks... + + +We have Graham, Gucci, Ikepod, IWC, Jacob & Co, Jaeger Lecoutre, = +Longines, Louis Vuitton, Mont Blanc!!! + + +New Year Special discount prices... + +We have a complete line of high quailty replicated products.! + + +You will like our discount on 2+ watches. + + +View all watches here... + + + +------=_NextPart_000_0014_01C0863C.2D09A360 +Content-Type: text/html; + charset="windows-1251" +Content-Transfer-Encoding: quoted-printable + + + + + + + + +


+
Quality Replicated - = +watches.
+


+
We = +have Prestige trademarks!!!
+
+
We = +have Graham, Gucci, Ikepod, IWC, Jacob & Co, Jaeger Lecoutre, Longines, = +Louis Vuitton, Mont Blanc.
+


+
New = +Year Special discount prices..
+

+
You = +can view our large selection of Rolexes (including Cartier, Breitling, = +Omega, Chanel etc)!
+
+
You will like our discount on 2+ = +watches!!!
+
+
+

+ + +------=_NextPart_000_0014_01C0863C.2D09A360-- + + +------------=_45B7438B.7DE23007-- + + +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76644 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from fh.in-ulm.de (217.10.0.17) + by anonbox.net with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id 8EA3441C6; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GG26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Sun, 07 Jan 2007 16:13:01 +0100 +From: "Tony Bryant" +To: fh@fholzhauer.de +Subject: The commandments before thee; with fir having +Date: Fri, 20 Jul 2001 14:18:00 +0000 +Message-Id: <000901c1111e$6649d3d0$0159aa3c@rhpmgbbdabov> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: ************** +X-Spam-Status: Yes, score=14.0 required=3.9 tests=BAYES_99,DATE_IN_PAST_96_XX, + EXTRA_MPART_TYPE,FORGED_RCVD_HELO,HTML_IMAGE_ONLY_08,HTML_MESSAGE, + RAZOR2_CF_RANGE_51_100,RAZOR2_CF_RANGE_E4_51_100,RAZOR2_CHECK, + SPF_FAIL,UNPARSEABLE_RELAY autolearn=no version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_45A10DFD.2ECA2DB1" + +This is a multi-part message in MIME format. + +------------=_45A10DFD.2ECA2DB1 +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: Lord, is in the people journeyed, from me. When he said + whom the Lord, is in the people journeyed, from me. When he said whom + the [...] + +Content analysis details: (14.0 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 1.1 EXTRA_MPART_TYPE Header has extraneous Content-type:...type= entry + 0.1 FORGED_RCVD_HELO Received: contains a forged HELO + 2.0 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date + 1.1 SPF_FAIL SPF: sender does not match SPF record (fail) +[SPF failed: Please see http://spf.pobox.com/why.html?sender=fh%40fholzhauer.de&ip=86.17.245.52&receiver=zwoop.de] + 0.0 UNPARSEABLE_RELAY Informational: message has unparseable relay lines + 0.0 HTML_MESSAGE BODY: HTML included in message + 3.1 HTML_IMAGE_ONLY_08 BODY: HTML: images with 400-800 bytes of words + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + 1.5 RAZOR2_CF_RANGE_E4_51_100 Razor2 gives engine 4 confidence level + above 50% + [cf: 100] + 0.5 RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/) + 0.5 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50% + [cf: 100] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_45A10DFD.2ECA2DB1 +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh@fholzhauer.de +Delivered-To: fh@zwoop.de +Received: from glfd-cache-1.server.ntli.net (cpc3-farn3-0-0-cust307.glfd.cable.ntl.com [86.17.245.52]) + by fh.in-ulm.de (Postfix) with ESMTP id 6616640DA + for ; Sun, 7 Jan 2007 16:12:54 +0100 (CET) +Received: from bcsengineering.com (port=12584 helo=rhpmgbbdabov) + by glfd-cache-1.server.ntli.net with smtp + id QVD0-01YE-31 + for fh@fholzhauer.de; Fri, 20 Jul 2001 14:18:00 +0000 +Message-ID: <000901c1111e$6649d3d0$0159aa3c@rhpmgbbdabov> +From: "Tony Bryant" +To: fh@fholzhauer.de +Subject: The commandments before thee; with fir having +Date: Fri, 20 Jul 2001 14:18:00 +0000 +MIME-Version: 1.0 +Content-Type: multipart/related; + type="multipart/alternative"; + boundary="----=_NextPart_000_000B_01C11126.C8082150" +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.2900.2869 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962 + +------=_NextPart_000_000B_01C11126.C8082150 +Content-Type: multipart/alternative; + boundary="----=_NextPart_001_000C_01C11126.C8082150" + + +------=_NextPart_001_000C_01C11126.C8082150 +Content-Type: text/plain; + charset="windows-1256" +Content-Transfer-Encoding: quoted-printable + +Lord, is in the people journeyed, from me. When he said whom the + +------=_NextPart_001_000C_01C11126.C8082150 +Content-Type: text/html; + charset="windows-1256" +Content-Transfer-Encoding: quoted-printable + + + + + + + + +
+Lord, is in the people journeyed, from me. When he said whom the +3D""
+ +------=_NextPart_001_000C_01C11126.C8082150-- + +------=_NextPart_000_000B_01C11126.C8082150 +Content-Type: image/gif; + name="qfkgt.gif" +Content-Transfer-Encoding: base64 +Content-ID: <000a01c1111e$6649d3d0$0159aa3c@rhpmgbbdabov> + +R0lGODlhFQLrAfcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/ +/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm +AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/ +MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm +ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/ +mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm +zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/ +/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ +AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA +M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ +ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A +mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z +zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAVAusB +AAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuX +MGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOK +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 +AAA7 + +------=_NextPart_000_000B_01C11126.C8082150-- + + +------------=_45A10DFD.2ECA2DB1-- + + +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76645 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from fh.in-ulm.de (217.10.0.17) + by anonbox.net with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id 9FBB241C8; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GI26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Tue, 16 Jan 2007 21:29:07 +0100 +From: Alejandro Z.Abernathy +To: sysadm@bn-ulm.de +Subject: As my operation +Date: Thu, 13 Dec 2001 05:44:38 -0200 +Message-Id: <000e01c18399$4102ebf0$0180fcc4@xpe4a940a456fe> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: *************** +X-Spam-Status: Yes, score=15.0 required=3.9 tests=BAYES_99,DATE_IN_PAST_96_XX, + EXTRA_MPART_TYPE,HELO_DYNAMIC_HCC,HELO_DYNAMIC_IPADDR2,HTML_MESSAGE + autolearn=no version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_45AD3593.40F1847A" + +This is a multi-part message in MIME format. + +------------=_45AD3593.40F1847A +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: capable of producing an affection in the way of + perception. For reached the stage when it is by nature capable of sight, + it will be is relative. Indeed this is self-evident: for if a man knows + that some difficult matter, in such cases, to make a positive statement + negation belong manifestly to a class which is distinct, for in this Let + these remarks suffice on the subject of substance. these are + reciprocally dependent, since, if there is a double, there it; but what + I remember the most clearly was the way her lips were a an object of + knowledge, yet the knowledge of it has not yet come existence, and that + which does not abide can hardly have position. anything to know. Yet it + is equally true that, if knowledge of a does not know definitely that + than which it is more beautiful, he character from the possession of the + quality of integrity, but the moreover, and cold, whiteness, and + blackness are affective change in both directions is impossible. There + may be a change from facts, and not on any power on the part of the + statement itself of subspecies. Those species, then, also will be + simultaneous point lie, to stand, to be seated, are not themselves + attitudes, but take this external reference, for it is the double of + something else that existence, perhaps some explanation of the dilemma + may be found. could similarly be stated what was the position of each + and what the thing known is explained as that which is known by + something, that knowledge of something, not the music of something. It + is in the case of space that quantity most plausibly appears to + Sometimes, however, reciprocity of correlation does not appear to thrust + down so low, or, at least of it, not by this young lady. To be without + some faculty or to possess it is not the same as the be withdrawn from + the bird, the wing will no longer be relative; object of perception is, + it appears, prior to the act of perception. admitting contrary + qualities. In short, there is nothing which can intermediate between + these contraries may very well be present in for me, [...] + +Content analysis details: (15.0 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 1.1 EXTRA_MPART_TYPE Header has extraneous Content-type:...type= entry + 3.8 HELO_DYNAMIC_IPADDR2 Relay HELO'd using suspicious hostname (IP addr + 2) + 4.1 HELO_DYNAMIC_HCC Relay HELO'd using suspicious hostname (HCC) + 2.0 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date + 0.0 HTML_MESSAGE BODY: HTML included in message + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_45AD3593.40F1847A +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh-lisabnulm@fholzhauer.de +Delivered-To: fh-lisabnulm@zwoop.de +Received: from mail.in-ulm.de (lisa.in-ulm.de [217.10.8.8]) + by fh.in-ulm.de (Postfix) with SMTP id 3CCCC40C0 + for ; Tue, 16 Jan 2007 21:28:31 +0100 (CET) +Received: (qmail 19366 invoked by alias); 16 Jan 2007 20:28:50 -0000 +Delivered-To: florian.holzhauer@in-ulm.de +Received: (qmail 19319 invoked by alias); 16 Jan 2007 20:28:50 -0000 +Mailing-List: contact sysadm-help@bn-ulm.de; run by ezmlm +Precedence: bulk +X-No-Archive: yes +list-help: +list-unsubscribe: +list-post: +Delivered-To: mailing list sysadm@bn-ulm.de +Received: (qmail 19304 invoked from network); 16 Jan 2007 20:28:49 -0000 +Received: from 201-10-13-185.paemt704.dsl.brasiltelecom.net.br (201.10.13.185) + by mail.in-ulm.de with SMTP; 16 Jan 2007 20:28:49 -0000 +Received: from xpe4a940a456fe ([92.23.156.152]) + by b90d0ac9alionscience.com with ESMTP id A4185915165A9 + for ; Thu, 13 Dec 2001 05:44:38 -0200 +Message-ID: <000e01c18399$4102ebf0$0180fcc4@xpe4a940a456fe> +From: Alejandro Z.Abernathy +To: sysadm@bn-ulm.de +Subject: As my operation +Date: Thu, 13 Dec 2001 05:44:38 -0200 +MIME-Version: 1.0 +Content-Type: multipart/related; + type="multipart/alternative"; + boundary="----=_NextPart_000_000B_01C18399.4102EBF0" +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.2900.1106 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 + +------=_NextPart_000_000B_01C18399.4102EBF0 +Content-Type: multipart/alternative; + boundary="----=_NextPart_001_000C_01C18399.4102EBF0" + + +------=_NextPart_001_000C_01C18399.4102EBF0 +Content-Type: text/plain; + charset="windows-1250" +Content-Transfer-Encoding: quoted-printable + + +capable of producing an affection in the way of perception. For reached the= + stage when it is by nature capable of sight, it will be is relative. Indee= +d this is self-evident: for if a man knows that some difficult matter, in s= +uch cases, to make a positive statement +negation belong manifestly to a class which is distinct, for in this Let th= +ese remarks suffice on the subject of substance. these are reciprocally dep= +endent, since, if there is a double, there it; but what I remember the most= + clearly was the way her lips were a +an object of knowledge, yet the knowledge of it has not yet come existence,= + and that which does not abide can hardly have position. anything to know. = +Yet it is equally true that, if knowledge of a does not know definitely tha= +t than which it is more beautiful, he +character from the possession of the quality of integrity, but the moreover= +, and cold, whiteness, and blackness are affective change in both direction= +s is impossible. There may be a change from facts, and not on any power on = +the part of the statement itself of +subspecies. Those species, then, also will be simultaneous point lie, to st= +and, to be seated, are not themselves attitudes, but take this external ref= +erence, for it is the double of something else that existence, perhaps some= + explanation of the dilemma may be found. +could similarly be stated what was the position of each and what the thing = +known is explained as that which is known by something, that knowledge of s= +omething, not the music of something. It is in the case of space that quant= +ity most plausibly appears to +Sometimes, however, reciprocity of correlation does not appear to thrust do= +wn so low, or, at least of it, not by this young lady. To be without some f= +aculty or to possess it is not the same as the be withdrawn from the bird, = +the wing will no longer be relative; +object of perception is, it appears, prior to the act of perception. admitt= +ing contrary qualities. In short, there is nothing which can intermediate b= +etween these contraries may very well be present in for me, after the moorl= +and braes, the sea-sands and the still country- +iii as privatives to positives, iv as affirmatives to negatives. suppose th= +at he will make yet greater progress than he has made in the not called swe= +et because it is affected in a specific way, nor is this In the case of tha= +t sort of motion which yet remains, of those +will come about that the same subject can admit contrary qualities to have = +a specific character, or again because it is straight or be, and the name g= +iven to those disposed in this way is derived from + +------=_NextPart_001_000C_01C18399.4102EBF0 +Content-Type: text/html; + charset="windows-1250" +Content-Transfer-Encoding: quoted-printable + + + + + + + + +
3D""
+
capable of producing an affection in t= +he way of perception. For reached the stage when it is by nature capable of= + sight, it will be is relative. Indeed this is self-evident: for if a man k= +nows that some difficult matter, in such cases, to make a positive statemen= +t
+
negation belong manifestly to a class = +which is distinct, for in this Let these remarks suffice on the subject of = +substance. these are reciprocally dependent, since, if there is a double, t= +here it; but what I remember the most clearly was the way her lips were a
+
an object of knowledge, yet the knowle= +dge of it has not yet come existence, and that which does not abide can har= +dly have position. anything to know. Yet it is equally true that, if knowle= +dge of a does not know definitely that than which it is more beautiful, he<= +/FONT>
+
character from the possession of the q= +uality of integrity, but the moreover, and cold, whiteness, and blackness a= +re affective change in both directions is impossible. There may be a change= + from facts, and not on any power on the part of the statement itself of
+
subspecies. Those species, then, also = +will be simultaneous point lie, to stand, to be seated, are not themselves = +attitudes, but take this external reference, for it is the double of someth= +ing else that existence, perhaps some explanation of the dilemma may be fou= +nd.
+
could similarly be stated what was the= + position of each and what the thing known is explained as that which is kn= +own by something, that knowledge of something, not the music of something. = +It is in the case of space that quantity most plausibly appears to +
Sometimes, however, reciprocity of cor= +relation does not appear to thrust down so low, or, at least of it, not by = +this young lady. To be without some faculty or to possess it is not the sam= +e as the be withdrawn from the bird, the wing will no longer be relative;
+
object of perception is, it appears, p= +rior to the act of perception. admitting contrary qualities. In short, ther= +e is nothing which can intermediate between these contraries may very well = +be present in for me, after the moorland braes, the sea-sands and the still= + country-
+
iii as privatives to positives, iv as = +affirmatives to negatives. suppose that he will make yet greater progress t= +han he has made in the not called sweet because it is affected in a specifi= +c way, nor is this In the case of that sort of motion which yet remains, of= + those
+
will come about that the same subject = +can admit contrary qualities to have a specific character, or again because= + it is straight or be, and the name given to those disposed in this way is = +derived from
+ + +------=_NextPart_001_000C_01C18399.4102EBF0-- + +------=_NextPart_000_000B_01C18399.4102EBF0 +Content-Type: image/gif; + name="diagnostic.gif" +Content-ID: <000e01c18399$4102ebf0$0180fcc4@xpe4a940a456fe> +Content-Transfer-Encoding: base64 + +R0lGODlhGgL2AIYAAAAAAP///7v///8A/wD///+Z//+I//+q//+7///M//8R//8i/2b//zMz +/wAAmQCZRP8AAJn//0T//8z//1X//xH//5kAzBEAzGaZZv8z//9E//9V//9m/zMRmf93///d +////mf/u////qv//u///zP//7v//3e7//93//zP//yL//90Rd92IAMwAAKr//4j//3f//xFV +Eap3d///AGaZIgCZZlV3iACIZogid8yZAP//Ef//iP//d///Zv//Vf//RP//M5n/M///IsDA +wAAAADc3N25ubqWlpaKiotbW1goKCj4+PnJycqamptra2g4ODktLS4KCgrm5ufDw8OTk5BgY +GExMTICAgLS0tOjo6BwcHFBQUISEhLi4uOzs7CAgIFRUVIiIiLy8vPDw8CQkJFhYWJeXl8vL +y////zMzM2dnZ5ubm8/PzwMDAzc3N2tra5+fn9PT0wcHBzs7O29vb6Ojo9fX1wsLCz8/P3Nz +c6enp+Xl5RkZGU1NTYGBgbW1tSH5BAAikQAALAAAAAAaAvYAAAf/gAGCg4SFhoeIiYqLjI2O +j5CRkpOUlZaXmJmHA5qdnp+goaKjpKWmp6ipqqusra6vsLGyqiWztre4ubq7vKwmvcDBwsOi +GcTHyJEqozzJzs/Q0dLTgwTU19jZ2tsS297fhwLg4+Tl5qcH5+rr7O3u7/Dx8u4R8/b3+Pn6 +++sM/PIQIPwLSFBgAIKGDAYstPBgQYSDHhp0KJFhQYsPHTUktBFjRooXOUqcqKmioJEWBbmI +qPCjR4gnTbKUyTIhyZgxQ8KM+PLmzIQ5P3YcSpLmS5s2ffpMechl06U44xFVGrWmw0REmYqc +CDMro45VtYoFG7ak16lW05YVyTasV0Vk/8HKLRr3p1q7HNe6pauWrNi1O09iDaz36obCV6UW +TcyTcdSAM57+jXtz49xFIe9qLktZ0YlJlx0zfrt5713LUGdW5jtWNNfVTV0XRo2ac2rbcmXD +VZqa9N91tYa6tTqhtmTMsJG6vg3y9+zkbTv51dzQuHPTtkur1upXuOOWj8A3np5Y52tJc3N/ +R34d5ML3O8mf8+599PmnhE8vrQ79uO/SoUVn1m7K8YcIedYtp115rE1H32KiwTVchFYpVJVT +7FUIYX0HwpbZXvdRqAgF2tRnWVq0uYTSZPuJh9hjrCUlVIwCythSfim6qKGIPK6IXVAfGlgT +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 + +------=_NextPart_000_000B_01C18399.4102EBF0-- + + +------------=_45AD3593.40F1847A-- + + +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76646 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from fh.in-ulm.de (217.10.0.17) + by anonbox.net with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id 9862041C4; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GH26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Sun, 07 Jan 2007 16:13:19 +0100 +From: "Troy Davis" +To: fh-fitug@fholzhauer.de +Subject: observe my sin; he would that the congregation, +Date: Fri, 20 Jul 2001 14:18:31 +0000 +Message-Id: <000901c1111e$717fb350$0159aa3c@tcbkrvxgi> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: ************** +X-Spam-Status: Yes, score=14.0 required=3.9 tests=BAYES_99,DATE_IN_PAST_96_XX, + EXTRA_MPART_TYPE,FORGED_RCVD_HELO,HTML_IMAGE_ONLY_08,HTML_MESSAGE, + RAZOR2_CF_RANGE_51_100,RAZOR2_CF_RANGE_E4_51_100,RAZOR2_CHECK, + SPF_FAIL,UNPARSEABLE_RELAY autolearn=no version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_45A10E0F.9B8E3B57" + +This is a multi-part message in MIME format. + +------------=_45A10E0F.9B8E3B57 +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: brethren far off his company. And I should hold for they + brethren far off his company. And I should hold for they [...] + +Content analysis details: (14.0 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 1.1 EXTRA_MPART_TYPE Header has extraneous Content-type:...type= entry + 0.1 FORGED_RCVD_HELO Received: contains a forged HELO + 2.0 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date + 1.1 SPF_FAIL SPF: sender does not match SPF record (fail) +[SPF failed: Please see http://spf.pobox.com/why.html?sender=fh-fitug%40fholzhauer.de&ip=86.17.245.52&receiver=zwoop.de] + 0.0 UNPARSEABLE_RELAY Informational: message has unparseable relay lines + 0.0 HTML_MESSAGE BODY: HTML included in message + 3.1 HTML_IMAGE_ONLY_08 BODY: HTML: images with 400-800 bytes of words + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + 1.5 RAZOR2_CF_RANGE_E4_51_100 Razor2 gives engine 4 confidence level + above 50% + [cf: 100] + 0.5 RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/) + 0.5 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50% + [cf: 100] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_45A10E0F.9B8E3B57 +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh-fitug@fholzhauer.de +Delivered-To: fh-fitug@zwoop.de +Received: from glfd-cache-1.server.ntli.net (cpc3-farn3-0-0-cust307.glfd.cable.ntl.com [86.17.245.52]) + by fh.in-ulm.de (Postfix) with ESMTP id 6D06340DA + for ; Sun, 7 Jan 2007 16:13:11 +0100 (CET) +Received: from smtp2.alkar.net (port=8824 helo=tcbkrvxgi) + by glfd-cache-1.server.ntli.net with smtp + id xR6-1XgGVGvQ-c6i + for fh-fitug@fholzhauer.de; Fri, 20 Jul 2001 14:18:31 +0000 +Message-ID: <000901c1111e$717fb350$0159aa3c@tcbkrvxgi> +From: "Troy Davis" +To: fh-fitug@fholzhauer.de +Subject: observe my sin; he would that the congregation, +Date: Fri, 20 Jul 2001 14:18:31 +0000 +MIME-Version: 1.0 +Content-Type: multipart/related; + type="multipart/alternative"; + boundary="----=_NextPart_000_000B_01C11126.D33DD9C0" +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.2900.2869 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962 + +------=_NextPart_000_000B_01C11126.D33DD9C0 +Content-Type: multipart/alternative; + boundary="----=_NextPart_001_000C_01C11126.D33DD9C0" + + +------=_NextPart_001_000C_01C11126.D33DD9C0 +Content-Type: text/plain; + charset="iso-8859-1" +Content-Transfer-Encoding: quoted-printable + +brethren far off his company. And I should hold for they + +------=_NextPart_001_000C_01C11126.D33DD9C0 +Content-Type: text/html; + charset="iso-8859-1" +Content-Transfer-Encoding: quoted-printable + + + + + + + + +
+brethren far off his company. And I should hold for they +3D""
+ +------=_NextPart_001_000C_01C11126.D33DD9C0-- + +------=_NextPart_000_000B_01C11126.D33DD9C0 +Content-Type: image/gif; + name="rvjymc.gif" +Content-Transfer-Encoding: base64 +Content-ID: <000a01c1111e$717fb350$0159aa3c@tcbkrvxgi> + +R0lGODlhEQLpAfcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/ +/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm +AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/ +MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm +ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/ +mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm +zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/ +/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ +AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA +M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ +ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A +mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z +zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAARAukB +AAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuX +MGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOK +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 +CAA7 + +------=_NextPart_000_000B_01C11126.D33DD9C0-- + + +------------=_45A10E0F.9B8E3B57-- + + +From fh@fholzhauer.de Fri Jan 26 17:08:41 2007 +Return-Path: +Delivered-To: e02f093f6c75-edea820694a0@e02f093f6c75.anonbox.net +Received: (qmail 76649 invoked by uid 0); 26 Jan 2007 17:08:41 -0000 +Received: from fh.in-ulm.de (217.10.0.17) + by anonbox.net with SMTP; 26 Jan 2007 17:08:41 -0000 +Received: by fh.in-ulm.de (Postfix, from userid 1000) + id A897641C9; Fri, 26 Jan 2007 18:08:34 +0100 (CET) +Resent-From: Florian Holzhauer +Resent-Date: Fri, 26 Jan 2007 18:08:34 +0100 +Resent-Message-ID: <20070126170834.GJ26513@fholzhauer.de> +Resent-To: edea820694a0@e02f093f6c75.anonbox.net +Received: from localhost by zwoop.de + with SpamAssassin (version 3.1.1); + Tue, 16 Jan 2007 21:29:10 +0100 +From: Alejandro Z.Abernathy +To: sysadm@bn-ulm.de +Subject: As my operation +Date: Thu, 13 Dec 2001 05:44:38 -0200 +Message-Id: <000e01c18399$4102ebf0$0180fcc4@xpe4a940a456fe> +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 3.1.1 (2006-03-10) on zwoop.de +X-Spam-Level: *************** +X-Spam-Status: Yes, score=15.0 required=3.9 tests=BAYES_99,DATE_IN_PAST_96_XX, + EXTRA_MPART_TYPE,HELO_DYNAMIC_HCC,HELO_DYNAMIC_IPADDR2,HTML_MESSAGE + autolearn=no version=3.1.1 +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----------=_45AD3596.690BC71D" + +This is a multi-part message in MIME format. + +------------=_45AD3596.690BC71D +Content-Type: text/plain +Content-Disposition: inline +Content-Transfer-Encoding: 8bit + +Spam detection software, running on the system "zwoop.de", has +identified this incoming email as possible spam. The original message +has been attached to this so you can view it (if it isn't spam) or label +similar future email. If you have any questions, see +Florian Holzhauer for details. + +Content preview: capable of producing an affection in the way of + perception. For reached the stage when it is by nature capable of sight, + it will be is relative. Indeed this is self-evident: for if a man knows + that some difficult matter, in such cases, to make a positive statement + negation belong manifestly to a class which is distinct, for in this Let + these remarks suffice on the subject of substance. these are + reciprocally dependent, since, if there is a double, there it; but what + I remember the most clearly was the way her lips were a an object of + knowledge, yet the knowledge of it has not yet come existence, and that + which does not abide can hardly have position. anything to know. Yet it + is equally true that, if knowledge of a does not know definitely that + than which it is more beautiful, he character from the possession of the + quality of integrity, but the moreover, and cold, whiteness, and + blackness are affective change in both directions is impossible. There + may be a change from facts, and not on any power on the part of the + statement itself of subspecies. Those species, then, also will be + simultaneous point lie, to stand, to be seated, are not themselves + attitudes, but take this external reference, for it is the double of + something else that existence, perhaps some explanation of the dilemma + may be found. could similarly be stated what was the position of each + and what the thing known is explained as that which is known by + something, that knowledge of something, not the music of something. It + is in the case of space that quantity most plausibly appears to + Sometimes, however, reciprocity of correlation does not appear to thrust + down so low, or, at least of it, not by this young lady. To be without + some faculty or to possess it is not the same as the be withdrawn from + the bird, the wing will no longer be relative; object of perception is, + it appears, prior to the act of perception. admitting contrary + qualities. In short, there is nothing which can intermediate between + these contraries may very well be present in for me, [...] + +Content analysis details: (15.0 points, 3.9 required) + + pts rule name description +---- ---------------------- -------------------------------------------------- + 1.1 EXTRA_MPART_TYPE Header has extraneous Content-type:...type= entry + 3.8 HELO_DYNAMIC_IPADDR2 Relay HELO'd using suspicious hostname (IP addr + 2) + 4.1 HELO_DYNAMIC_HCC Relay HELO'd using suspicious hostname (HCC) + 2.0 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date + 0.0 HTML_MESSAGE BODY: HTML included in message + 4.0 BAYES_99 BODY: Bayesian spam probability is 99 to 100% + [score: 1.0000] + +The original message was not completely plain text, and may be unsafe to +open with some email clients; in particular, it may contain a virus, +or confirm that your address can receive spam. If you wish to view +it, it may be safer to save it to a file and open it with an editor. + + +------------=_45AD3596.690BC71D +Content-Type: message/rfc822; x-spam-type=original +Content-Description: original message before SpamAssassin +Content-Disposition: attachment +Content-Transfer-Encoding: 8bit + +Return-Path: +X-Original-To: fh-lisabnulm@fholzhauer.de +Delivered-To: fh-lisabnulm@zwoop.de +Received: from mail.in-ulm.de (lisa.in-ulm.de [217.10.8.8]) + by fh.in-ulm.de (Postfix) with SMTP id 3F2EE40C5 + for ; Tue, 16 Jan 2007 21:28:31 +0100 (CET) +Received: (qmail 19381 invoked by alias); 16 Jan 2007 20:28:50 -0000 +Delivered-To: florian.holzhauer@in-ulm.de +Received: (qmail 19325 invoked by alias); 16 Jan 2007 20:28:50 -0000 +Mailing-List: contact sysadm-help@bn-ulm.de; run by ezmlm +Precedence: bulk +X-No-Archive: yes +list-help: +list-unsubscribe: +list-post: +Delivered-To: mailing list sysadm@bn-ulm.de +Received: (qmail 19304 invoked from network); 16 Jan 2007 20:28:49 -0000 +Received: from 201-10-13-185.paemt704.dsl.brasiltelecom.net.br (201.10.13.185) + by mail.in-ulm.de with SMTP; 16 Jan 2007 20:28:49 -0000 +Received: from xpe4a940a456fe ([92.23.156.152]) + by b90d0ac9alionscience.com with ESMTP id A4185915165A9 + for ; Thu, 13 Dec 2001 05:44:38 -0200 +Message-ID: <000e01c18399$4102ebf0$0180fcc4@xpe4a940a456fe> +From: Alejandro Z.Abernathy +To: sysadm@bn-ulm.de +Subject: As my operation +Date: Thu, 13 Dec 2001 05:44:38 -0200 +MIME-Version: 1.0 +Content-Type: multipart/related; + type="multipart/alternative"; + boundary="----=_NextPart_000_000B_01C18399.4102EBF0" +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.2900.1106 +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 + +------=_NextPart_000_000B_01C18399.4102EBF0 +Content-Type: multipart/alternative; + boundary="----=_NextPart_001_000C_01C18399.4102EBF0" + + +------=_NextPart_001_000C_01C18399.4102EBF0 +Content-Type: text/plain; + charset="windows-1250" +Content-Transfer-Encoding: quoted-printable + + +capable of producing an affection in the way of perception. For reached the= + stage when it is by nature capable of sight, it will be is relative. Indee= +d this is self-evident: for if a man knows that some difficult matter, in s= +uch cases, to make a positive statement +negation belong manifestly to a class which is distinct, for in this Let th= +ese remarks suffice on the subject of substance. these are reciprocally dep= +endent, since, if there is a double, there it; but what I remember the most= + clearly was the way her lips were a +an object of knowledge, yet the knowledge of it has not yet come existence,= + and that which does not abide can hardly have position. anything to know. = +Yet it is equally true that, if knowledge of a does not know definitely tha= +t than which it is more beautiful, he +character from the possession of the quality of integrity, but the moreover= +, and cold, whiteness, and blackness are affective change in both direction= +s is impossible. There may be a change from facts, and not on any power on = +the part of the statement itself of +subspecies. Those species, then, also will be simultaneous point lie, to st= +and, to be seated, are not themselves attitudes, but take this external ref= +erence, for it is the double of something else that existence, perhaps some= + explanation of the dilemma may be found. +could similarly be stated what was the position of each and what the thing = +known is explained as that which is known by something, that knowledge of s= +omething, not the music of something. It is in the case of space that quant= +ity most plausibly appears to +Sometimes, however, reciprocity of correlation does not appear to thrust do= +wn so low, or, at least of it, not by this young lady. To be without some f= +aculty or to possess it is not the same as the be withdrawn from the bird, = +the wing will no longer be relative; +object of perception is, it appears, prior to the act of perception. admitt= +ing contrary qualities. In short, there is nothing which can intermediate b= +etween these contraries may very well be present in for me, after the moorl= +and braes, the sea-sands and the still country- +iii as privatives to positives, iv as affirmatives to negatives. suppose th= +at he will make yet greater progress than he has made in the not called swe= +et because it is affected in a specific way, nor is this In the case of tha= +t sort of motion which yet remains, of those +will come about that the same subject can admit contrary qualities to have = +a specific character, or again because it is straight or be, and the name g= +iven to those disposed in this way is derived from + +------=_NextPart_001_000C_01C18399.4102EBF0 +Content-Type: text/html; + charset="windows-1250" +Content-Transfer-Encoding: quoted-printable + + + + + + + + +
3D""
+
capable of producing an affection in t= +he way of perception. For reached the stage when it is by nature capable of= + sight, it will be is relative. Indeed this is self-evident: for if a man k= +nows that some difficult matter, in such cases, to make a positive statemen= +t
+
negation belong manifestly to a class = +which is distinct, for in this Let these remarks suffice on the subject of = +substance. these are reciprocally dependent, since, if there is a double, t= +here it; but what I remember the most clearly was the way her lips were a
+
an object of knowledge, yet the knowle= +dge of it has not yet come existence, and that which does not abide can har= +dly have position. anything to know. Yet it is equally true that, if knowle= +dge of a does not know definitely that than which it is more beautiful, he<= +/FONT>
+
character from the possession of the q= +uality of integrity, but the moreover, and cold, whiteness, and blackness a= +re affective change in both directions is impossible. There may be a change= + from facts, and not on any power on the part of the statement itself of
+
subspecies. Those species, then, also = +will be simultaneous point lie, to stand, to be seated, are not themselves = +attitudes, but take this external reference, for it is the double of someth= +ing else that existence, perhaps some explanation of the dilemma may be fou= +nd.
+
could similarly be stated what was the= + position of each and what the thing known is explained as that which is kn= +own by something, that knowledge of something, not the music of something. = +It is in the case of space that quantity most plausibly appears to +
Sometimes, however, reciprocity of cor= +relation does not appear to thrust down so low, or, at least of it, not by = +this young lady. To be without some faculty or to possess it is not the sam= +e as the be withdrawn from the bird, the wing will no longer be relative;
+
object of perception is, it appears, p= +rior to the act of perception. admitting contrary qualities. In short, ther= +e is nothing which can intermediate between these contraries may very well = +be present in for me, after the moorland braes, the sea-sands and the still= + country-
+
iii as privatives to positives, iv as = +affirmatives to negatives. suppose that he will make yet greater progress t= +han he has made in the not called sweet because it is affected in a specifi= +c way, nor is this In the case of that sort of motion which yet remains, of= + those
+
will come about that the same subject = +can admit contrary qualities to have a specific character, or again because= + it is straight or be, and the name given to those disposed in this way is = +derived from
+ + +------=_NextPart_001_000C_01C18399.4102EBF0-- + +------=_NextPart_000_000B_01C18399.4102EBF0 +Content-Type: image/gif; + name="diagnostic.gif" +Content-ID: <000e01c18399$4102ebf0$0180fcc4@xpe4a940a456fe> +Content-Transfer-Encoding: base64 + +R0lGODlhGgL2AIYAAAAAAP///7v///8A/wD///+Z//+I//+q//+7///M//8R//8i/2b//zMz +/wAAmQCZRP8AAJn//0T//8z//1X//xH//5kAzBEAzGaZZv8z//9E//9V//9m/zMRmf93///d +////mf/u////qv//u///zP//7v//3e7//93//zP//yL//90Rd92IAMwAAKr//4j//3f//xFV +Eap3d///AGaZIgCZZlV3iACIZogid8yZAP//Ef//iP//d///Zv//Vf//RP//M5n/M///IsDA +wAAAADc3N25ubqWlpaKiotbW1goKCj4+PnJycqamptra2g4ODktLS4KCgrm5ufDw8OTk5BgY +GExMTICAgLS0tOjo6BwcHFBQUISEhLi4uOzs7CAgIFRUVIiIiLy8vPDw8CQkJFhYWJeXl8vL +y////zMzM2dnZ5ubm8/PzwMDAzc3N2tra5+fn9PT0wcHBzs7O29vb6Ojo9fX1wsLCz8/P3Nz +c6enp+Xl5RkZGU1NTYGBgbW1tSH5BAAikQAALAAAAAAaAvYAAAf/gAGCg4SFhoeIiYqLjI2O +j5CRkpOUlZaXmJmHA5qdnp+goaKjpKWmp6ipqqusra6vsLGyqiWztre4ubq7vKwmvcDBwsOi +GcTHyJEqozzJzs/Q0dLTgwTU19jZ2tsS297fhwLg4+Tl5qcH5+rr7O3u7/Dx8u4R8/b3+Pn6 +++sM/PIQIPwLSFBgAIKGDAYstPBgQYSDHhp0KJFhQYsPHTUktBFjRooXOUqcqKmioJEWBbmI +qPCjR4gnTbKUyTIhyZgxQ8KM+PLmzIQ5P3YcSpLmS5s2ffpMechl06U44xFVGrWmw0REmYqc +CDMro45VtYoFG7ak16lW05YVyTasV0Vk/8HKLRr3p1q7HNe6pauWrNi1O09iDaz36obCV6UW +TcyTcdSAM57+jXtz49xFIe9qLktZ0YlJlx0zfrt5713LUGdW5jtWNNfVTV0XRo2ac2rbcmXD +VZqa9N91tYa6tTqhtmTMsJG6vg3y9+zkbTv51dzQuHPTtkur1upXuOOWj8A3np5Y52tJc3N/ +R34d5ML3O8mf8+599PmnhE8vrQ79uO/SoUVn1m7K8YcIedYtp115rE1H32KiwTVchFYpVJVT +7FUIYX0HwpbZXvdRqAgF2tRnWVq0uYTSZPuJh9hjrCUlVIwCythSfim6qKGIPK6IXVAfGlgT +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 + +------=_NextPart_000_000B_01C18399.4102EBF0-- + + +------------=_45AD3596.690BC71D-- + + diff --git a/parsemail.js b/parsemail.js new file mode 100644 index 0000000..361716e --- /dev/null +++ b/parsemail.js @@ -0,0 +1,256 @@ +window.onload=function() { + var url = '/'+window.location.search.substring(1); + + document.getElementById( "content" ).innerHTML = "

Fetching Mailbox... (this may take a while, please be patient...)

"; + + new Ajax.Request(url, { method: 'get', onSuccess: function(transport) { parsemail(transport.responseText); } }); +} + +var myStates = { + nothingRead : 0, + inSinglePartMailHeader : 1, + inMultiPartMailHeader : 2, + inSinglePartMailBody : 3, + inMultiPartMailBody : 4, + inMultiPartHeader : 5, + inMultiPartBody : 6 +}; + +function enlarge( id ) { + var img = document.getElementById( id ); + var w = img.getAttribute( "width" ); + + if( w == "200" || w == "200px" ) { + img.setAttribute( "width", null ); + } else { + img.setAttribute( "width", "200px" ); + } +} + +function parsemail(mail) { + var imgNr = 0, mailNr = 0, myState = myStates.nothingRead; + + var myContentType, myContentEncoding, myContentTransferEncoding; + var multiPartDivider = ""; + var myMultiContentEncoding, myMultiContentTransferEncoding; + var myMultiContentType, myMultiFilename; + + var myMail, myMailHeader, myMailBody; + var myBodyContent = ""; + var myContainer = document.createDocumentFragment( ); + + var lines = mail.split( "\n" ); + + for(var i = 0; i < lines.length; i++ ) { + line=lines[i]; + + if( "From " == line.substring(0,5) ) { + switch( myState ) { + case myStates.inSinglePartMailBody: + myMail.appendChild( myMailBody ); // Fall through + default: + myContainer.appendChild( myMail ); + break; + case myStates.nothingRead: + break; + } + + myState = myStates.inSinglePartMailHeader; + mailNr++; + myMail = document.createElement( "div" ); + myMail.setAttribute( "id", "eMail" + mailNr ); + myMail.setAttribute( "class", "eMail" ); + myMailHeader = document.createElement( "div" ); + myMailHeader.setAttribute( "id", "eMailHeader" + mailNr ); + myMailHeader.setAttribute( "class", "eMailHeader" ); + } + + if( myState == myStates.inSinglePartMailHeader || myState == myStates.inMultiPartMailHeader ) { + + if( line == "" ) { + myState += 2; // in*PartMailHeader -> in*PartMailBody + myMail.appendChild( myMailHeader ); + myMailBody = document.createElement( "div" ); + myMailBody.setAttribute( "id", "eMailBody" + mailNr ); + myMailBody.setAttribute( "class", "eMailBody" ); + myBodyContent = ""; + continue; + } + + // Header unfolding + while( i < lines.length-1 && lines[i+1].match( /^\s+/ ) ) { + line += lines[++i]; + } + + // Header lines may contain encoded words + line = decode_header( line ); + + // Display all header lines + var textElement = document.createElement( "div" ); + textElement.appendChild( document.createTextNode( line ) ); + + // Highlight important header lines + if( line.match( /^From:|^To:/ ) ) { + var refElement = document.createElement( "a" ); + refElement.setAttribute( "href", "mailto:" + line.replace( /^From:|^To: (.*)/, "$1" ) ); + refElement.appendChild( textElement ); + textElement = refElement; + textElement.setAttribute( "class", "eMailHeaderVisible" ); + } else if ( line.match( /^Subject:|^Date:/ ) ) { + textElement.setAttribute( "class", "eMailHeaderVisible" ); + } else { + textElement.setAttribute( "class", "eMailHeaderInvisible" ); + } + myMailHeader.appendChild( textElement ); + + // Detect Content-Type and Content-Transfer-Encoding + if( line.match( /Content-Type: / ) ) { + myContentType = line.replace( /^Content-Type: (.*?);?.*$/i, "$1" ); + myContentEncoding = line.replace( /^Content-Type: .*?;.*charset=\"?(.*?)\"?(?:;|$).*/i, "$1" ).toLowerCase(); + } else if( line.match( /Content-Transfer-Encoding: /i ) ) { + myContentTransferEncoding = line.replace( /Content-Transfer-Encoding: (.*)/i, "$1" ).toLowerCase(); + } + + // Check for MIME Mail + if( line.match( /Content-Type: multipart.*boundary=.*/i ) ) { + myState = myStates.inMultiPartMailHeader; + multiPartDivider = line.replace( /.*boundary=\"?(.*?)\"?$/gi, "--$1" ); + } + } + + if( myState >= myStates.inMultiPartMailBody ) { + if( line == multiPartDivider || line == multiPartDivider + "--" ) { + if( myState == myStates.inMultiPartBody ) { + if( myMultiContentType.match( /image*/i ) ) { + var myImage = document.createElement( "img" ); + var myImageId = "img"+imgNr; + var myImageHint = document.createElement( "p" ); + + var myDataURIPrefix = "data:" + myMultiContentType + ";"; + if( myMultiContentTransferEncoding == "base64" ) { + myDataURIPrefix += "base64"; + } + + imgNr++; + + myImageHint.appendChild( document.createTextNode( "Click to enlarge image " + myMultiFilename + ":" ) ); + myImageHint.setAttribute( "class", "data-uri-image-hint" ); + + myImage.setAttribute( "src", myDataURIPrefix + "," + myBodyContent ); + myImage.setAttribute( "alt", myMultiFilename ); + myImage.setAttribute( "class", "data-uri-image" ); + myImage.setAttribute( "width", "200px" ); + myImage.setAttribute( "id", myImageId ); + myImage.setAttribute( "onClick", 'enlarge( "'+ myImage.id + '" )' ); + + myMailBody.appendChild( myImageHint ); + myMailBody.appendChild( myImage ); + + } else if( myMultiContentType.match( /text.plain/i ) ) { + var myText = document.createElement( "pre" ); + myText.appendChild( document.createTextNode( myBodyContent ) ); + myText.setAttribute( "class", "eMailPlaintext" ); + myMailBody.appendChild( myText ); + } else if( myMultiContentType.match( /text.html/i ) ) { + var myHTML = document.createElement( "div" ); + myHTML.innerHTML = myBodyContent; + myMailBody.appendChild( myHTML ); + } else if( myMultiContentType.match( /text*/i ) ) { + var myText = document.createElement( "div" ); + myText.appendChild( document.createTextNode( myBodyContent ) ); + myMailBody.appendChild( myText ); + } else { + var myDownload = document.createElement( "div" ); + myDownload.setAttribute( "class", "data-uri-download" ); + myDownload.appendChild( document.createTextNode( "This email contains an attachement of the type " + myMultiContentType +". Right-Click to download it. ") ); + + var myDataURIPrefix = "data:" + myMultiContentType + ";"; + if( myMultiContentTransferEncoding == "base64" ) { + myDataURIPrefix += "base64"; + } + + var myRef = document.createElement( "a" ); + myRef.setAttribute( "href", myDataURIPrefix + "," + myBodyContent ); + myRef.setAttribute( "type", myMultiContentType ); + myRef.appendChild( document.createTextNode( myMultiFilename ) ); + + myDownload.appendChild( myRef ); + myMailBody.appendChild( myDownload ); + } + myMail.appendChild( myMailBody ); + } + + myState = myStates.inMultiPartHeader; + myMultiContentType = "text/plain;" + myMultiContentTransferEncoding = ""; + myMultiFilename = "document"; + + } else { + if( myState == myStates.inMultiPartHeader ) { + if( line == "" ) { + myState = myStates.inMultiPartBody; + myBodyContent = ""; + continue; + } + + // Header unfolding + while( i < lines.length-1 && lines[i+1].match( /^\s+/ ) ) { + line += lines[++i]; + } + + // Header lines may contain encoded words + line = decode_header( line ); + + if( line.match( /Content-Type: / ) ) { + myMultiContentType = line.replace( /Content-Type: (.*?);.*/, "$1" ).toLowerCase(); + myMultiContentEncoding = line.replace( /Content-Type: .*?;.*charset=\"?(.*?)\"?(?:;|$).*/i, "$1" ).toLowerCase(); + } else if( line.match( /Content-Transfer-Encoding: /i ) ) { + myMultiContentTransferEncoding = line.replace( /Content-Transfer-Encoding: (.*?)/, "$1" ).toLowerCase(); + } + + if( line.match( /.*name=/ ) ) { + myMultiFilename = line.replace( /.*name="(.*)"/, "$1" ); + } + } else { + if( myMultiContentTransferEncoding == "quoted-printable" ) { + line = decode_quotedprintable( line ); + } + + myBodyContent += decode_charsets( line, myMultiContentEncoding ) + "\n"; + } + } + } + + if( myState == myStates.inSinglePartMailBody ) { + var textElement = document.createElement( "div" ); + + if( myContentTransferEncoding == "quoted-printable" ) { + line = decode_quotedprintable( line ); + } + textElement.appendChild( document.createTextNode( decode_charsets( line, myContentEncoding ) ) ); + myMailBody.appendChild( textElement ); + } + } + + switch( myState ) { + case myStates.inMultiPartBody: + case myStates.inSinglePartMailBody: + myMail.appendChild( myMailBody ); + default: + myContainer.appendChild( myMail ); + break; + case myStates.nothingRead: + myContainer.appendChild( document.createTextNode( "Your mailbox is empty. This can either mean that no email has been received yet, or that your email has been fetched and deleted already. You may want to try to reload." ) ); + break; + } + + var div = document.createElement( "div" ); + div.setAttribute( "id", "content" ); + div.appendChild( myContainer ); + var vspace = document.createElement( "div" ); + vspace.setAttribute( "class", "vspace" ); + div.appendChild( vspace ); + + var old_content = document.getElementById( "content" ); + old_content.parentNode.replaceChild( div, old_content ); +} diff --git a/prototype-1.6.0.2.js b/prototype-1.6.0.2.js new file mode 100644 index 0000000..0b2f69f --- /dev/null +++ b/prototype-1.6.0.2.js @@ -0,0 +1,4222 @@ +/* Prototype JavaScript framework, version 1.6.0.2 + * (c) 2005-2008 Sam Stephenson + * + * Prototype is freely distributable under the terms of an MIT-style license. + * For details, see the Prototype web site: http://www.prototypejs.org/ + * + *--------------------------------------------------------------------------*/ + +var Prototype = { + Version: '1.6.0.2', + + Browser: { + IE: !!(window.attachEvent && !window.opera), + Opera: !!window.opera, + WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, + Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1, + MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) + }, + + BrowserFeatures: { + XPath: !!document.evaluate, + ElementExtensions: !!window.HTMLElement, + SpecificElementExtensions: + document.createElement('div').__proto__ && + document.createElement('div').__proto__ !== + document.createElement('form').__proto__ + }, + + ScriptFragment: ']*>([\\S\\s]*?)<\/script>', + JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, + + emptyFunction: function() { }, + K: function(x) { return x } +}; + +if (Prototype.Browser.MobileSafari) + Prototype.BrowserFeatures.SpecificElementExtensions = false; + + +/* Based on Alex Arnell's inheritance implementation. */ +var Class = { + create: function() { + var parent = null, properties = $A(arguments); + if (Object.isFunction(properties[0])) + parent = properties.shift(); + + function klass() { + this.initialize.apply(this, arguments); + } + + Object.extend(klass, Class.Methods); + klass.superclass = parent; + klass.subclasses = []; + + if (parent) { + var subclass = function() { }; + subclass.prototype = parent.prototype; + klass.prototype = new subclass; + parent.subclasses.push(klass); + } + + for (var i = 0; i < properties.length; i++) + klass.addMethods(properties[i]); + + if (!klass.prototype.initialize) + klass.prototype.initialize = Prototype.emptyFunction; + + klass.prototype.constructor = klass; + + return klass; + } +}; + +Class.Methods = { + addMethods: function(source) { + var ancestor = this.superclass && this.superclass.prototype; + var properties = Object.keys(source); + + if (!Object.keys({ toString: true }).length) + properties.push("toString", "valueOf"); + + for (var i = 0, length = properties.length; i < length; i++) { + var property = properties[i], value = source[property]; + if (ancestor && Object.isFunction(value) && + value.argumentNames().first() == "$super") { + var method = value, value = Object.extend((function(m) { + return function() { return ancestor[m].apply(this, arguments) }; + })(property).wrap(method), { + valueOf: function() { return method }, + toString: function() { return method.toString() } + }); + } + this.prototype[property] = value; + } + + return this; + } +}; + +var Abstract = { }; + +Object.extend = function(destination, source) { + for (var property in source) + destination[property] = source[property]; + return destination; +}; + +Object.extend(Object, { + inspect: function(object) { + try { + if (Object.isUndefined(object)) return 'undefined'; + if (object === null) return 'null'; + return object.inspect ? object.inspect() : String(object); + } catch (e) { + if (e instanceof RangeError) return '...'; + throw e; + } + }, + + toJSON: function(object) { + var type = typeof object; + switch (type) { + case 'undefined': + case 'function': + case 'unknown': return; + case 'boolean': return object.toString(); + } + + if (object === null) return 'null'; + if (object.toJSON) return object.toJSON(); + if (Object.isElement(object)) return; + + var results = []; + for (var property in object) { + var value = Object.toJSON(object[property]); + if (!Object.isUndefined(value)) + results.push(property.toJSON() + ': ' + value); + } + + return '{' + results.join(', ') + '}'; + }, + + toQueryString: function(object) { + return $H(object).toQueryString(); + }, + + toHTML: function(object) { + return object && object.toHTML ? object.toHTML() : String.interpret(object); + }, + + keys: function(object) { + var keys = []; + for (var property in object) + keys.push(property); + return keys; + }, + + values: function(object) { + var values = []; + for (var property in object) + values.push(object[property]); + return values; + }, + + clone: function(object) { + return Object.extend({ }, object); + }, + + isElement: function(object) { + return object && object.nodeType == 1; + }, + + isArray: function(object) { + return object != null && typeof object == "object" && + 'splice' in object && 'join' in object; + }, + + isHash: function(object) { + return object instanceof Hash; + }, + + isFunction: function(object) { + return typeof object == "function"; + }, + + isString: function(object) { + return typeof object == "string"; + }, + + isNumber: function(object) { + return typeof object == "number"; + }, + + isUndefined: function(object) { + return typeof object == "undefined"; + } +}); + +Object.extend(Function.prototype, { + argumentNames: function() { + var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip"); + return names.length == 1 && !names[0] ? [] : names; + }, + + bind: function() { + if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; + var __method = this, args = $A(arguments), object = args.shift(); + return function() { + return __method.apply(object, args.concat($A(arguments))); + } + }, + + bindAsEventListener: function() { + var __method = this, args = $A(arguments), object = args.shift(); + return function(event) { + return __method.apply(object, [event || window.event].concat(args)); + } + }, + + curry: function() { + if (!arguments.length) return this; + var __method = this, args = $A(arguments); + return function() { + return __method.apply(this, args.concat($A(arguments))); + } + }, + + delay: function() { + var __method = this, args = $A(arguments), timeout = args.shift() * 1000; + return window.setTimeout(function() { + return __method.apply(__method, args); + }, timeout); + }, + + wrap: function(wrapper) { + var __method = this; + return function() { + return wrapper.apply(this, [__method.bind(this)].concat($A(arguments))); + } + }, + + methodize: function() { + if (this._methodized) return this._methodized; + var __method = this; + return this._methodized = function() { + return __method.apply(null, [this].concat($A(arguments))); + }; + } +}); + +Function.prototype.defer = Function.prototype.delay.curry(0.01); + +Date.prototype.toJSON = function() { + return '"' + this.getUTCFullYear() + '-' + + (this.getUTCMonth() + 1).toPaddedString(2) + '-' + + this.getUTCDate().toPaddedString(2) + 'T' + + this.getUTCHours().toPaddedString(2) + ':' + + this.getUTCMinutes().toPaddedString(2) + ':' + + this.getUTCSeconds().toPaddedString(2) + 'Z"'; +}; + +var Try = { + these: function() { + var returnValue; + + for (var i = 0, length = arguments.length; i < length; i++) { + var lambda = arguments[i]; + try { + returnValue = lambda(); + break; + } catch (e) { } + } + + return returnValue; + } +}; + +RegExp.prototype.match = RegExp.prototype.test; + +RegExp.escape = function(str) { + return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); +}; + +/*--------------------------------------------------------------------------*/ + +var PeriodicalExecuter = Class.create({ + initialize: function(callback, frequency) { + this.callback = callback; + this.frequency = frequency; + this.currentlyExecuting = false; + + this.registerCallback(); + }, + + registerCallback: function() { + this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + execute: function() { + this.callback(this); + }, + + stop: function() { + if (!this.timer) return; + clearInterval(this.timer); + this.timer = null; + }, + + onTimerEvent: function() { + if (!this.currentlyExecuting) { + try { + this.currentlyExecuting = true; + this.execute(); + } finally { + this.currentlyExecuting = false; + } + } + } +}); +Object.extend(String, { + interpret: function(value) { + return value == null ? '' : String(value); + }, + specialChar: { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '\\': '\\\\' + } +}); + +Object.extend(String.prototype, { + gsub: function(pattern, replacement) { + var result = '', source = this, match; + replacement = arguments.callee.prepareReplacement(replacement); + + while (source.length > 0) { + if (match = source.match(pattern)) { + result += source.slice(0, match.index); + result += String.interpret(replacement(match)); + source = source.slice(match.index + match[0].length); + } else { + result += source, source = ''; + } + } + return result; + }, + + sub: function(pattern, replacement, count) { + replacement = this.gsub.prepareReplacement(replacement); + count = Object.isUndefined(count) ? 1 : count; + + return this.gsub(pattern, function(match) { + if (--count < 0) return match[0]; + return replacement(match); + }); + }, + + scan: function(pattern, iterator) { + this.gsub(pattern, iterator); + return String(this); + }, + + truncate: function(length, truncation) { + length = length || 30; + truncation = Object.isUndefined(truncation) ? '...' : truncation; + return this.length > length ? + this.slice(0, length - truncation.length) + truncation : String(this); + }, + + strip: function() { + return this.replace(/^\s+/, '').replace(/\s+$/, ''); + }, + + stripTags: function() { + return this.replace(/<\/?[^>]+>/gi, ''); + }, + + stripScripts: function() { + return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); + }, + + extractScripts: function() { + var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); + var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); + return (this.match(matchAll) || []).map(function(scriptTag) { + return (scriptTag.match(matchOne) || ['', ''])[1]; + }); + }, + + evalScripts: function() { + return this.extractScripts().map(function(script) { return eval(script) }); + }, + + escapeHTML: function() { + var self = arguments.callee; + self.text.data = this; + return self.div.innerHTML; + }, + + unescapeHTML: function() { + var div = new Element('div'); + div.innerHTML = this.stripTags(); + return div.childNodes[0] ? (div.childNodes.length > 1 ? + $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) : + div.childNodes[0].nodeValue) : ''; + }, + + toQueryParams: function(separator) { + var match = this.strip().match(/([^?#]*)(#.*)?$/); + if (!match) return { }; + + return match[1].split(separator || '&').inject({ }, function(hash, pair) { + if ((pair = pair.split('='))[0]) { + var key = decodeURIComponent(pair.shift()); + var value = pair.length > 1 ? pair.join('=') : pair[0]; + if (value != undefined) value = decodeURIComponent(value); + + if (key in hash) { + if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; + hash[key].push(value); + } + else hash[key] = value; + } + return hash; + }); + }, + + toArray: function() { + return this.split(''); + }, + + succ: function() { + return this.slice(0, this.length - 1) + + String.fromCharCode(this.charCodeAt(this.length - 1) + 1); + }, + + times: function(count) { + return count < 1 ? '' : new Array(count + 1).join(this); + }, + + camelize: function() { + var parts = this.split('-'), len = parts.length; + if (len == 1) return parts[0]; + + var camelized = this.charAt(0) == '-' + ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) + : parts[0]; + + for (var i = 1; i < len; i++) + camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); + + return camelized; + }, + + capitalize: function() { + return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); + }, + + underscore: function() { + return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase(); + }, + + dasherize: function() { + return this.gsub(/_/,'-'); + }, + + inspect: function(useDoubleQuotes) { + var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) { + var character = String.specialChar[match[0]]; + return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16); + }); + if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; + return "'" + escapedString.replace(/'/g, '\\\'') + "'"; + }, + + toJSON: function() { + return this.inspect(true); + }, + + unfilterJSON: function(filter) { + return this.sub(filter || Prototype.JSONFilter, '#{1}'); + }, + + isJSON: function() { + var str = this; + if (str.blank()) return false; + str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); + return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); + }, + + evalJSON: function(sanitize) { + var json = this.unfilterJSON(); + try { + if (!sanitize || json.isJSON()) return eval('(' + json + ')'); + } catch (e) { } + throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); + }, + + include: function(pattern) { + return this.indexOf(pattern) > -1; + }, + + startsWith: function(pattern) { + return this.indexOf(pattern) === 0; + }, + + endsWith: function(pattern) { + var d = this.length - pattern.length; + return d >= 0 && this.lastIndexOf(pattern) === d; + }, + + empty: function() { + return this == ''; + }, + + blank: function() { + return /^\s*$/.test(this); + }, + + interpolate: function(object, pattern) { + return new Template(this, pattern).evaluate(object); + } +}); + +if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, { + escapeHTML: function() { + return this.replace(/&/g,'&').replace(//g,'>'); + }, + unescapeHTML: function() { + return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); + } +}); + +String.prototype.gsub.prepareReplacement = function(replacement) { + if (Object.isFunction(replacement)) return replacement; + var template = new Template(replacement); + return function(match) { return template.evaluate(match) }; +}; + +String.prototype.parseQuery = String.prototype.toQueryParams; + +Object.extend(String.prototype.escapeHTML, { + div: document.createElement('div'), + text: document.createTextNode('') +}); + +with (String.prototype.escapeHTML) div.appendChild(text); + +var Template = Class.create({ + initialize: function(template, pattern) { + this.template = template.toString(); + this.pattern = pattern || Template.Pattern; + }, + + evaluate: function(object) { + if (Object.isFunction(object.toTemplateReplacements)) + object = object.toTemplateReplacements(); + + return this.template.gsub(this.pattern, function(match) { + if (object == null) return ''; + + var before = match[1] || ''; + if (before == '\\') return match[2]; + + var ctx = object, expr = match[3]; + var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; + match = pattern.exec(expr); + if (match == null) return before; + + while (match != null) { + var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1]; + ctx = ctx[comp]; + if (null == ctx || '' == match[3]) break; + expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); + match = pattern.exec(expr); + } + + return before + String.interpret(ctx); + }); + } +}); +Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; + +var $break = { }; + +var Enumerable = { + each: function(iterator, context) { + var index = 0; + iterator = iterator.bind(context); + try { + this._each(function(value) { + iterator(value, index++); + }); + } catch (e) { + if (e != $break) throw e; + } + return this; + }, + + eachSlice: function(number, iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var index = -number, slices = [], array = this.toArray(); + while ((index += number) < array.length) + slices.push(array.slice(index, index+number)); + return slices.collect(iterator, context); + }, + + all: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var result = true; + this.each(function(value, index) { + result = result && !!iterator(value, index); + if (!result) throw $break; + }); + return result; + }, + + any: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var result = false; + this.each(function(value, index) { + if (result = !!iterator(value, index)) + throw $break; + }); + return result; + }, + + collect: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var results = []; + this.each(function(value, index) { + results.push(iterator(value, index)); + }); + return results; + }, + + detect: function(iterator, context) { + iterator = iterator.bind(context); + var result; + this.each(function(value, index) { + if (iterator(value, index)) { + result = value; + throw $break; + } + }); + return result; + }, + + findAll: function(iterator, context) { + iterator = iterator.bind(context); + var results = []; + this.each(function(value, index) { + if (iterator(value, index)) + results.push(value); + }); + return results; + }, + + grep: function(filter, iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var results = []; + + if (Object.isString(filter)) + filter = new RegExp(filter); + + this.each(function(value, index) { + if (filter.match(value)) + results.push(iterator(value, index)); + }); + return results; + }, + + include: function(object) { + if (Object.isFunction(this.indexOf)) + if (this.indexOf(object) != -1) return true; + + var found = false; + this.each(function(value) { + if (value == object) { + found = true; + throw $break; + } + }); + return found; + }, + + inGroupsOf: function(number, fillWith) { + fillWith = Object.isUndefined(fillWith) ? null : fillWith; + return this.eachSlice(number, function(slice) { + while(slice.length < number) slice.push(fillWith); + return slice; + }); + }, + + inject: function(memo, iterator, context) { + iterator = iterator.bind(context); + this.each(function(value, index) { + memo = iterator(memo, value, index); + }); + return memo; + }, + + invoke: function(method) { + var args = $A(arguments).slice(1); + return this.map(function(value) { + return value[method].apply(value, args); + }); + }, + + max: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var result; + this.each(function(value, index) { + value = iterator(value, index); + if (result == null || value >= result) + result = value; + }); + return result; + }, + + min: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var result; + this.each(function(value, index) { + value = iterator(value, index); + if (result == null || value < result) + result = value; + }); + return result; + }, + + partition: function(iterator, context) { + iterator = iterator ? iterator.bind(context) : Prototype.K; + var trues = [], falses = []; + this.each(function(value, index) { + (iterator(value, index) ? + trues : falses).push(value); + }); + return [trues, falses]; + }, + + pluck: function(property) { + var results = []; + this.each(function(value) { + results.push(value[property]); + }); + return results; + }, + + reject: function(iterator, context) { + iterator = iterator.bind(context); + var results = []; + this.each(function(value, index) { + if (!iterator(value, index)) + results.push(value); + }); + return results; + }, + + sortBy: function(iterator, context) { + iterator = iterator.bind(context); + return this.map(function(value, index) { + return {value: value, criteria: iterator(value, index)}; + }).sort(function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }).pluck('value'); + }, + + toArray: function() { + return this.map(); + }, + + zip: function() { + var iterator = Prototype.K, args = $A(arguments); + if (Object.isFunction(args.last())) + iterator = args.pop(); + + var collections = [this].concat(args).map($A); + return this.map(function(value, index) { + return iterator(collections.pluck(index)); + }); + }, + + size: function() { + return this.toArray().length; + }, + + inspect: function() { + return '#'; + } +}; + +Object.extend(Enumerable, { + map: Enumerable.collect, + find: Enumerable.detect, + select: Enumerable.findAll, + filter: Enumerable.findAll, + member: Enumerable.include, + entries: Enumerable.toArray, + every: Enumerable.all, + some: Enumerable.any +}); +function $A(iterable) { + if (!iterable) return []; + if (iterable.toArray) return iterable.toArray(); + var length = iterable.length || 0, results = new Array(length); + while (length--) results[length] = iterable[length]; + return results; +} + +if (Prototype.Browser.WebKit) { + $A = function(iterable) { + if (!iterable) return []; + if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') && + iterable.toArray) return iterable.toArray(); + var length = iterable.length || 0, results = new Array(length); + while (length--) results[length] = iterable[length]; + return results; + }; +} + +Array.from = $A; + +Object.extend(Array.prototype, Enumerable); + +if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse; + +Object.extend(Array.prototype, { + _each: function(iterator) { + for (var i = 0, length = this.length; i < length; i++) + iterator(this[i]); + }, + + clear: function() { + this.length = 0; + return this; + }, + + first: function() { + return this[0]; + }, + + last: function() { + return this[this.length - 1]; + }, + + compact: function() { + return this.select(function(value) { + return value != null; + }); + }, + + flatten: function() { + return this.inject([], function(array, value) { + return array.concat(Object.isArray(value) ? + value.flatten() : [value]); + }); + }, + + without: function() { + var values = $A(arguments); + return this.select(function(value) { + return !values.include(value); + }); + }, + + reverse: function(inline) { + return (inline !== false ? this : this.toArray())._reverse(); + }, + + reduce: function() { + return this.length > 1 ? this : this[0]; + }, + + uniq: function(sorted) { + return this.inject([], function(array, value, index) { + if (0 == index || (sorted ? array.last() != value : !array.include(value))) + array.push(value); + return array; + }); + }, + + intersect: function(array) { + return this.uniq().findAll(function(item) { + return array.detect(function(value) { return item === value }); + }); + }, + + clone: function() { + return [].concat(this); + }, + + size: function() { + return this.length; + }, + + inspect: function() { + return '[' + this.map(Object.inspect).join(', ') + ']'; + }, + + toJSON: function() { + var results = []; + this.each(function(object) { + var value = Object.toJSON(object); + if (!Object.isUndefined(value)) results.push(value); + }); + return '[' + results.join(', ') + ']'; + } +}); + +// use native browser JS 1.6 implementation if available +if (Object.isFunction(Array.prototype.forEach)) + Array.prototype._each = Array.prototype.forEach; + +if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) { + i || (i = 0); + var length = this.length; + if (i < 0) i = length + i; + for (; i < length; i++) + if (this[i] === item) return i; + return -1; +}; + +if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) { + i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; + var n = this.slice(0, i).reverse().indexOf(item); + return (n < 0) ? n : i - n - 1; +}; + +Array.prototype.toArray = Array.prototype.clone; + +function $w(string) { + if (!Object.isString(string)) return []; + string = string.strip(); + return string ? string.split(/\s+/) : []; +} + +if (Prototype.Browser.Opera){ + Array.prototype.concat = function() { + var array = []; + for (var i = 0, length = this.length; i < length; i++) array.push(this[i]); + for (var i = 0, length = arguments.length; i < length; i++) { + if (Object.isArray(arguments[i])) { + for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) + array.push(arguments[i][j]); + } else { + array.push(arguments[i]); + } + } + return array; + }; +} +Object.extend(Number.prototype, { + toColorPart: function() { + return this.toPaddedString(2, 16); + }, + + succ: function() { + return this + 1; + }, + + times: function(iterator) { + $R(0, this, true).each(iterator); + return this; + }, + + toPaddedString: function(length, radix) { + var string = this.toString(radix || 10); + return '0'.times(length - string.length) + string; + }, + + toJSON: function() { + return isFinite(this) ? this.toString() : 'null'; + } +}); + +$w('abs round ceil floor').each(function(method){ + Number.prototype[method] = Math[method].methodize(); +}); +function $H(object) { + return new Hash(object); +}; + +var Hash = Class.create(Enumerable, (function() { + + function toQueryPair(key, value) { + if (Object.isUndefined(value)) return key; + return key + '=' + encodeURIComponent(String.interpret(value)); + } + + return { + initialize: function(object) { + this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); + }, + + _each: function(iterator) { + for (var key in this._object) { + var value = this._object[key], pair = [key, value]; + pair.key = key; + pair.value = value; + iterator(pair); + } + }, + + set: function(key, value) { + return this._object[key] = value; + }, + + get: function(key) { + return this._object[key]; + }, + + unset: function(key) { + var value = this._object[key]; + delete this._object[key]; + return value; + }, + + toObject: function() { + return Object.clone(this._object); + }, + + keys: function() { + return this.pluck('key'); + }, + + values: function() { + return this.pluck('value'); + }, + + index: function(value) { + var match = this.detect(function(pair) { + return pair.value === value; + }); + return match && match.key; + }, + + merge: function(object) { + return this.clone().update(object); + }, + + update: function(object) { + return new Hash(object).inject(this, function(result, pair) { + result.set(pair.key, pair.value); + return result; + }); + }, + + toQueryString: function() { + return this.map(function(pair) { + var key = encodeURIComponent(pair.key), values = pair.value; + + if (values && typeof values == 'object') { + if (Object.isArray(values)) + return values.map(toQueryPair.curry(key)).join('&'); + } + return toQueryPair(key, values); + }).join('&'); + }, + + inspect: function() { + return '#'; + }, + + toJSON: function() { + return Object.toJSON(this.toObject()); + }, + + clone: function() { + return new Hash(this); + } + } +})()); + +Hash.prototype.toTemplateReplacements = Hash.prototype.toObject; +Hash.from = $H; +var ObjectRange = Class.create(Enumerable, { + initialize: function(start, end, exclusive) { + this.start = start; + this.end = end; + this.exclusive = exclusive; + }, + + _each: function(iterator) { + var value = this.start; + while (this.include(value)) { + iterator(value); + value = value.succ(); + } + }, + + include: function(value) { + if (value < this.start) + return false; + if (this.exclusive) + return value < this.end; + return value <= this.end; + } +}); + +var $R = function(start, end, exclusive) { + return new ObjectRange(start, end, exclusive); +}; + +var Ajax = { + getTransport: function() { + return Try.these( + function() {return new XMLHttpRequest()}, + function() {return new ActiveXObject('Msxml2.XMLHTTP')}, + function() {return new ActiveXObject('Microsoft.XMLHTTP')} + ) || false; + }, + + activeRequestCount: 0 +}; + +Ajax.Responders = { + responders: [], + + _each: function(iterator) { + this.responders._each(iterator); + }, + + register: function(responder) { + if (!this.include(responder)) + this.responders.push(responder); + }, + + unregister: function(responder) { + this.responders = this.responders.without(responder); + }, + + dispatch: function(callback, request, transport, json) { + this.each(function(responder) { + if (Object.isFunction(responder[callback])) { + try { + responder[callback].apply(responder, [request, transport, json]); + } catch (e) { } + } + }); + } +}; + +Object.extend(Ajax.Responders, Enumerable); + +Ajax.Responders.register({ + onCreate: function() { Ajax.activeRequestCount++ }, + onComplete: function() { Ajax.activeRequestCount-- } +}); + +Ajax.Base = Class.create({ + initialize: function(options) { + this.options = { + method: 'post', + asynchronous: true, + contentType: 'application/x-www-form-urlencoded', + encoding: 'UTF-8', + parameters: '', + evalJSON: true, + evalJS: true + }; + Object.extend(this.options, options || { }); + + this.options.method = this.options.method.toLowerCase(); + + if (Object.isString(this.options.parameters)) + this.options.parameters = this.options.parameters.toQueryParams(); + else if (Object.isHash(this.options.parameters)) + this.options.parameters = this.options.parameters.toObject(); + } +}); + +Ajax.Request = Class.create(Ajax.Base, { + _complete: false, + + initialize: function($super, url, options) { + $super(options); + this.transport = Ajax.getTransport(); + this.request(url); + }, + + request: function(url) { + this.url = url; + this.method = this.options.method; + var params = Object.clone(this.options.parameters); + + if (!['get', 'post'].include(this.method)) { + // simulate other verbs over post + params['_method'] = this.method; + this.method = 'post'; + } + + this.parameters = params; + + if (params = Object.toQueryString(params)) { + // when GET, append parameters to URL + if (this.method == 'get') + this.url += (this.url.include('?') ? '&' : '?') + params; + else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) + params += '&_='; + } + + try { + var response = new Ajax.Response(this); + if (this.options.onCreate) this.options.onCreate(response); + Ajax.Responders.dispatch('onCreate', this, response); + + this.transport.open(this.method.toUpperCase(), this.url, + this.options.asynchronous); + + if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); + + this.transport.onreadystatechange = this.onStateChange.bind(this); + this.setRequestHeaders(); + + this.body = this.method == 'post' ? (this.options.postBody || params) : null; + this.transport.overrideMimeType('text/plain; charset=x-user-defined'); + this.transport.send(this.body); + + /* Force Firefox to handle ready state 4 for synchronous requests */ + if (!this.options.asynchronous && this.transport.overrideMimeType) + this.onStateChange(); + + } + catch (e) { + this.dispatchException(e); + } + }, + + onStateChange: function() { + var readyState = this.transport.readyState; + if (readyState > 1 && !((readyState == 4) && this._complete)) + this.respondToReadyState(this.transport.readyState); + }, + + setRequestHeaders: function() { + var headers = { + 'X-Requested-With': 'XMLHttpRequest', + 'X-Prototype-Version': Prototype.Version, + 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' + }; + + if (this.method == 'post') { + headers['Content-type'] = this.options.contentType + + (this.options.encoding ? '; charset=' + this.options.encoding : ''); + + /* Force "Connection: close" for older Mozilla browsers to work + * around a bug where XMLHttpRequest sends an incorrect + * Content-length header. See Mozilla Bugzilla #246651. + */ + if (this.transport.overrideMimeType && + (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) + headers['Connection'] = 'close'; + } + + // user-defined headers + if (typeof this.options.requestHeaders == 'object') { + var extras = this.options.requestHeaders; + + if (Object.isFunction(extras.push)) + for (var i = 0, length = extras.length; i < length; i += 2) + headers[extras[i]] = extras[i+1]; + else + $H(extras).each(function(pair) { headers[pair.key] = pair.value }); + } + + for (var name in headers) + this.transport.setRequestHeader(name, headers[name]); + }, + + success: function() { + var status = this.getStatus(); + return !status || (status >= 200 && status < 300); + }, + + getStatus: function() { + try { + return this.transport.status || 0; + } catch (e) { return 0 } + }, + + respondToReadyState: function(readyState) { + var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); + + if (state == 'Complete') { + try { + this._complete = true; + (this.options['on' + response.status] + || this.options['on' + (this.success() ? 'Success' : 'Failure')] + || Prototype.emptyFunction)(response, response.headerJSON); + } catch (e) { + this.dispatchException(e); + } + + var contentType = response.getHeader('Content-type'); + if (this.options.evalJS == 'force' + || (this.options.evalJS && this.isSameOrigin() && contentType + && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) + this.evalResponse(); + } + + try { + (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); + Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); + } catch (e) { + this.dispatchException(e); + } + + if (state == 'Complete') { + // avoid memory leak in MSIE: clean up + this.transport.onreadystatechange = Prototype.emptyFunction; + } + }, + + isSameOrigin: function() { + var m = this.url.match(/^\s*https?:\/\/[^\/]*/); + return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ + protocol: location.protocol, + domain: document.domain, + port: location.port ? ':' + location.port : '' + })); + }, + + getHeader: function(name) { + try { + return this.transport.getResponseHeader(name) || null; + } catch (e) { return null } + }, + + evalResponse: function() { + try { + return eval((this.transport.responseText || '').unfilterJSON()); + } catch (e) { + this.dispatchException(e); + } + }, + + dispatchException: function(exception) { + (this.options.onException || Prototype.emptyFunction)(this, exception); + Ajax.Responders.dispatch('onException', this, exception); + } +}); + +Ajax.Request.Events = + ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; + +Ajax.Response = Class.create({ + initialize: function(request){ + this.request = request; + var transport = this.transport = request.transport, + readyState = this.readyState = transport.readyState; + + if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { + this.status = this.getStatus(); + this.statusText = this.getStatusText(); + this.responseText = String.interpret(transport.responseText); + this.headerJSON = this._getHeaderJSON(); + } + + if(readyState == 4) { + var xml = transport.responseXML; + this.responseXML = Object.isUndefined(xml) ? null : xml; + this.responseJSON = this._getResponseJSON(); + } + }, + + status: 0, + statusText: '', + + getStatus: Ajax.Request.prototype.getStatus, + + getStatusText: function() { + try { + return this.transport.statusText || ''; + } catch (e) { return '' } + }, + + getHeader: Ajax.Request.prototype.getHeader, + + getAllHeaders: function() { + try { + return this.getAllResponseHeaders(); + } catch (e) { return null } + }, + + getResponseHeader: function(name) { + return this.transport.getResponseHeader(name); + }, + + getAllResponseHeaders: function() { + return this.transport.getAllResponseHeaders(); + }, + + _getHeaderJSON: function() { + var json = this.getHeader('X-JSON'); + if (!json) return null; + json = decodeURIComponent(escape(json)); + try { + return json.evalJSON(this.request.options.sanitizeJSON || + !this.request.isSameOrigin()); + } catch (e) { + this.request.dispatchException(e); + } + }, + + _getResponseJSON: function() { + var options = this.request.options; + if (!options.evalJSON || (options.evalJSON != 'force' && + !(this.getHeader('Content-type') || '').include('application/json')) || + this.responseText.blank()) + return null; + try { + return this.responseText.evalJSON(options.sanitizeJSON || + !this.request.isSameOrigin()); + } catch (e) { + this.request.dispatchException(e); + } + } +}); + +Ajax.Updater = Class.create(Ajax.Request, { + initialize: function($super, container, url, options) { + this.container = { + success: (container.success || container), + failure: (container.failure || (container.success ? null : container)) + }; + + options = Object.clone(options); + var onComplete = options.onComplete; + options.onComplete = (function(response, json) { + this.updateContent(response.responseText); + if (Object.isFunction(onComplete)) onComplete(response, json); + }).bind(this); + + $super(url, options); + }, + + updateContent: function(responseText) { + var receiver = this.container[this.success() ? 'success' : 'failure'], + options = this.options; + + if (!options.evalScripts) responseText = responseText.stripScripts(); + + if (receiver = $(receiver)) { + if (options.insertion) { + if (Object.isString(options.insertion)) { + var insertion = { }; insertion[options.insertion] = responseText; + receiver.insert(insertion); + } + else options.insertion(receiver, responseText); + } + else receiver.update(responseText); + } + } +}); + +Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { + initialize: function($super, container, url, options) { + $super(options); + this.onComplete = this.options.onComplete; + + this.frequency = (this.options.frequency || 2); + this.decay = (this.options.decay || 1); + + this.updater = { }; + this.container = container; + this.url = url; + + this.start(); + }, + + start: function() { + this.options.onComplete = this.updateComplete.bind(this); + this.onTimerEvent(); + }, + + stop: function() { + this.updater.options.onComplete = undefined; + clearTimeout(this.timer); + (this.onComplete || Prototype.emptyFunction).apply(this, arguments); + }, + + updateComplete: function(response) { + if (this.options.decay) { + this.decay = (response.responseText == this.lastText ? + this.decay * this.options.decay : 1); + + this.lastText = response.responseText; + } + this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); + }, + + onTimerEvent: function() { + this.updater = new Ajax.Updater(this.container, this.url, this.options); + } +}); +function $(element) { + if (arguments.length > 1) { + for (var i = 0, elements = [], length = arguments.length; i < length; i++) + elements.push($(arguments[i])); + return elements; + } + if (Object.isString(element)) + element = document.getElementById(element); + return Element.extend(element); +} + +if (Prototype.BrowserFeatures.XPath) { + document._getElementsByXPath = function(expression, parentElement) { + var results = []; + var query = document.evaluate(expression, $(parentElement) || document, + null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); + for (var i = 0, length = query.snapshotLength; i < length; i++) + results.push(Element.extend(query.snapshotItem(i))); + return results; + }; +} + +/*--------------------------------------------------------------------------*/ + +if (!window.Node) var Node = { }; + +if (!Node.ELEMENT_NODE) { + // DOM level 2 ECMAScript Language Binding + Object.extend(Node, { + ELEMENT_NODE: 1, + ATTRIBUTE_NODE: 2, + TEXT_NODE: 3, + CDATA_SECTION_NODE: 4, + ENTITY_REFERENCE_NODE: 5, + ENTITY_NODE: 6, + PROCESSING_INSTRUCTION_NODE: 7, + COMMENT_NODE: 8, + DOCUMENT_NODE: 9, + DOCUMENT_TYPE_NODE: 10, + DOCUMENT_FRAGMENT_NODE: 11, + NOTATION_NODE: 12 + }); +} + +(function() { + var element = this.Element; + this.Element = function(tagName, attributes) { + attributes = attributes || { }; + tagName = tagName.toLowerCase(); + var cache = Element.cache; + if (Prototype.Browser.IE && attributes.name) { + tagName = '<' + tagName + ' name="' + attributes.name + '">'; + delete attributes.name; + return Element.writeAttribute(document.createElement(tagName), attributes); + } + if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); + return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); + }; + Object.extend(this.Element, element || { }); +}).call(window); + +Element.cache = { }; + +Element.Methods = { + visible: function(element) { + return $(element).style.display != 'none'; + }, + + toggle: function(element) { + element = $(element); + Element[Element.visible(element) ? 'hide' : 'show'](element); + return element; + }, + + hide: function(element) { + $(element).style.display = 'none'; + return element; + }, + + show: function(element) { + $(element).style.display = ''; + return element; + }, + + remove: function(element) { + element = $(element); + element.parentNode.removeChild(element); + return element; + }, + + update: function(element, content) { + element = $(element); + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) return element.update().insert(content); + content = Object.toHTML(content); + element.innerHTML = content.stripScripts(); + content.evalScripts.bind(content).defer(); + return element; + }, + + replace: function(element, content) { + element = $(element); + if (content && content.toElement) content = content.toElement(); + else if (!Object.isElement(content)) { + content = Object.toHTML(content); + var range = element.ownerDocument.createRange(); + range.selectNode(element); + content.evalScripts.bind(content).defer(); + content = range.createContextualFragment(content.stripScripts()); + } + element.parentNode.replaceChild(content, element); + return element; + }, + + insert: function(element, insertions) { + element = $(element); + + if (Object.isString(insertions) || Object.isNumber(insertions) || + Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) + insertions = {bottom:insertions}; + + var content, insert, tagName, childNodes; + + for (var position in insertions) { + content = insertions[position]; + position = position.toLowerCase(); + insert = Element._insertionTranslations[position]; + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) { + insert(element, content); + continue; + } + + content = Object.toHTML(content); + + tagName = ((position == 'before' || position == 'after') + ? element.parentNode : element).tagName.toUpperCase(); + + childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); + + if (position == 'top' || position == 'after') childNodes.reverse(); + childNodes.each(insert.curry(element)); + + content.evalScripts.bind(content).defer(); + } + + return element; + }, + + wrap: function(element, wrapper, attributes) { + element = $(element); + if (Object.isElement(wrapper)) + $(wrapper).writeAttribute(attributes || { }); + else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); + else wrapper = new Element('div', wrapper); + if (element.parentNode) + element.parentNode.replaceChild(wrapper, element); + wrapper.appendChild(element); + return wrapper; + }, + + inspect: function(element) { + element = $(element); + var result = '<' + element.tagName.toLowerCase(); + $H({'id': 'id', 'className': 'class'}).each(function(pair) { + var property = pair.first(), attribute = pair.last(); + var value = (element[property] || '').toString(); + if (value) result += ' ' + attribute + '=' + value.inspect(true); + }); + return result + '>'; + }, + + recursivelyCollect: function(element, property) { + element = $(element); + var elements = []; + while (element = element[property]) + if (element.nodeType == 1) + elements.push(Element.extend(element)); + return elements; + }, + + ancestors: function(element) { + return $(element).recursivelyCollect('parentNode'); + }, + + descendants: function(element) { + return $(element).select("*"); + }, + + firstDescendant: function(element) { + element = $(element).firstChild; + while (element && element.nodeType != 1) element = element.nextSibling; + return $(element); + }, + + immediateDescendants: function(element) { + if (!(element = $(element).firstChild)) return []; + while (element && element.nodeType != 1) element = element.nextSibling; + if (element) return [element].concat($(element).nextSiblings()); + return []; + }, + + previousSiblings: function(element) { + return $(element).recursivelyCollect('previousSibling'); + }, + + nextSiblings: function(element) { + return $(element).recursivelyCollect('nextSibling'); + }, + + siblings: function(element) { + element = $(element); + return element.previousSiblings().reverse().concat(element.nextSiblings()); + }, + + match: function(element, selector) { + if (Object.isString(selector)) + selector = new Selector(selector); + return selector.match($(element)); + }, + + up: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(element.parentNode); + var ancestors = element.ancestors(); + return Object.isNumber(expression) ? ancestors[expression] : + Selector.findElement(ancestors, expression, index); + }, + + down: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return element.firstDescendant(); + return Object.isNumber(expression) ? element.descendants()[expression] : + element.select(expression)[index || 0]; + }, + + previous: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); + var previousSiblings = element.previousSiblings(); + return Object.isNumber(expression) ? previousSiblings[expression] : + Selector.findElement(previousSiblings, expression, index); + }, + + next: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); + var nextSiblings = element.nextSiblings(); + return Object.isNumber(expression) ? nextSiblings[expression] : + Selector.findElement(nextSiblings, expression, index); + }, + + select: function() { + var args = $A(arguments), element = $(args.shift()); + return Selector.findChildElements(element, args); + }, + + adjacent: function() { + var args = $A(arguments), element = $(args.shift()); + return Selector.findChildElements(element.parentNode, args).without(element); + }, + + identify: function(element) { + element = $(element); + var id = element.readAttribute('id'), self = arguments.callee; + if (id) return id; + do { id = 'anonymous_element_' + self.counter++ } while ($(id)); + element.writeAttribute('id', id); + return id; + }, + + readAttribute: function(element, name) { + element = $(element); + if (Prototype.Browser.IE) { + var t = Element._attributeTranslations.read; + if (t.values[name]) return t.values[name](element, name); + if (t.names[name]) name = t.names[name]; + if (name.include(':')) { + return (!element.attributes || !element.attributes[name]) ? null : + element.attributes[name].value; + } + } + return element.getAttribute(name); + }, + + writeAttribute: function(element, name, value) { + element = $(element); + var attributes = { }, t = Element._attributeTranslations.write; + + if (typeof name == 'object') attributes = name; + else attributes[name] = Object.isUndefined(value) ? true : value; + + for (var attr in attributes) { + name = t.names[attr] || attr; + value = attributes[attr]; + if (t.values[attr]) name = t.values[attr](element, value); + if (value === false || value === null) + element.removeAttribute(name); + else if (value === true) + element.setAttribute(name, name); + else element.setAttribute(name, value); + } + return element; + }, + + getHeight: function(element) { + return $(element).getDimensions().height; + }, + + getWidth: function(element) { + return $(element).getDimensions().width; + }, + + classNames: function(element) { + return new Element.ClassNames(element); + }, + + hasClassName: function(element, className) { + if (!(element = $(element))) return; + var elementClassName = element.className; + return (elementClassName.length > 0 && (elementClassName == className || + new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); + }, + + addClassName: function(element, className) { + if (!(element = $(element))) return; + if (!element.hasClassName(className)) + element.className += (element.className ? ' ' : '') + className; + return element; + }, + + removeClassName: function(element, className) { + if (!(element = $(element))) return; + element.className = element.className.replace( + new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); + return element; + }, + + toggleClassName: function(element, className) { + if (!(element = $(element))) return; + return element[element.hasClassName(className) ? + 'removeClassName' : 'addClassName'](className); + }, + + // removes whitespace-only text node children + cleanWhitespace: function(element) { + element = $(element); + var node = element.firstChild; + while (node) { + var nextNode = node.nextSibling; + if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) + element.removeChild(node); + node = nextNode; + } + return element; + }, + + empty: function(element) { + return $(element).innerHTML.blank(); + }, + + descendantOf: function(element, ancestor) { + element = $(element), ancestor = $(ancestor); + var originalAncestor = ancestor; + + if (element.compareDocumentPosition) + return (element.compareDocumentPosition(ancestor) & 8) === 8; + + if (element.sourceIndex && !Prototype.Browser.Opera) { + var e = element.sourceIndex, a = ancestor.sourceIndex, + nextAncestor = ancestor.nextSibling; + if (!nextAncestor) { + do { ancestor = ancestor.parentNode; } + while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode); + } + if (nextAncestor && nextAncestor.sourceIndex) + return (e > a && e < nextAncestor.sourceIndex); + } + + while (element = element.parentNode) + if (element == originalAncestor) return true; + return false; + }, + + scrollTo: function(element) { + element = $(element); + var pos = element.cumulativeOffset(); + window.scrollTo(pos[0], pos[1]); + return element; + }, + + getStyle: function(element, style) { + element = $(element); + style = style == 'float' ? 'cssFloat' : style.camelize(); + var value = element.style[style]; + if (!value) { + var css = document.defaultView.getComputedStyle(element, null); + value = css ? css[style] : null; + } + if (style == 'opacity') return value ? parseFloat(value) : 1.0; + return value == 'auto' ? null : value; + }, + + getOpacity: function(element) { + return $(element).getStyle('opacity'); + }, + + setStyle: function(element, styles) { + element = $(element); + var elementStyle = element.style, match; + if (Object.isString(styles)) { + element.style.cssText += ';' + styles; + return styles.include('opacity') ? + element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; + } + for (var property in styles) + if (property == 'opacity') element.setOpacity(styles[property]); + else + elementStyle[(property == 'float' || property == 'cssFloat') ? + (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : + property] = styles[property]; + + return element; + }, + + setOpacity: function(element, value) { + element = $(element); + element.style.opacity = (value == 1 || value === '') ? '' : + (value < 0.00001) ? 0 : value; + return element; + }, + + getDimensions: function(element) { + element = $(element); + var display = $(element).getStyle('display'); + if (display != 'none' && display != null) // Safari bug + return {width: element.offsetWidth, height: element.offsetHeight}; + + // All *Width and *Height properties give 0 on elements with display none, + // so enable the element temporarily + var els = element.style; + var originalVisibility = els.visibility; + var originalPosition = els.position; + var originalDisplay = els.display; + els.visibility = 'hidden'; + els.position = 'absolute'; + els.display = 'block'; + var originalWidth = element.clientWidth; + var originalHeight = element.clientHeight; + els.display = originalDisplay; + els.position = originalPosition; + els.visibility = originalVisibility; + return {width: originalWidth, height: originalHeight}; + }, + + makePositioned: function(element) { + element = $(element); + var pos = Element.getStyle(element, 'position'); + if (pos == 'static' || !pos) { + element._madePositioned = true; + element.style.position = 'relative'; + // Opera returns the offset relative to the positioning context, when an + // element is position relative but top and left have not been defined + if (window.opera) { + element.style.top = 0; + element.style.left = 0; + } + } + return element; + }, + + undoPositioned: function(element) { + element = $(element); + if (element._madePositioned) { + element._madePositioned = undefined; + element.style.position = + element.style.top = + element.style.left = + element.style.bottom = + element.style.right = ''; + } + return element; + }, + + makeClipping: function(element) { + element = $(element); + if (element._overflow) return element; + element._overflow = Element.getStyle(element, 'overflow') || 'auto'; + if (element._overflow !== 'hidden') + element.style.overflow = 'hidden'; + return element; + }, + + undoClipping: function(element) { + element = $(element); + if (!element._overflow) return element; + element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; + element._overflow = null; + return element; + }, + + cumulativeOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + positionedOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + if (element) { + if (element.tagName == 'BODY') break; + var p = Element.getStyle(element, 'position'); + if (p !== 'static') break; + } + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + absolutize: function(element) { + element = $(element); + if (element.getStyle('position') == 'absolute') return; + // Position.prepare(); // To be done manually by Scripty when it needs it. + + var offsets = element.positionedOffset(); + var top = offsets[1]; + var left = offsets[0]; + var width = element.clientWidth; + var height = element.clientHeight; + + element._originalLeft = left - parseFloat(element.style.left || 0); + element._originalTop = top - parseFloat(element.style.top || 0); + element._originalWidth = element.style.width; + element._originalHeight = element.style.height; + + element.style.position = 'absolute'; + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.width = width + 'px'; + element.style.height = height + 'px'; + return element; + }, + + relativize: function(element) { + element = $(element); + if (element.getStyle('position') == 'relative') return; + // Position.prepare(); // To be done manually by Scripty when it needs it. + + element.style.position = 'relative'; + var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); + var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); + + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.height = element._originalHeight; + element.style.width = element._originalWidth; + return element; + }, + + cumulativeScrollOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.scrollTop || 0; + valueL += element.scrollLeft || 0; + element = element.parentNode; + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + getOffsetParent: function(element) { + if (element.offsetParent) return $(element.offsetParent); + if (element == document.body) return $(element); + + while ((element = element.parentNode) && element != document.body) + if (Element.getStyle(element, 'position') != 'static') + return $(element); + + return $(document.body); + }, + + viewportOffset: function(forElement) { + var valueT = 0, valueL = 0; + + var element = forElement; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + + // Safari fix + if (element.offsetParent == document.body && + Element.getStyle(element, 'position') == 'absolute') break; + + } while (element = element.offsetParent); + + element = forElement; + do { + if (!Prototype.Browser.Opera || element.tagName == 'BODY') { + valueT -= element.scrollTop || 0; + valueL -= element.scrollLeft || 0; + } + } while (element = element.parentNode); + + return Element._returnOffset(valueL, valueT); + }, + + clonePosition: function(element, source) { + var options = Object.extend({ + setLeft: true, + setTop: true, + setWidth: true, + setHeight: true, + offsetTop: 0, + offsetLeft: 0 + }, arguments[2] || { }); + + // find page position of source + source = $(source); + var p = source.viewportOffset(); + + // find coordinate system to use + element = $(element); + var delta = [0, 0]; + var parent = null; + // delta [0,0] will do fine with position: fixed elements, + // position:absolute needs offsetParent deltas + if (Element.getStyle(element, 'position') == 'absolute') { + parent = element.getOffsetParent(); + delta = parent.viewportOffset(); + } + + // correct by body offsets (fixes Safari) + if (parent == document.body) { + delta[0] -= document.body.offsetLeft; + delta[1] -= document.body.offsetTop; + } + + // set position + if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; + if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; + if (options.setWidth) element.style.width = source.offsetWidth + 'px'; + if (options.setHeight) element.style.height = source.offsetHeight + 'px'; + return element; + } +}; + +Element.Methods.identify.counter = 1; + +Object.extend(Element.Methods, { + getElementsBySelector: Element.Methods.select, + childElements: Element.Methods.immediateDescendants +}); + +Element._attributeTranslations = { + write: { + names: { + className: 'class', + htmlFor: 'for' + }, + values: { } + } +}; + +if (Prototype.Browser.Opera) { + Element.Methods.getStyle = Element.Methods.getStyle.wrap( + function(proceed, element, style) { + switch (style) { + case 'left': case 'top': case 'right': case 'bottom': + if (proceed(element, 'position') === 'static') return null; + case 'height': case 'width': + // returns '0px' for hidden elements; we want it to return null + if (!Element.visible(element)) return null; + + // returns the border-box dimensions rather than the content-box + // dimensions, so we subtract padding and borders from the value + var dim = parseInt(proceed(element, style), 10); + + if (dim !== element['offset' + style.capitalize()]) + return dim + 'px'; + + var properties; + if (style === 'height') { + properties = ['border-top-width', 'padding-top', + 'padding-bottom', 'border-bottom-width']; + } + else { + properties = ['border-left-width', 'padding-left', + 'padding-right', 'border-right-width']; + } + return properties.inject(dim, function(memo, property) { + var val = proceed(element, property); + return val === null ? memo : memo - parseInt(val, 10); + }) + 'px'; + default: return proceed(element, style); + } + } + ); + + Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( + function(proceed, element, attribute) { + if (attribute === 'title') return element.title; + return proceed(element, attribute); + } + ); +} + +else if (Prototype.Browser.IE) { + // IE doesn't report offsets correctly for static elements, so we change them + // to "relative" to get the values, then change them back. + Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( + function(proceed, element) { + element = $(element); + var position = element.getStyle('position'); + if (position !== 'static') return proceed(element); + element.setStyle({ position: 'relative' }); + var value = proceed(element); + element.setStyle({ position: position }); + return value; + } + ); + + $w('positionedOffset viewportOffset').each(function(method) { + Element.Methods[method] = Element.Methods[method].wrap( + function(proceed, element) { + element = $(element); + var position = element.getStyle('position'); + if (position !== 'static') return proceed(element); + // Trigger hasLayout on the offset parent so that IE6 reports + // accurate offsetTop and offsetLeft values for position: fixed. + var offsetParent = element.getOffsetParent(); + if (offsetParent && offsetParent.getStyle('position') === 'fixed') + offsetParent.setStyle({ zoom: 1 }); + element.setStyle({ position: 'relative' }); + var value = proceed(element); + element.setStyle({ position: position }); + return value; + } + ); + }); + + Element.Methods.getStyle = function(element, style) { + element = $(element); + style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); + var value = element.style[style]; + if (!value && element.currentStyle) value = element.currentStyle[style]; + + if (style == 'opacity') { + if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) + if (value[1]) return parseFloat(value[1]) / 100; + return 1.0; + } + + if (value == 'auto') { + if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) + return element['offset' + style.capitalize()] + 'px'; + return null; + } + return value; + }; + + Element.Methods.setOpacity = function(element, value) { + function stripAlpha(filter){ + return filter.replace(/alpha\([^\)]*\)/gi,''); + } + element = $(element); + var currentStyle = element.currentStyle; + if ((currentStyle && !currentStyle.hasLayout) || + (!currentStyle && element.style.zoom == 'normal')) + element.style.zoom = 1; + + var filter = element.getStyle('filter'), style = element.style; + if (value == 1 || value === '') { + (filter = stripAlpha(filter)) ? + style.filter = filter : style.removeAttribute('filter'); + return element; + } else if (value < 0.00001) value = 0; + style.filter = stripAlpha(filter) + + 'alpha(opacity=' + (value * 100) + ')'; + return element; + }; + + Element._attributeTranslations = { + read: { + names: { + 'class': 'className', + 'for': 'htmlFor' + }, + values: { + _getAttr: function(element, attribute) { + return element.getAttribute(attribute, 2); + }, + _getAttrNode: function(element, attribute) { + var node = element.getAttributeNode(attribute); + return node ? node.value : ""; + }, + _getEv: function(element, attribute) { + attribute = element.getAttribute(attribute); + return attribute ? attribute.toString().slice(23, -2) : null; + }, + _flag: function(element, attribute) { + return $(element).hasAttribute(attribute) ? attribute : null; + }, + style: function(element) { + return element.style.cssText.toLowerCase(); + }, + title: function(element) { + return element.title; + } + } + } + }; + + Element._attributeTranslations.write = { + names: Object.extend({ + cellpadding: 'cellPadding', + cellspacing: 'cellSpacing' + }, Element._attributeTranslations.read.names), + values: { + checked: function(element, value) { + element.checked = !!value; + }, + + style: function(element, value) { + element.style.cssText = value ? value : ''; + } + } + }; + + Element._attributeTranslations.has = {}; + + $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + + 'encType maxLength readOnly longDesc').each(function(attr) { + Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; + Element._attributeTranslations.has[attr.toLowerCase()] = attr; + }); + + (function(v) { + Object.extend(v, { + href: v._getAttr, + src: v._getAttr, + type: v._getAttr, + action: v._getAttrNode, + disabled: v._flag, + checked: v._flag, + readonly: v._flag, + multiple: v._flag, + onload: v._getEv, + onunload: v._getEv, + onclick: v._getEv, + ondblclick: v._getEv, + onmousedown: v._getEv, + onmouseup: v._getEv, + onmouseover: v._getEv, + onmousemove: v._getEv, + onmouseout: v._getEv, + onfocus: v._getEv, + onblur: v._getEv, + onkeypress: v._getEv, + onkeydown: v._getEv, + onkeyup: v._getEv, + onsubmit: v._getEv, + onreset: v._getEv, + onselect: v._getEv, + onchange: v._getEv + }); + })(Element._attributeTranslations.read.values); +} + +else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { + Element.Methods.setOpacity = function(element, value) { + element = $(element); + element.style.opacity = (value == 1) ? 0.999999 : + (value === '') ? '' : (value < 0.00001) ? 0 : value; + return element; + }; +} + +else if (Prototype.Browser.WebKit) { + Element.Methods.setOpacity = function(element, value) { + element = $(element); + element.style.opacity = (value == 1 || value === '') ? '' : + (value < 0.00001) ? 0 : value; + + if (value == 1) + if(element.tagName == 'IMG' && element.width) { + element.width++; element.width--; + } else try { + var n = document.createTextNode(' '); + element.appendChild(n); + element.removeChild(n); + } catch (e) { } + + return element; + }; + + // Safari returns margins on body which is incorrect if the child is absolutely + // positioned. For performance reasons, redefine Element#cumulativeOffset for + // KHTML/WebKit only. + Element.Methods.cumulativeOffset = function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + if (element.offsetParent == document.body) + if (Element.getStyle(element, 'position') == 'absolute') break; + + element = element.offsetParent; + } while (element); + + return Element._returnOffset(valueL, valueT); + }; +} + +if (Prototype.Browser.IE || Prototype.Browser.Opera) { + // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements + Element.Methods.update = function(element, content) { + element = $(element); + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) return element.update().insert(content); + + content = Object.toHTML(content); + var tagName = element.tagName.toUpperCase(); + + if (tagName in Element._insertionTranslations.tags) { + $A(element.childNodes).each(function(node) { element.removeChild(node) }); + Element._getContentFromAnonymousElement(tagName, content.stripScripts()) + .each(function(node) { element.appendChild(node) }); + } + else element.innerHTML = content.stripScripts(); + + content.evalScripts.bind(content).defer(); + return element; + }; +} + +if ('outerHTML' in document.createElement('div')) { + Element.Methods.replace = function(element, content) { + element = $(element); + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) { + element.parentNode.replaceChild(content, element); + return element; + } + + content = Object.toHTML(content); + var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); + + if (Element._insertionTranslations.tags[tagName]) { + var nextSibling = element.next(); + var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); + parent.removeChild(element); + if (nextSibling) + fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); + else + fragments.each(function(node) { parent.appendChild(node) }); + } + else element.outerHTML = content.stripScripts(); + + content.evalScripts.bind(content).defer(); + return element; + }; +} + +Element._returnOffset = function(l, t) { + var result = [l, t]; + result.left = l; + result.top = t; + return result; +}; + +Element._getContentFromAnonymousElement = function(tagName, html) { + var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; + if (t) { + div.innerHTML = t[0] + html + t[1]; + t[2].times(function() { div = div.firstChild }); + } else div.innerHTML = html; + return $A(div.childNodes); +}; + +Element._insertionTranslations = { + before: function(element, node) { + element.parentNode.insertBefore(node, element); + }, + top: function(element, node) { + element.insertBefore(node, element.firstChild); + }, + bottom: function(element, node) { + element.appendChild(node); + }, + after: function(element, node) { + element.parentNode.insertBefore(node, element.nextSibling); + }, + tags: { + TABLE: ['', '
', 1], + TBODY: ['', '
', 2], + TR: ['', '
', 3], + TD: ['
', '
', 4], + SELECT: ['', 1] + } +}; + +(function() { + Object.extend(this.tags, { + THEAD: this.tags.TBODY, + TFOOT: this.tags.TBODY, + TH: this.tags.TD + }); +}).call(Element._insertionTranslations); + +Element.Methods.Simulated = { + hasAttribute: function(element, attribute) { + attribute = Element._attributeTranslations.has[attribute] || attribute; + var node = $(element).getAttributeNode(attribute); + return node && node.specified; + } +}; + +Element.Methods.ByTag = { }; + +Object.extend(Element, Element.Methods); + +if (!Prototype.BrowserFeatures.ElementExtensions && + document.createElement('div').__proto__) { + window.HTMLElement = { }; + window.HTMLElement.prototype = document.createElement('div').__proto__; + Prototype.BrowserFeatures.ElementExtensions = true; +} + +Element.extend = (function() { + if (Prototype.BrowserFeatures.SpecificElementExtensions) + return Prototype.K; + + var Methods = { }, ByTag = Element.Methods.ByTag; + + var extend = Object.extend(function(element) { + if (!element || element._extendedByPrototype || + element.nodeType != 1 || element == window) return element; + + var methods = Object.clone(Methods), + tagName = element.tagName, property, value; + + // extend methods for specific tags + if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); + + for (property in methods) { + value = methods[property]; + if (Object.isFunction(value) && !(property in element)) + element[property] = value.methodize(); + } + + element._extendedByPrototype = Prototype.emptyFunction; + return element; + + }, { + refresh: function() { + // extend methods for all tags (Safari doesn't need this) + if (!Prototype.BrowserFeatures.ElementExtensions) { + Object.extend(Methods, Element.Methods); + Object.extend(Methods, Element.Methods.Simulated); + } + } + }); + + extend.refresh(); + return extend; +})(); + +Element.hasAttribute = function(element, attribute) { + if (element.hasAttribute) return element.hasAttribute(attribute); + return Element.Methods.Simulated.hasAttribute(element, attribute); +}; + +Element.addMethods = function(methods) { + var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; + + if (!methods) { + Object.extend(Form, Form.Methods); + Object.extend(Form.Element, Form.Element.Methods); + Object.extend(Element.Methods.ByTag, { + "FORM": Object.clone(Form.Methods), + "INPUT": Object.clone(Form.Element.Methods), + "SELECT": Object.clone(Form.Element.Methods), + "TEXTAREA": Object.clone(Form.Element.Methods) + }); + } + + if (arguments.length == 2) { + var tagName = methods; + methods = arguments[1]; + } + + if (!tagName) Object.extend(Element.Methods, methods || { }); + else { + if (Object.isArray(tagName)) tagName.each(extend); + else extend(tagName); + } + + function extend(tagName) { + tagName = tagName.toUpperCase(); + if (!Element.Methods.ByTag[tagName]) + Element.Methods.ByTag[tagName] = { }; + Object.extend(Element.Methods.ByTag[tagName], methods); + } + + function copy(methods, destination, onlyIfAbsent) { + onlyIfAbsent = onlyIfAbsent || false; + for (var property in methods) { + var value = methods[property]; + if (!Object.isFunction(value)) continue; + if (!onlyIfAbsent || !(property in destination)) + destination[property] = value.methodize(); + } + } + + function findDOMClass(tagName) { + var klass; + var trans = { + "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", + "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", + "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", + "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", + "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": + "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": + "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": + "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": + "FrameSet", "IFRAME": "IFrame" + }; + if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; + if (window[klass]) return window[klass]; + klass = 'HTML' + tagName + 'Element'; + if (window[klass]) return window[klass]; + klass = 'HTML' + tagName.capitalize() + 'Element'; + if (window[klass]) return window[klass]; + + window[klass] = { }; + window[klass].prototype = document.createElement(tagName).__proto__; + return window[klass]; + } + + if (F.ElementExtensions) { + copy(Element.Methods, HTMLElement.prototype); + copy(Element.Methods.Simulated, HTMLElement.prototype, true); + } + + if (F.SpecificElementExtensions) { + for (var tag in Element.Methods.ByTag) { + var klass = findDOMClass(tag); + if (Object.isUndefined(klass)) continue; + copy(T[tag], klass.prototype); + } + } + + Object.extend(Element, Element.Methods); + delete Element.ByTag; + + if (Element.extend.refresh) Element.extend.refresh(); + Element.cache = { }; +}; + +document.viewport = { + getDimensions: function() { + var dimensions = { }; + var B = Prototype.Browser; + $w('width height').each(function(d) { + var D = d.capitalize(); + dimensions[d] = (B.WebKit && !document.evaluate) ? self['inner' + D] : + (B.Opera) ? document.body['client' + D] : document.documentElement['client' + D]; + }); + return dimensions; + }, + + getWidth: function() { + return this.getDimensions().width; + }, + + getHeight: function() { + return this.getDimensions().height; + }, + + getScrollOffsets: function() { + return Element._returnOffset( + window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, + window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); + } +}; +/* Portions of the Selector class are derived from Jack Slocum’s DomQuery, + * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style + * license. Please see http://www.yui-ext.com/ for more information. */ + +var Selector = Class.create({ + initialize: function(expression) { + this.expression = expression.strip(); + this.compileMatcher(); + }, + + shouldUseXPath: function() { + if (!Prototype.BrowserFeatures.XPath) return false; + + var e = this.expression; + + // Safari 3 chokes on :*-of-type and :empty + if (Prototype.Browser.WebKit && + (e.include("-of-type") || e.include(":empty"))) + return false; + + // XPath can't do namespaced attributes, nor can it read + // the "checked" property from DOM nodes + if ((/(\[[\w-]*?:|:checked)/).test(this.expression)) + return false; + + return true; + }, + + compileMatcher: function() { + if (this.shouldUseXPath()) + return this.compileXPathMatcher(); + + var e = this.expression, ps = Selector.patterns, h = Selector.handlers, + c = Selector.criteria, le, p, m; + + if (Selector._cache[e]) { + this.matcher = Selector._cache[e]; + return; + } + + this.matcher = ["this.matcher = function(root) {", + "var r = root, h = Selector.handlers, c = false, n;"]; + + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i in ps) { + p = ps[i]; + if (m = e.match(p)) { + this.matcher.push(Object.isFunction(c[i]) ? c[i](m) : + new Template(c[i]).evaluate(m)); + e = e.replace(m[0], ''); + break; + } + } + } + + this.matcher.push("return h.unique(n);\n}"); + eval(this.matcher.join('\n')); + Selector._cache[this.expression] = this.matcher; + }, + + compileXPathMatcher: function() { + var e = this.expression, ps = Selector.patterns, + x = Selector.xpath, le, m; + + if (Selector._cache[e]) { + this.xpath = Selector._cache[e]; return; + } + + this.matcher = ['.//*']; + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i in ps) { + if (m = e.match(ps[i])) { + this.matcher.push(Object.isFunction(x[i]) ? x[i](m) : + new Template(x[i]).evaluate(m)); + e = e.replace(m[0], ''); + break; + } + } + } + + this.xpath = this.matcher.join(''); + Selector._cache[this.expression] = this.xpath; + }, + + findElements: function(root) { + root = root || document; + if (this.xpath) return document._getElementsByXPath(this.xpath, root); + return this.matcher(root); + }, + + match: function(element) { + this.tokens = []; + + var e = this.expression, ps = Selector.patterns, as = Selector.assertions; + var le, p, m; + + while (e && le !== e && (/\S/).test(e)) { + le = e; + for (var i in ps) { + p = ps[i]; + if (m = e.match(p)) { + // use the Selector.assertions methods unless the selector + // is too complex. + if (as[i]) { + this.tokens.push([i, Object.clone(m)]); + e = e.replace(m[0], ''); + } else { + // reluctantly do a document-wide search + // and look for a match in the array + return this.findElements(document).include(element); + } + } + } + } + + var match = true, name, matches; + for (var i = 0, token; token = this.tokens[i]; i++) { + name = token[0], matches = token[1]; + if (!Selector.assertions[name](element, matches)) { + match = false; break; + } + } + + return match; + }, + + toString: function() { + return this.expression; + }, + + inspect: function() { + return "#"; + } +}); + +Object.extend(Selector, { + _cache: { }, + + xpath: { + descendant: "//*", + child: "/*", + adjacent: "/following-sibling::*[1]", + laterSibling: '/following-sibling::*', + tagName: function(m) { + if (m[1] == '*') return ''; + return "[local-name()='" + m[1].toLowerCase() + + "' or local-name()='" + m[1].toUpperCase() + "']"; + }, + className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", + id: "[@id='#{1}']", + attrPresence: function(m) { + m[1] = m[1].toLowerCase(); + return new Template("[@#{1}]").evaluate(m); + }, + attr: function(m) { + m[1] = m[1].toLowerCase(); + m[3] = m[5] || m[6]; + return new Template(Selector.xpath.operators[m[2]]).evaluate(m); + }, + pseudo: function(m) { + var h = Selector.xpath.pseudos[m[1]]; + if (!h) return ''; + if (Object.isFunction(h)) return h(m); + return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); + }, + operators: { + '=': "[@#{1}='#{3}']", + '!=': "[@#{1}!='#{3}']", + '^=': "[starts-with(@#{1}, '#{3}')]", + '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", + '*=': "[contains(@#{1}, '#{3}')]", + '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", + '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" + }, + pseudos: { + 'first-child': '[not(preceding-sibling::*)]', + 'last-child': '[not(following-sibling::*)]', + 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', + 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]", + 'checked': "[@checked]", + 'disabled': "[@disabled]", + 'enabled': "[not(@disabled)]", + 'not': function(m) { + var e = m[6], p = Selector.patterns, + x = Selector.xpath, le, v; + + var exclusion = []; + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i in p) { + if (m = e.match(p[i])) { + v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m); + exclusion.push("(" + v.substring(1, v.length - 1) + ")"); + e = e.replace(m[0], ''); + break; + } + } + } + return "[not(" + exclusion.join(" and ") + ")]"; + }, + 'nth-child': function(m) { + return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m); + }, + 'nth-last-child': function(m) { + return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m); + }, + 'nth-of-type': function(m) { + return Selector.xpath.pseudos.nth("position() ", m); + }, + 'nth-last-of-type': function(m) { + return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m); + }, + 'first-of-type': function(m) { + m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m); + }, + 'last-of-type': function(m) { + m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m); + }, + 'only-of-type': function(m) { + var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m); + }, + nth: function(fragment, m) { + var mm, formula = m[6], predicate; + if (formula == 'even') formula = '2n+0'; + if (formula == 'odd') formula = '2n+1'; + if (mm = formula.match(/^(\d+)$/)) // digit only + return '[' + fragment + "= " + mm[1] + ']'; + if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b + if (mm[1] == "-") mm[1] = -1; + var a = mm[1] ? Number(mm[1]) : 1; + var b = mm[2] ? Number(mm[2]) : 0; + predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " + + "((#{fragment} - #{b}) div #{a} >= 0)]"; + return new Template(predicate).evaluate({ + fragment: fragment, a: a, b: b }); + } + } + } + }, + + criteria: { + tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', + className: 'n = h.className(n, r, "#{1}", c); c = false;', + id: 'n = h.id(n, r, "#{1}", c); c = false;', + attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', + attr: function(m) { + m[3] = (m[5] || m[6]); + return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); + }, + pseudo: function(m) { + if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); + return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); + }, + descendant: 'c = "descendant";', + child: 'c = "child";', + adjacent: 'c = "adjacent";', + laterSibling: 'c = "laterSibling";' + }, + + patterns: { + // combinators must be listed first + // (and descendant needs to be last combinator) + laterSibling: /^\s*~\s*/, + child: /^\s*>\s*/, + adjacent: /^\s*\+\s*/, + descendant: /^\s/, + + // selectors follow + tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, + id: /^#([\w\-\*]+)(\b|$)/, + className: /^\.([\w\-\*]+)(\b|$)/, + pseudo: +/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/, + attrPresence: /^\[([\w]+)\]/, + attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ + }, + + // for Selector.match and Element#match + assertions: { + tagName: function(element, matches) { + return matches[1].toUpperCase() == element.tagName.toUpperCase(); + }, + + className: function(element, matches) { + return Element.hasClassName(element, matches[1]); + }, + + id: function(element, matches) { + return element.id === matches[1]; + }, + + attrPresence: function(element, matches) { + return Element.hasAttribute(element, matches[1]); + }, + + attr: function(element, matches) { + var nodeValue = Element.readAttribute(element, matches[1]); + return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); + } + }, + + handlers: { + // UTILITY FUNCTIONS + // joins two collections + concat: function(a, b) { + for (var i = 0, node; node = b[i]; i++) + a.push(node); + return a; + }, + + // marks an array of nodes for counting + mark: function(nodes) { + var _true = Prototype.emptyFunction; + for (var i = 0, node; node = nodes[i]; i++) + node._countedByPrototype = _true; + return nodes; + }, + + unmark: function(nodes) { + for (var i = 0, node; node = nodes[i]; i++) + node._countedByPrototype = undefined; + return nodes; + }, + + // mark each child node with its position (for nth calls) + // "ofType" flag indicates whether we're indexing for nth-of-type + // rather than nth-child + index: function(parentNode, reverse, ofType) { + parentNode._countedByPrototype = Prototype.emptyFunction; + if (reverse) { + for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { + var node = nodes[i]; + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; + } + } else { + for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; + } + }, + + // filters out duplicates and extends all nodes + unique: function(nodes) { + if (nodes.length == 0) return nodes; + var results = [], n; + for (var i = 0, l = nodes.length; i < l; i++) + if (!(n = nodes[i])._countedByPrototype) { + n._countedByPrototype = Prototype.emptyFunction; + results.push(Element.extend(n)); + } + return Selector.handlers.unmark(results); + }, + + // COMBINATOR FUNCTIONS + descendant: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + h.concat(results, node.getElementsByTagName('*')); + return results; + }, + + child: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) { + for (var j = 0, child; child = node.childNodes[j]; j++) + if (child.nodeType == 1 && child.tagName != '!') results.push(child); + } + return results; + }, + + adjacent: function(nodes) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + var next = this.nextElementSibling(node); + if (next) results.push(next); + } + return results; + }, + + laterSibling: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + h.concat(results, Element.nextSiblings(node)); + return results; + }, + + nextElementSibling: function(node) { + while (node = node.nextSibling) + if (node.nodeType == 1) return node; + return null; + }, + + previousElementSibling: function(node) { + while (node = node.previousSibling) + if (node.nodeType == 1) return node; + return null; + }, + + // TOKEN FUNCTIONS + tagName: function(nodes, root, tagName, combinator) { + var uTagName = tagName.toUpperCase(); + var results = [], h = Selector.handlers; + if (nodes) { + if (combinator) { + // fastlane for ordinary descendant combinators + if (combinator == "descendant") { + for (var i = 0, node; node = nodes[i]; i++) + h.concat(results, node.getElementsByTagName(tagName)); + return results; + } else nodes = this[combinator](nodes); + if (tagName == "*") return nodes; + } + for (var i = 0, node; node = nodes[i]; i++) + if (node.tagName.toUpperCase() === uTagName) results.push(node); + return results; + } else return root.getElementsByTagName(tagName); + }, + + id: function(nodes, root, id, combinator) { + var targetNode = $(id), h = Selector.handlers; + if (!targetNode) return []; + if (!nodes && root == document) return [targetNode]; + if (nodes) { + if (combinator) { + if (combinator == 'child') { + for (var i = 0, node; node = nodes[i]; i++) + if (targetNode.parentNode == node) return [targetNode]; + } else if (combinator == 'descendant') { + for (var i = 0, node; node = nodes[i]; i++) + if (Element.descendantOf(targetNode, node)) return [targetNode]; + } else if (combinator == 'adjacent') { + for (var i = 0, node; node = nodes[i]; i++) + if (Selector.handlers.previousElementSibling(targetNode) == node) + return [targetNode]; + } else nodes = h[combinator](nodes); + } + for (var i = 0, node; node = nodes[i]; i++) + if (node == targetNode) return [targetNode]; + return []; + } + return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; + }, + + className: function(nodes, root, className, combinator) { + if (nodes && combinator) nodes = this[combinator](nodes); + return Selector.handlers.byClassName(nodes, root, className); + }, + + byClassName: function(nodes, root, className) { + if (!nodes) nodes = Selector.handlers.descendant([root]); + var needle = ' ' + className + ' '; + for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { + nodeClassName = node.className; + if (nodeClassName.length == 0) continue; + if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) + results.push(node); + } + return results; + }, + + attrPresence: function(nodes, root, attr, combinator) { + if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); + var results = []; + for (var i = 0, node; node = nodes[i]; i++) + if (Element.hasAttribute(node, attr)) results.push(node); + return results; + }, + + attr: function(nodes, root, attr, value, operator, combinator) { + if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); + var handler = Selector.operators[operator], results = []; + for (var i = 0, node; node = nodes[i]; i++) { + var nodeValue = Element.readAttribute(node, attr); + if (nodeValue === null) continue; + if (handler(nodeValue, value)) results.push(node); + } + return results; + }, + + pseudo: function(nodes, name, value, root, combinator) { + if (nodes && combinator) nodes = this[combinator](nodes); + if (!nodes) nodes = root.getElementsByTagName("*"); + return Selector.pseudos[name](nodes, value, root); + } + }, + + pseudos: { + 'first-child': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + if (Selector.handlers.previousElementSibling(node)) continue; + results.push(node); + } + return results; + }, + 'last-child': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + if (Selector.handlers.nextElementSibling(node)) continue; + results.push(node); + } + return results; + }, + 'only-child': function(nodes, value, root) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) + results.push(node); + return results; + }, + 'nth-child': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root); + }, + 'nth-last-child': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, true); + }, + 'nth-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, false, true); + }, + 'nth-last-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, true, true); + }, + 'first-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, "1", root, false, true); + }, + 'last-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, "1", root, true, true); + }, + 'only-of-type': function(nodes, formula, root) { + var p = Selector.pseudos; + return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); + }, + + // handles the an+b logic + getIndices: function(a, b, total) { + if (a == 0) return b > 0 ? [b] : []; + return $R(1, total).inject([], function(memo, i) { + if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); + return memo; + }); + }, + + // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type + nth: function(nodes, formula, root, reverse, ofType) { + if (nodes.length == 0) return []; + if (formula == 'even') formula = '2n+0'; + if (formula == 'odd') formula = '2n+1'; + var h = Selector.handlers, results = [], indexed = [], m; + h.mark(nodes); + for (var i = 0, node; node = nodes[i]; i++) { + if (!node.parentNode._countedByPrototype) { + h.index(node.parentNode, reverse, ofType); + indexed.push(node.parentNode); + } + } + if (formula.match(/^\d+$/)) { // just a number + formula = Number(formula); + for (var i = 0, node; node = nodes[i]; i++) + if (node.nodeIndex == formula) results.push(node); + } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b + if (m[1] == "-") m[1] = -1; + var a = m[1] ? Number(m[1]) : 1; + var b = m[2] ? Number(m[2]) : 0; + var indices = Selector.pseudos.getIndices(a, b, nodes.length); + for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { + for (var j = 0; j < l; j++) + if (node.nodeIndex == indices[j]) results.push(node); + } + } + h.unmark(nodes); + h.unmark(indexed); + return results; + }, + + 'empty': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + // IE treats comments as element nodes + if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue; + results.push(node); + } + return results; + }, + + 'not': function(nodes, selector, root) { + var h = Selector.handlers, selectorType, m; + var exclusions = new Selector(selector).findElements(root); + h.mark(exclusions); + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!node._countedByPrototype) results.push(node); + h.unmark(exclusions); + return results; + }, + + 'enabled': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!node.disabled) results.push(node); + return results; + }, + + 'disabled': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (node.disabled) results.push(node); + return results; + }, + + 'checked': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (node.checked) results.push(node); + return results; + } + }, + + operators: { + '=': function(nv, v) { return nv == v; }, + '!=': function(nv, v) { return nv != v; }, + '^=': function(nv, v) { return nv.startsWith(v); }, + '$=': function(nv, v) { return nv.endsWith(v); }, + '*=': function(nv, v) { return nv.include(v); }, + '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, + '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); } + }, + + split: function(expression) { + var expressions = []; + expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { + expressions.push(m[1].strip()); + }); + return expressions; + }, + + matchElements: function(elements, expression) { + var matches = $$(expression), h = Selector.handlers; + h.mark(matches); + for (var i = 0, results = [], element; element = elements[i]; i++) + if (element._countedByPrototype) results.push(element); + h.unmark(matches); + return results; + }, + + findElement: function(elements, expression, index) { + if (Object.isNumber(expression)) { + index = expression; expression = false; + } + return Selector.matchElements(elements, expression || '*')[index || 0]; + }, + + findChildElements: function(element, expressions) { + expressions = Selector.split(expressions.join(',')); + var results = [], h = Selector.handlers; + for (var i = 0, l = expressions.length, selector; i < l; i++) { + selector = new Selector(expressions[i].strip()); + h.concat(results, selector.findElements(element)); + } + return (l > 1) ? h.unique(results) : results; + } +}); + +if (Prototype.Browser.IE) { + Object.extend(Selector.handlers, { + // IE returns comment nodes on getElementsByTagName("*"). + // Filter them out. + concat: function(a, b) { + for (var i = 0, node; node = b[i]; i++) + if (node.tagName !== "!") a.push(node); + return a; + }, + + // IE improperly serializes _countedByPrototype in (inner|outer)HTML. + unmark: function(nodes) { + for (var i = 0, node; node = nodes[i]; i++) + node.removeAttribute('_countedByPrototype'); + return nodes; + } + }); +} + +function $$() { + return Selector.findChildElements(document, $A(arguments)); +} +var Form = { + reset: function(form) { + $(form).reset(); + return form; + }, + + serializeElements: function(elements, options) { + if (typeof options != 'object') options = { hash: !!options }; + else if (Object.isUndefined(options.hash)) options.hash = true; + var key, value, submitted = false, submit = options.submit; + + var data = elements.inject({ }, function(result, element) { + if (!element.disabled && element.name) { + key = element.name; value = $(element).getValue(); + if (value != null && (element.type != 'submit' || (!submitted && + submit !== false && (!submit || key == submit) && (submitted = true)))) { + if (key in result) { + // a key is already present; construct an array of values + if (!Object.isArray(result[key])) result[key] = [result[key]]; + result[key].push(value); + } + else result[key] = value; + } + } + return result; + }); + + return options.hash ? data : Object.toQueryString(data); + } +}; + +Form.Methods = { + serialize: function(form, options) { + return Form.serializeElements(Form.getElements(form), options); + }, + + getElements: function(form) { + return $A($(form).getElementsByTagName('*')).inject([], + function(elements, child) { + if (Form.Element.Serializers[child.tagName.toLowerCase()]) + elements.push(Element.extend(child)); + return elements; + } + ); + }, + + getInputs: function(form, typeName, name) { + form = $(form); + var inputs = form.getElementsByTagName('input'); + + if (!typeName && !name) return $A(inputs).map(Element.extend); + + for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { + var input = inputs[i]; + if ((typeName && input.type != typeName) || (name && input.name != name)) + continue; + matchingInputs.push(Element.extend(input)); + } + + return matchingInputs; + }, + + disable: function(form) { + form = $(form); + Form.getElements(form).invoke('disable'); + return form; + }, + + enable: function(form) { + form = $(form); + Form.getElements(form).invoke('enable'); + return form; + }, + + findFirstElement: function(form) { + var elements = $(form).getElements().findAll(function(element) { + return 'hidden' != element.type && !element.disabled; + }); + var firstByIndex = elements.findAll(function(element) { + return element.hasAttribute('tabIndex') && element.tabIndex >= 0; + }).sortBy(function(element) { return element.tabIndex }).first(); + + return firstByIndex ? firstByIndex : elements.find(function(element) { + return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); + }); + }, + + focusFirstElement: function(form) { + form = $(form); + form.findFirstElement().activate(); + return form; + }, + + request: function(form, options) { + form = $(form), options = Object.clone(options || { }); + + var params = options.parameters, action = form.readAttribute('action') || ''; + if (action.blank()) action = window.location.href; + options.parameters = form.serialize(true); + + if (params) { + if (Object.isString(params)) params = params.toQueryParams(); + Object.extend(options.parameters, params); + } + + if (form.hasAttribute('method') && !options.method) + options.method = form.method; + + return new Ajax.Request(action, options); + } +}; + +/*--------------------------------------------------------------------------*/ + +Form.Element = { + focus: function(element) { + $(element).focus(); + return element; + }, + + select: function(element) { + $(element).select(); + return element; + } +}; + +Form.Element.Methods = { + serialize: function(element) { + element = $(element); + if (!element.disabled && element.name) { + var value = element.getValue(); + if (value != undefined) { + var pair = { }; + pair[element.name] = value; + return Object.toQueryString(pair); + } + } + return ''; + }, + + getValue: function(element) { + element = $(element); + var method = element.tagName.toLowerCase(); + return Form.Element.Serializers[method](element); + }, + + setValue: function(element, value) { + element = $(element); + var method = element.tagName.toLowerCase(); + Form.Element.Serializers[method](element, value); + return element; + }, + + clear: function(element) { + $(element).value = ''; + return element; + }, + + present: function(element) { + return $(element).value != ''; + }, + + activate: function(element) { + element = $(element); + try { + element.focus(); + if (element.select && (element.tagName.toLowerCase() != 'input' || + !['button', 'reset', 'submit'].include(element.type))) + element.select(); + } catch (e) { } + return element; + }, + + disable: function(element) { + element = $(element); + element.blur(); + element.disabled = true; + return element; + }, + + enable: function(element) { + element = $(element); + element.disabled = false; + return element; + } +}; + +/*--------------------------------------------------------------------------*/ + +var Field = Form.Element; +var $F = Form.Element.Methods.getValue; + +/*--------------------------------------------------------------------------*/ + +Form.Element.Serializers = { + input: function(element, value) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + return Form.Element.Serializers.inputSelector(element, value); + default: + return Form.Element.Serializers.textarea(element, value); + } + }, + + inputSelector: function(element, value) { + if (Object.isUndefined(value)) return element.checked ? element.value : null; + else element.checked = !!value; + }, + + textarea: function(element, value) { + if (Object.isUndefined(value)) return element.value; + else element.value = value; + }, + + select: function(element, index) { + if (Object.isUndefined(index)) + return this[element.type == 'select-one' ? + 'selectOne' : 'selectMany'](element); + else { + var opt, value, single = !Object.isArray(index); + for (var i = 0, length = element.length; i < length; i++) { + opt = element.options[i]; + value = this.optionValue(opt); + if (single) { + if (value == index) { + opt.selected = true; + return; + } + } + else opt.selected = index.include(value); + } + } + }, + + selectOne: function(element) { + var index = element.selectedIndex; + return index >= 0 ? this.optionValue(element.options[index]) : null; + }, + + selectMany: function(element) { + var values, length = element.length; + if (!length) return null; + + for (var i = 0, values = []; i < length; i++) { + var opt = element.options[i]; + if (opt.selected) values.push(this.optionValue(opt)); + } + return values; + }, + + optionValue: function(opt) { + // extend element because hasAttribute may not be native + return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; + } +}; + +/*--------------------------------------------------------------------------*/ + +Abstract.TimedObserver = Class.create(PeriodicalExecuter, { + initialize: function($super, element, frequency, callback) { + $super(callback, frequency); + this.element = $(element); + this.lastValue = this.getValue(); + }, + + execute: function() { + var value = this.getValue(); + if (Object.isString(this.lastValue) && Object.isString(value) ? + this.lastValue != value : String(this.lastValue) != String(value)) { + this.callback(this.element, value); + this.lastValue = value; + } + } +}); + +Form.Element.Observer = Class.create(Abstract.TimedObserver, { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.Observer = Class.create(Abstract.TimedObserver, { + getValue: function() { + return Form.serialize(this.element); + } +}); + +/*--------------------------------------------------------------------------*/ + +Abstract.EventObserver = Class.create({ + initialize: function(element, callback) { + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + if (this.element.tagName.toLowerCase() == 'form') + this.registerFormCallbacks(); + else + this.registerCallback(this.element); + }, + + onElementEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + }, + + registerFormCallbacks: function() { + Form.getElements(this.element).each(this.registerCallback, this); + }, + + registerCallback: function(element) { + if (element.type) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + Event.observe(element, 'click', this.onElementEvent.bind(this)); + break; + default: + Event.observe(element, 'change', this.onElementEvent.bind(this)); + break; + } + } + } +}); + +Form.Element.EventObserver = Class.create(Abstract.EventObserver, { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.EventObserver = Class.create(Abstract.EventObserver, { + getValue: function() { + return Form.serialize(this.element); + } +}); +if (!window.Event) var Event = { }; + +Object.extend(Event, { + KEY_BACKSPACE: 8, + KEY_TAB: 9, + KEY_RETURN: 13, + KEY_ESC: 27, + KEY_LEFT: 37, + KEY_UP: 38, + KEY_RIGHT: 39, + KEY_DOWN: 40, + KEY_DELETE: 46, + KEY_HOME: 36, + KEY_END: 35, + KEY_PAGEUP: 33, + KEY_PAGEDOWN: 34, + KEY_INSERT: 45, + + cache: { }, + + relatedTarget: function(event) { + var element; + switch(event.type) { + case 'mouseover': element = event.fromElement; break; + case 'mouseout': element = event.toElement; break; + default: return null; + } + return Element.extend(element); + } +}); + +Event.Methods = (function() { + var isButton; + + if (Prototype.Browser.IE) { + var buttonMap = { 0: 1, 1: 4, 2: 2 }; + isButton = function(event, code) { + return event.button == buttonMap[code]; + }; + + } else if (Prototype.Browser.WebKit) { + isButton = function(event, code) { + switch (code) { + case 0: return event.which == 1 && !event.metaKey; + case 1: return event.which == 1 && event.metaKey; + default: return false; + } + }; + + } else { + isButton = function(event, code) { + return event.which ? (event.which === code + 1) : (event.button === code); + }; + } + + return { + isLeftClick: function(event) { return isButton(event, 0) }, + isMiddleClick: function(event) { return isButton(event, 1) }, + isRightClick: function(event) { return isButton(event, 2) }, + + element: function(event) { + var node = Event.extend(event).target; + return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node); + }, + + findElement: function(event, expression) { + var element = Event.element(event); + if (!expression) return element; + var elements = [element].concat(element.ancestors()); + return Selector.findElement(elements, expression, 0); + }, + + pointer: function(event) { + return { + x: event.pageX || (event.clientX + + (document.documentElement.scrollLeft || document.body.scrollLeft)), + y: event.pageY || (event.clientY + + (document.documentElement.scrollTop || document.body.scrollTop)) + }; + }, + + pointerX: function(event) { return Event.pointer(event).x }, + pointerY: function(event) { return Event.pointer(event).y }, + + stop: function(event) { + Event.extend(event); + event.preventDefault(); + event.stopPropagation(); + event.stopped = true; + } + }; +})(); + +Event.extend = (function() { + var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { + m[name] = Event.Methods[name].methodize(); + return m; + }); + + if (Prototype.Browser.IE) { + Object.extend(methods, { + stopPropagation: function() { this.cancelBubble = true }, + preventDefault: function() { this.returnValue = false }, + inspect: function() { return "[object Event]" } + }); + + return function(event) { + if (!event) return false; + if (event._extendedByPrototype) return event; + + event._extendedByPrototype = Prototype.emptyFunction; + var pointer = Event.pointer(event); + Object.extend(event, { + target: event.srcElement, + relatedTarget: Event.relatedTarget(event), + pageX: pointer.x, + pageY: pointer.y + }); + return Object.extend(event, methods); + }; + + } else { + Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__; + Object.extend(Event.prototype, methods); + return Prototype.K; + } +})(); + +Object.extend(Event, (function() { + var cache = Event.cache; + + function getEventID(element) { + if (element._prototypeEventID) return element._prototypeEventID[0]; + arguments.callee.id = arguments.callee.id || 1; + return element._prototypeEventID = [++arguments.callee.id]; + } + + function getDOMEventName(eventName) { + if (eventName && eventName.include(':')) return "dataavailable"; + return eventName; + } + + function getCacheForID(id) { + return cache[id] = cache[id] || { }; + } + + function getWrappersForEventName(id, eventName) { + var c = getCacheForID(id); + return c[eventName] = c[eventName] || []; + } + + function createWrapper(element, eventName, handler) { + var id = getEventID(element); + var c = getWrappersForEventName(id, eventName); + if (c.pluck("handler").include(handler)) return false; + + var wrapper = function(event) { + if (!Event || !Event.extend || + (event.eventName && event.eventName != eventName)) + return false; + + Event.extend(event); + handler.call(element, event); + }; + + wrapper.handler = handler; + c.push(wrapper); + return wrapper; + } + + function findWrapper(id, eventName, handler) { + var c = getWrappersForEventName(id, eventName); + return c.find(function(wrapper) { return wrapper.handler == handler }); + } + + function destroyWrapper(id, eventName, handler) { + var c = getCacheForID(id); + if (!c[eventName]) return false; + c[eventName] = c[eventName].without(findWrapper(id, eventName, handler)); + } + + function destroyCache() { + for (var id in cache) + for (var eventName in cache[id]) + cache[id][eventName] = null; + } + + if (window.attachEvent) { + window.attachEvent("onunload", destroyCache); + } + + return { + observe: function(element, eventName, handler) { + element = $(element); + var name = getDOMEventName(eventName); + + var wrapper = createWrapper(element, eventName, handler); + if (!wrapper) return element; + + if (element.addEventListener) { + element.addEventListener(name, wrapper, false); + } else { + element.attachEvent("on" + name, wrapper); + } + + return element; + }, + + stopObserving: function(element, eventName, handler) { + element = $(element); + var id = getEventID(element), name = getDOMEventName(eventName); + + if (!handler && eventName) { + getWrappersForEventName(id, eventName).each(function(wrapper) { + element.stopObserving(eventName, wrapper.handler); + }); + return element; + + } else if (!eventName) { + Object.keys(getCacheForID(id)).each(function(eventName) { + element.stopObserving(eventName); + }); + return element; + } + + var wrapper = findWrapper(id, eventName, handler); + if (!wrapper) return element; + + if (element.removeEventListener) { + element.removeEventListener(name, wrapper, false); + } else { + element.detachEvent("on" + name, wrapper); + } + + destroyWrapper(id, eventName, handler); + + return element; + }, + + fire: function(element, eventName, memo) { + element = $(element); + if (element == document && document.createEvent && !element.dispatchEvent) + element = document.documentElement; + + var event; + if (document.createEvent) { + event = document.createEvent("HTMLEvents"); + event.initEvent("dataavailable", true, true); + } else { + event = document.createEventObject(); + event.eventType = "ondataavailable"; + } + + event.eventName = eventName; + event.memo = memo || { }; + + if (document.createEvent) { + element.dispatchEvent(event); + } else { + element.fireEvent(event.eventType, event); + } + + return Event.extend(event); + } + }; +})()); + +Object.extend(Event, Event.Methods); + +Element.addMethods({ + fire: Event.fire, + observe: Event.observe, + stopObserving: Event.stopObserving +}); + +Object.extend(document, { + fire: Element.Methods.fire.methodize(), + observe: Element.Methods.observe.methodize(), + stopObserving: Element.Methods.stopObserving.methodize(), + loaded: false +}); + +(function() { + /* Support for the DOMContentLoaded event is based on work by Dan Webb, + Matthias Miller, Dean Edwards and John Resig. */ + + var timer; + + function fireContentLoadedEvent() { + if (document.loaded) return; + if (timer) window.clearInterval(timer); + document.fire("dom:loaded"); + document.loaded = true; + } + + if (document.addEventListener) { + if (Prototype.Browser.WebKit) { + timer = window.setInterval(function() { + if (/loaded|complete/.test(document.readyState)) + fireContentLoadedEvent(); + }, 0); + + Event.observe(window, "load", fireContentLoadedEvent); + + } else { + document.addEventListener("DOMContentLoaded", + fireContentLoadedEvent, false); + } + + } else { + document.write(" + + + + + + + + + + + + + + + + + + +
+

 

+

 

+ + + + + +
+
  +
+ + + + + +
   +
+ + + + + + + + + +
+
+
+
+ + + + + + + + + + + +
+ + + + + + + + + + + +
+
=C7=D1=B9=B7=D5=E8
+
+
=E0=C3=D7=E8=CD=A7
+
=CA=B6=D2=B9=B7=D5=E8
  =BB=C3=D1=BA=BB=C3=D8=A7 
+
 
+
+ +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/gif +Content-Transfer-Encoding: base64 +Content-Location: file:///D:/n/secretary/images/topleftcorner.gif + +R0lGODlhEQARANUAAPP6/pXP+b7i+83p/KXW+p7T+dDq/KPV+uXz/eTz/rXe+/v+/5TP+fL5/v7/ +/6jY+snm/L3h+5jQ+aLV+p3T+ZrR+dft/fr9/+j1/cPl/M3o/JfQ+fv9/6PW+uLy/f3+/5jR+ZLO ++b/i+/H5/pnR+f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARABEAAAZJQJKQ +JAlNFAJIacksDUGVTiYBaDaHjIKlcflYmcLAQ8P5WoWUgflLCgiq6+sBEz+L6taNB98kLPhMEYBM +BoNLCIYlI4kOiY6OQQA7 + +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/gif +Content-Transfer-Encoding: base64 +Content-Location: file:///D:/n/secretary/images/spacer.gif + +R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAQAICRAEAOw== + +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/jpeg +Content-Transfer-Encoding: base64 +Content-Location: file:///D:/n/secretary/images/12-9-50/tt3.jpg + +/9j/4AAQSkZJRgABAgEASABIAAD/4QQ5RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA +AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp +AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dz +ADIwMDc6MDk6MTIgMTc6MDc6MzAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACJKADAAQAAAAB +AAAAJQAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA +AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAMDAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG +AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL +CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN +Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM +DAwM/8AAEQgACwCgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH +CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh +EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi +ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE +BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy +gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX +Z3eHl6e3x//aAAwDAQACEQMRAD8A9Ltxw+ptjRL4BPmqb3MrrdY/RrAXO0kw0SdFqV/zbfgPyKpf +HrdpkfRnd8/zdylxnuNGLIBeh1cmvqtLnAOqumwGypvpBpFbSGOa/wDSP/Std/xfq/4Jit0WsvpZ +c1rmNsEtbY3a6Jj3MP0dysH6Lvp/w47qvjR9mpjZHpsj0/ofRb/NT/gv9H/IU0jA7R4T58TGOJJA +SgJJJmitfFUBKAkklorXxVASgJJJaK18VQEoCSSWitfFUBKAkklorXxVASgJJJaK18VQEoCSSWit +fFUBLgyNCOCEkkjVdEi76v8A/9n/7QlWUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAccAgAAAgAC +ADhCSU0EJQAAAAAAEEYM8okmuFbasJwBobCnkHc4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQAC +OEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAA +HjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAA +AAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEA +WgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////// +//////////8D6AAAAAD/////////////////////////////A+gAAAAA//////////////////// +/////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAE4QklN +BAIAAAAAAAYAAAAAAAA4QklNBDAAAAAAAAMBAQEAOEJJTQQtAAAAAAAGAAEAAAAPOEJJTQQIAAAA +AAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA3EAAAAGAAAAAAAA +AAAAAAAlAAACJAAAAB4AZgBpAGwAZQAgDkEOAQ5JDkQOAgAgAHAAaABvAHQAbwBzAGgAbwBwACAA +ZgBvAHIAIAB3AGUAYgAgADIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAiQAAAAl +AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAA +AAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9u +ZwAAAAAAAAAAQnRvbWxvbmcAAAAlAAAAAFJnaHRsb25nAAACJAAAAAZzbGljZXNWbExzAAAAAU9i +amMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAA +AAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBl +ZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAA +BAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAJQAAAABSZ2h0 +bG9uZwAAAiQAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAA +AAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRl +eHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1 +bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0Nv +bG9yVHlwZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25n +AAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmln +aHRPdXRzZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAAAAQAAAAc +OEJJTQQMAAAAAAMfAAAAAQAAAKAAAAALAAAB4AAAFKAAAAMDABgAAf/Y/+AAEEpGSUYAAQIAAEgA +SAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwM +DxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAU +Dg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAAR +CAALAKADASIAAhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQAB +BQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWET +InGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N1 +4/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcH +BgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJE +k1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH +/9oADAMBAAIRAxEAPwD0u3HD6m2NEvgE+apvcyut1j9GsBc7STDRJ0WpX/Nt+A/Iql8et2mR9Gd3 +z/N3KXGe40YsgF6HVya+q0ucA6q6bAbKm+kGkVtIY5r/ANI/9K13/F+r/gmK3Ray+llzWuY2wS1t +jdromPcw/R3Kwfou+n/Djuq+NH2amNkemyPT+h9Fv81P+C/0f8hTSMDtHhPnxMY4kkBKAkkmaK18 +VQEoCSSWitfFUBKAkklorXxVASgJJJaK18VQEoCSSWitfFUBKAkklorXxVASgJJJaK18VQEuDI0I +4ISSSNV0SLvq/wD/2QA4QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABv +AHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTADIAAAABADhC +SU0EBgAAAAAABwAIAQEAAQEA/+E6sGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFj +a2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0 +YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iMy4xLjEtMTExIj4KICAgPHJkZjpS +REYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMj +Ij4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6 +ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xv +clNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9u +PjU0ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lv +bj4zNzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOk5hdGl2ZURpZ2VzdD4z +Njg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2MywzNzUxMCw0MDk2NCwzNjg2 +NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwzNDg1NiwzNzM3NywzNzM3OCwz +NzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4NSwzNzM4NiwzNzM5Niw0MTQ4 +Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0MTQ5NSw0MTcyOCw0MTcyOSw0 +MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5MCw0MTk5MSw0MTk5Miw0MTk5 +Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQs +MTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7NzQwRjBEQkUzM0FCQkFDQTZB +QjVCQzlEMTcwRjRBMkU8L2V4aWY6TmF0aXZlRGlnZXN0PgogICAgICA8L3JkZjpEZXNjcmlwdGlv +bj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6 +dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmll +bnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43 +MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9u +PjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlv +blVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6TmF0aXZlRGlnZXN0 +PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEs +MzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyOzM4QkM0OTZDMzEy +MTExOEEyODJFRERCNTQyRkVCRjEyPC90aWZmOk5hdGl2ZURpZ2VzdD4KICAgICAgPC9yZGY6RGVz +Y3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAg +IHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6 +Q3JlYXRlRGF0ZT4yMDA3LTA5LTEyVDE3OjA3OjMwKzA3OjAwPC94YXA6Q3JlYXRlRGF0ZT4KICAg +ICAgICAgPHhhcDpNb2RpZnlEYXRlPjIwMDctMDktMTJUMTc6MDc6MzArMDc6MDA8L3hhcDpNb2Rp +ZnlEYXRlPgogICAgICAgICA8eGFwOk1ldGFkYXRhRGF0ZT4yMDA3LTA5LTEyVDE3OjA3OjMwKzA3 +OjAwPC94YXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFkb2JlIFBo +b3Rvc2hvcCBDUzIgV2luZG93czwveGFwOkNyZWF0b3JUb29sPgogICAgICA8L3JkZjpEZXNjcmlw +dGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1s +bnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHht +bG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYj +Ij4KICAgICAgICAgPHhhcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4K +ICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+dXVpZDo3MzExRDBCRjE2NjFEQzExQjY1OUI4 +NkU2RDNCRTkzNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50 +SUQ+dXVpZDpBRDFGRjQ3OUNFNjBEQzExQUMwQTk5NDc5NUVENTJDMzwvc3RSZWY6ZG9jdW1lbnRJ +RD4KICAgICAgICAgPC94YXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhhcE1NOkRvY3VtZW50 +SUQ+dXVpZDo1QTFDNUVCNzE3NjFEQzExQkIzMDk4QkVCRTE3QTBBNzwveGFwTU06RG9jdW1lbnRJ +RD4KICAgICAgICAgPHhhcE1NOkluc3RhbmNlSUQ+dXVpZDo1QjFDNUVCNzE3NjFEQzExQkIzMDk4 +QkVCRTE3QTBBNzwveGFwTU06SW5zdGFuY2VJRD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAg +ICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJo +dHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1h +Z2UvanBlZzwvZGM6Zm9ybWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpE +ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRw +Oi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIj4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xv +ck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9m +aWxlPnNSR0IgSUVDNjE5NjYtMi4xPC9waG90b3Nob3A6SUNDUHJvZmlsZT4KICAgICAgICAgPHBo +b3Rvc2hvcDpIaXN0b3J5Lz4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4K +PC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz7/4gxY +SUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG +VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3 +dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAA +ABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD ++AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJD +AAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFu +eQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2 +LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFla +IAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQ +WFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBo +dHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5 +NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5 +NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIu +MQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye +AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8A +AAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABF +AEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA +1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGD +AYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnEC +egKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOu +A7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsF +OgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcH +BxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJ +OglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuw +C8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8O +mw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJ +EegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYV +eBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlr +GZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd +7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKv +It0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo +DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2r +LeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz +8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0 +OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpB +rEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kd +SWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZR +UFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4 +WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi +8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xX +bK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52 +m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEK +gWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yM +Y4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfg +mEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+ak +VqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDq +sWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+ +hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 +zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba ++9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ +6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5 +x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAhQWRvYmUAZEAAAAABAwAQAwIDBgAAAAAAAAAAAAAA +AP/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgIC +AgICAwMDAwMDAwMDAwEBAQEBAQEBAQEBAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD +AwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgAJQIkAwERAAIRAQMRAf/EANcAAQEAAwEBAAMBAAAA +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 +SqKFyy9/196//Svdltb8uP/Z + +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/gif +Content-Transfer-Encoding: base64 +Content-Location: file:///D:/n/secretary/images/5-9-50/arrow00.gif + +R0lGODlhEAAIAKIHAP9CQv/29v/w8P85Of/z8/88PP8AAP///yH/C05FVFNDQVBFMi4wAwEAAAAh ++QQJMgAHACwAAAAAEAAIAAADHXi63CfDgOAcKaaQ2q4ZArcEwBeKniY+UUGtcJMAACH5BAkyAAcA +LAAAAAAQAAgAAAMceLrcLsOA4BwpppDarhkCtwTAF4qeJh5QRq1wAgAh+QQFMgAHACwAAAAAEAAI +AAADG3i63N5iGBBeI8UUYhk2Q7cEACge3yZGWnU2CQAh+QQJMgAHACwAAAEAEAAGAAADIihjEMrh +yHlIMYVYTOjcgwAK3hEARnimJLVlb0c9hbPUZQIAIfkEBTIABwAsAAAAABAACAAAAwt4utz+MMpJ +q70wAQAh+QQFMgAHACwAAAEAEAAGAAADJShjEMputXNIMYVYrG+m2yCE4zVQAWCI6Sq055bJHfcU +EZbjRwIAOw== + +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/gif +Content-Transfer-Encoding: base64 +Content-Location: file:///D:/n/secretary/images/border_c_l.gif + +R0lGODlhCgAKAMQAAOPj4/39/dHR0e/v79PT0/Ly8vDw8OLi4urq6uTk5M3NzdXV1fPz8+Xl5djY +2Onp6ejo6N/f39nZ2fHx8dbW1uHh4fT09NfX1/b29v7+/vr6+v///wAAAAAAAAAAAAAAACH5BAAA +AAAALAAAAAAKAAoAAAU3YEEMW2lu1oIEZ4lJgNZuWuVYczZcidxqAAHEZ8pgIpcGQ8MqGQ+ES+Vh +KGomFYpA0cpoMJZCCAA7 + +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/gif +Content-Transfer-Encoding: base64 +Content-Location: file:///D:/n/secretary/images/border_c_r.gif + +R0lGODlhCgAKAMQAANXV1eHh4e/v7+Li4tbW1uPj4/39/fLy8tHR0eTk5Orq6uXl5c3NzfHx8enp +6djY2Ojo6Pn5+fDw8ODg4NfX19PT09LS0vT09NnZ2fPz8/b29v7+/vr6+v///wAAAAAAACH5BAAA +AAAALAAAAAAKAAoAAAU6YCeOm1Ad42goQJaKXIFpb3c9A/dGCSFsKQ4EUdB1DJzMgjKhdSSOAMEy +0AA7DAQg0OBcO4eMxvsKAQA7 + +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/gif +Content-Transfer-Encoding: base64 +Content-Location: file:///D:/n/secretary/images/bottomleftcorner.gif + +R0lGODlhEQARANUAAPP6/pXP+b7i+83p/KXW+p7T+dDq/KPV+uXz/eTz/rXe+/v+/5TP+fL5/v7/ +/6jY+snm/L3h+5jQ+aLV+p3T+ZrR+dft/fr9/+j1/cPl/M3o/JfQ+fv9/6PW+uLy/f3+/5jR+ZLO ++b/i+/H5/pnR+f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARABEAAAZJwJJw +SCwaj0YHEjlaHhFOoyFajFCJhMVVuPFsSyTRl3TAbEkBAeBKIlEGbPRDw4m2SYyCpXH5IO8gFR0Z +CWtHdyQSIRMKAhBHQQA7 + +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/gif +Content-Transfer-Encoding: base64 +Content-Location: file:///D|/n/secretary/images/border_l.gif + +R0lGODlhCgABAJEAANPT0/Ly8v///wAAACH5BAAAAAAALAAAAAAKAAEAAAIEDCKpUgA7 + +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/gif +Content-Transfer-Encoding: base64 +Content-Location: file:///D|/n/secretary/images/border_r.gif + +R0lGODlhCgABAJEAAPHx8fLy8tPT0////yH5BAAAAAAALAAAAAAKAAEAAAIEnD8gUQA7 + +------=_NextPart_000_0000_01C7F94C.925A2340 +Content-Type: image/gif +Content-Transfer-Encoding: base64 +Content-Location: file:///D|/n/secretary/images/border_b.gif + +R0lGODlhAQAKAJEAAPHx8fLy8s3Nzf///yH5BAAAAAAALAAAAAABAAoAAAIEnD8gUQA7 + +------=_NextPart_000_0000_01C7F94C.925A2340-- -- cgit v1.2.3