ukui-search/libsearch/parser/binary-parser.cpp

5498 lines
218 KiB
C++

#include "binary-parser.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "limits.h"
#include <sys/stat.h>
#include "common.h"
#include <QtCore>
using namespace std;
// 字符匹配算法调用
//#define USE_STDFIND
#define USE_QT_CC
static QDateTime DtFlag1;
struct Properties {
ushort category : 8; /* 5 needed */
ushort line_break_class : 8; /* 6 needed */
ushort direction : 8; /* 5 needed */
ushort combiningClass : 8;
ushort joining : 2;
signed short digitValue : 6; /* 5 needed */
ushort unicodeVersion : 4;
ushort lowerCaseSpecial : 1;
ushort upperCaseSpecial : 1;
ushort titleCaseSpecial : 1;
ushort caseFoldSpecial : 1; /* currently unused */
signed short mirrorDiff : 16;
signed short lowerCaseDiff : 16;
signed short upperCaseDiff : 16;
signed short titleCaseDiff : 16;
signed short caseFoldDiff : 16;
ushort graphemeBreak : 8; /* 4 needed */
ushort wordBreak : 8; /* 4 needed */
ushort sentenceBreak : 8; /* 4 needed */
};
static const unsigned short uc_property_trie[] = {
// 0 - 0x11000
6256, 6288, 6320, 6352, 6384, 6416, 6448, 6480,
6512, 6544, 6576, 6608, 6640, 6672, 6704, 6736,
6768, 6800, 6832, 6864, 6896, 6928, 6960, 6992,
7024, 7056, 7088, 7120, 7152, 7184, 7216, 7248,
7280, 7312, 7344, 6512, 7376, 6512, 7408, 7440,
7472, 7504, 7536, 7568, 7600, 7632, 7664, 7696,
7728, 7760, 7792, 7824, 7856, 7888, 7920, 7952,
7984, 8016, 8048, 8080, 8112, 8144, 8176, 8208,
8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
8272, 8304, 8336, 8368, 8400, 8432, 8464, 8496,
8528, 8560, 8592, 8624, 8656, 8688, 8720, 8752,
8400, 8784, 8816, 8848, 8880, 8912, 8944, 8976,
9008, 9040, 9072, 9104, 9136, 9168, 9200, 9232,
9136, 9264, 9296, 9104, 9328, 9360, 9392, 9424,
9456, 9488, 9520, 9552, 9584, 9616, 9648, 9552,
9680, 9712, 9744, 9776, 9808, 9840, 9872, 9552,
9904, 9936, 9968, 9552, 9552, 10000, 10032, 10064,
10096, 10096, 10128, 10160, 10160, 10192, 10224, 10256,
10288, 10320, 10352, 10320, 10384, 10416, 10448, 10480,
10512, 10320, 10544, 10576, 10608, 10320, 10320, 10640,
10672, 10320, 10320, 10320, 10320, 10320, 10320, 10320,
10320, 10320, 10320, 10320, 10320, 10320, 10320, 10320,
10320, 10320, 10320, 10704, 10736, 10320, 10320, 10768,
10800, 10832, 10864, 10896, 9904, 10928, 10960, 10992,
11024, 10320, 11056, 11088, 10320, 11120, 9552, 9552,
11152, 11184, 11216, 11248, 11280, 11312, 11344, 11376,
11408, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
11440, 11472, 11504, 11536, 9552, 9552, 9552, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
11568, 11600, 11632, 11664, 11696, 11728, 11760, 11792,
6512, 6512, 6512, 6512, 11824, 6512, 6512, 11856,
11888, 11920, 11952, 11984, 12016, 12048, 12080, 12112,
12144, 12176, 12208, 12240, 12272, 12304, 12336, 12368,
12400, 12432, 12464, 12496, 12528, 12560, 12592, 12624,
12656, 12688, 12720, 12752, 12784, 12816, 12848, 12880,
12912, 12944, 12976, 13008, 13040, 13072, 13104, 13136,
13168, 13200, 13232, 13264, 13296, 13328, 13360, 13392,
13168, 13168, 13168, 13168, 13424, 13456, 13488, 13520,
13552, 13168, 13168, 13584, 13616, 13648, 9552, 9552,
13680, 13712, 13744, 13776, 13808, 13840, 13872, 13904,
13936, 13936, 13936, 13936, 13936, 13936, 13936, 13936,
13968, 13968, 13968, 13968, 14000, 14032, 14064, 14096,
13968, 14128, 13968, 14160, 14192, 14224, 14256, 14288,
14320, 14352, 9552, 9552, 9552, 9552, 9552, 9552,
14384, 14416, 14448, 14480, 14512, 14512, 14512, 14544,
14576, 14608, 14640, 14672, 14704, 14736, 14736, 9552,
14768, 9552, 9552, 9552, 14800, 14832, 14832, 14864,
14832, 14832, 14832, 14832, 14832, 14832, 14896, 14928,
14960, 14992, 15024, 15056, 15088, 15120, 15152, 15184,
15216, 15248, 15280, 15280, 15312, 15344, 15376, 15408,
15440, 15472, 15504, 15536, 15472, 15568, 15600, 15632,
15664, 15664, 15664, 15696, 15664, 15664, 15728, 15760,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15792, 15792, 15792,
15792, 15792, 15792, 15792, 15792, 15824, 11376, 11376,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 15856, 15856, 15856, 15856, 15888, 9552, 9552,
15920, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
15952, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
15952, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
15952, 15952, 15952, 15952, 15952, 15952, 15952, 15952,
15952, 15952, 15952, 15952, 15984, 16016, 16048, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
16080, 16112, 9552, 9552, 9552, 9552, 9552, 9552,
16144, 16176, 16208, 16240, 9552, 9552, 9552, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
16304, 16336, 16368, 16400, 16432, 16464, 16272, 16304,
16336, 16368, 16400, 16432, 16464, 16272, 16304, 16336,
16368, 16400, 16432, 16464, 16272, 16304, 16336, 16368,
16400, 16432, 16464, 16272, 16304, 16336, 16368, 16400,
16432, 16464, 16272, 16304, 16336, 16368, 16400, 16432,
16464, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
16272, 16304, 16336, 16368, 16400, 16432, 16464, 16272,
16304, 16336, 16368, 16400, 16432, 16496, 9552, 9552,
16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
16528, 16528, 16528, 16528, 16528, 16528, 16528, 16528,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
16560, 16560, 16560, 16560, 16560, 16560, 16560, 16560,
15856, 15856, 15856, 15856, 15856, 15856, 15856, 15856,
15856, 16592, 16624, 16656, 16688, 16688, 16720, 9552,
16752, 16784, 16816, 16848, 16848, 16880, 16912, 16848,
16848, 16848, 16848, 16848, 16848, 16848, 16848, 16848,
16848, 16944, 16976, 16848, 17008, 16848, 17040, 17072,
17104, 17136, 17168, 17200, 16848, 16848, 16848, 17232,
17264, 17296, 17328, 17360, 17392, 17424, 17456, 17488,
17520, 17552, 17584, 9552, 17616, 17616, 17616, 17648,
17680, 17712, 17744, 17776, 17808, 9552, 9552, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
17840, 17872, 17904, 9552, 17936, 14640, 17968, 9552,
18000, 18032, 18064, 17616, 18096, 18128, 9552, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
9552, 9552, 9552, 9552, 9552, 9552, 9552, 9552,
18160, 18192, 8240, 8240, 8240, 8240, 8240, 8240,
18224, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
18256, 18288, 18320, 8240, 8240, 8240, 8240, 8240,
8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
8240, 8240, 8240, 8240, 8240, 8240, 8240, 8240,
// 0x11000 - 0x110000
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18608, 18608, 18608, 18864, 19120, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
19376, 19632, 19888, 20144, 20400, 20656, 20912, 21168,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21680, 21680,
21680, 21680, 21680, 21680, 21680, 21680, 21936, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
21680, 21680, 22192, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
22448, 22704, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 18352,
18352, 18352, 18352, 18352, 18352, 18352, 18352, 21424,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 23216,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 22960,
22960, 22960, 22960, 22960, 22960, 22960, 22960, 23216,
0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 2, 3, 4, 5, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 6, 6, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 14, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 9,
14, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 39, 40, 41, 42, 43,
42, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 39, 45, 41, 36, 0,
0, 0, 0, 0, 0, 46, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
47, 14, 48, 12, 12, 12, 49, 49,
42, 49, 50, 51, 36, 52, 49, 42,
53, 54, 55, 56, 57, 58, 49, 59,
42, 60, 50, 61, 62, 62, 62, 14,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 36,
38, 38, 38, 38, 38, 38, 38, 63,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 36,
44, 44, 44, 44, 44, 44, 44, 64,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
67, 68, 65, 66, 65, 66, 65, 66,
50, 65, 66, 65, 66, 65, 66, 65,
66, 65, 66, 65, 66, 65, 66, 65,
66, 69, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
70, 65, 66, 65, 66, 65, 66, 71,
72, 73, 65, 66, 65, 66, 74, 65,
66, 75, 75, 65, 66, 50, 76, 77,
78, 65, 66, 75, 79, 80, 81, 82,
65, 66, 83, 50, 81, 84, 85, 86,
65, 66, 65, 66, 65, 66, 87, 65,
66, 87, 50, 50, 65, 66, 87, 65,
66, 88, 88, 65, 66, 65, 66, 89,
65, 66, 50, 90, 65, 66, 50, 91,
90, 90, 90, 90, 92, 93, 94, 92,
93, 94, 92, 93, 94, 65, 66, 65,
66, 65, 66, 65, 66, 65, 66, 65,
66, 65, 66, 65, 66, 95, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
96, 92, 93, 94, 65, 66, 97, 98,
99, 100, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
99, 100, 99, 100, 99, 100, 99, 100,
101, 102, 99, 100, 99, 100, 99, 100,
99, 100, 99, 100, 99, 100, 99, 100,
99, 100, 99, 100, 102, 102, 102, 103,
103, 103, 104, 105, 106, 107, 108, 103,
103, 105, 109, 110, 111, 112, 113, 109,
113, 109, 113, 109, 113, 109, 113, 109,
50, 50, 50, 114, 115, 50, 116, 116,
50, 117, 50, 118, 50, 50, 50, 50,
116, 50, 50, 119, 50, 50, 50, 50,
120, 121, 50, 122, 50, 50, 50, 121,
50, 50, 123, 50, 50, 124, 50, 50,
50, 50, 50, 50, 50, 125, 50, 50,
126, 50, 50, 126, 50, 50, 50, 50,
126, 127, 128, 128, 129, 50, 50, 50,
50, 50, 130, 50, 90, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50,
50, 131, 131, 131, 131, 131, 102, 102,
132, 132, 132, 132, 132, 132, 132, 132,
132, 133, 133, 134, 134, 134, 134, 134,
132, 132, 42, 42, 42, 42, 133, 133,
135, 133, 133, 133, 135, 133, 133, 133,
134, 134, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 136,
132, 132, 132, 132, 132, 42, 42, 42,
42, 42, 136, 136, 136, 136, 137, 138,
138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138,
139, 139, 139, 139, 139, 139, 139, 139,
139, 139, 139, 139, 139, 139, 139, 139,
139, 139, 139, 139, 139, 140, 141, 141,
141, 141, 140, 142, 141, 141, 141, 141,
141, 143, 143, 141, 141, 141, 141, 143,
143, 141, 141, 141, 141, 141, 141, 141,
141, 141, 141, 141, 144, 144, 144, 144,
144, 141, 141, 141, 141, 139, 139, 139,
139, 139, 139, 139, 139, 145, 146, 147,
147, 147, 146, 146, 146, 147, 147, 148,
149, 149, 149, 150, 150, 150, 150, 149,
151, 152, 152, 153, 154, 155, 155, 156,
157, 157, 158, 159, 159, 159, 159, 159,
159, 159, 159, 159, 159, 159, 159, 159,
160, 160, 160, 160, 42, 42, 160, 160,
160, 160, 132, 161, 161, 161, 34, 160,
160, 160, 160, 160, 42, 42, 162, 14,
163, 163, 163, 160, 164, 160, 165, 165,
166, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 160, 38, 38, 38, 38, 38,
38, 38, 38, 38, 167, 168, 168, 168,
169, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 170, 44, 44, 44, 44, 44,
44, 44, 44, 44, 171, 172, 172, 160,
173, 174, 175, 175, 175, 176, 177, 131,
178, 179, 65, 100, 65, 100, 65, 100,
65, 100, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
180, 181, 182, 50, 183, 184, 185, 186,
187, 188, 186, 187, 103, 189, 189, 189,
190, 191, 191, 191, 191, 191, 191, 191,
191, 191, 191, 191, 191, 190, 191, 191,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
192, 193, 193, 193, 193, 193, 193, 193,
193, 193, 193, 193, 193, 192, 193, 193,
65, 66, 194, 139, 139, 139, 139, 160,
195, 195, 178, 179, 99, 100, 99, 100,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
196, 65, 66, 65, 66, 178, 179, 65,
66, 178, 179, 65, 66, 178, 179, 197,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 99, 100, 65, 66,
65, 66, 65, 66, 65, 66, 105, 106,
65, 66, 113, 109, 113, 109, 113, 109,
178, 179, 178, 179, 178, 179, 178, 179,
178, 179, 178, 179, 178, 179, 178, 179,
113, 109, 113, 109, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 198, 198, 198, 198, 198, 198, 198,
198, 198, 198, 198, 198, 198, 198, 198,
198, 198, 198, 198, 198, 198, 198, 198,
198, 198, 198, 198, 198, 198, 198, 198,
198, 198, 198, 198, 198, 198, 198, 160,
160, 134, 199, 199, 200, 199, 200, 199,
160, 201, 201, 201, 201, 201, 201, 201,
201, 201, 201, 201, 201, 201, 201, 201,
201, 201, 201, 201, 201, 201, 201, 201,
201, 201, 201, 201, 201, 201, 201, 201,
201, 201, 201, 201, 201, 201, 201, 202,
160, 203, 204, 160, 160, 160, 160, 160,
205, 206, 207, 207, 207, 207, 206, 207,
207, 207, 208, 206, 207, 207, 207, 207,
207, 207, 152, 206, 206, 206, 206, 206,
207, 207, 206, 207, 207, 208, 209, 207,
210, 211, 212, 213, 214, 215, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225,
226, 227, 228, 226, 207, 152, 229, 230,
205, 205, 205, 205, 205, 205, 205, 205,
231, 231, 231, 231, 231, 231, 231, 231,
231, 231, 231, 231, 231, 231, 231, 231,
231, 231, 231, 231, 231, 231, 231, 231,
231, 231, 231, 205, 205, 205, 205, 205,
231, 231, 231, 232, 233, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205,
234, 234, 234, 234, 235, 235, 235, 235,
235, 235, 235, 236, 237, 238, 239, 239,
149, 149, 149, 149, 149, 149, 235, 235,
235, 235, 235, 240, 235, 235, 241, 242,
235, 243, 244, 244, 244, 244, 245, 244,
245, 244, 245, 245, 245, 245, 245, 244,
244, 244, 244, 245, 245, 245, 245, 245,
245, 245, 245, 235, 235, 235, 235, 235,
246, 245, 245, 245, 245, 245, 245, 245,
244, 245, 245, 247, 248, 249, 250, 251,
252, 253, 254, 146, 146, 147, 150, 149,
149, 153, 153, 153, 152, 153, 153, 235,
255, 256, 257, 258, 259, 260, 261, 262,
263, 264, 265, 266, 266, 267, 268, 268,
269, 244, 244, 244, 243, 244, 244, 244,
245, 245, 245, 245, 245, 245, 245, 245,
245, 245, 245, 245, 245, 245, 245, 245,
244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 244, 244, 244, 244, 244, 244,
244, 244, 245, 245, 245, 245, 245, 245,
245, 245, 245, 245, 245, 245, 245, 245,
245, 245, 245, 245, 245, 245, 245, 245,
245, 245, 245, 245, 245, 245, 245, 245,
270, 270, 245, 245, 245, 245, 245, 270,
244, 245, 245, 244, 244, 244, 244, 244,
244, 244, 244, 244, 245, 244, 245, 271,
245, 245, 244, 244, 242, 244, 139, 139,
139, 139, 139, 139, 139, 272, 273, 139,
139, 139, 139, 141, 139, 274, 274, 139,
139, 49, 141, 139, 139, 141, 275, 275,
23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 270, 270, 270, 276, 276, 277,
278, 278, 278, 279, 279, 279, 279, 279,
279, 279, 279, 279, 279, 279, 235, 280,
271, 281, 270, 270, 270, 271, 271, 271,
271, 271, 270, 270, 270, 270, 271, 270,
270, 270, 270, 270, 270, 270, 270, 270,
271, 270, 271, 270, 271, 277, 277, 275,
146, 147, 146, 146, 147, 146, 146, 147,
147, 147, 146, 147, 147, 146, 147, 146,
146, 146, 147, 146, 147, 146, 147, 146,
147, 146, 146, 235, 235, 275, 277, 277,
282, 282, 282, 282, 282, 282, 282, 282,
282, 283, 283, 283, 282, 282, 282, 282,
282, 282, 282, 282, 282, 282, 282, 282,
282, 282, 282, 283, 283, 282, 235, 235,
235, 235, 235, 235, 235, 235, 235, 235,
235, 235, 235, 235, 235, 235, 235, 235,
284, 284, 284, 284, 284, 284, 284, 284,
284, 284, 284, 284, 284, 284, 284, 284,
284, 284, 284, 284, 284, 284, 284, 284,
284, 284, 284, 284, 284, 284, 284, 284,
284, 284, 284, 284, 284, 284, 285, 285,
285, 285, 285, 285, 285, 285, 285, 285,
285, 286, 235, 235, 235, 235, 235, 235,
235, 235, 235, 235, 235, 235, 235, 235,
287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 297, 297, 297, 297, 297,
297, 297, 297, 297, 297, 297, 297, 297,
297, 297, 297, 297, 297, 297, 297, 297,
297, 297, 297, 297, 297, 297, 297, 297,
297, 297, 297, 298, 298, 298, 298, 298,
298, 298, 299, 298, 300, 300, 301, 302,
303, 304, 305, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205,
160, 306, 306, 307, 308, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 160, 160, 309, 90, 307, 307,
307, 306, 306, 306, 306, 306, 306, 306,
306, 307, 307, 307, 307, 310, 160, 160,
90, 139, 141, 139, 139, 160, 160, 160,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 306, 306, 311, 311, 312, 313,
314, 315, 316, 317, 318, 319, 320, 321,
199, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 322, 322, 323, 322, 322,
160, 306, 307, 307, 160, 90, 90, 90,
90, 90, 90, 90, 90, 160, 160, 90,
90, 160, 160, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 90, 90, 90, 90,
90, 160, 90, 160, 160, 160, 90, 90,
90, 90, 160, 160, 309, 308, 324, 307,
307, 306, 306, 306, 306, 160, 160, 307,
307, 160, 160, 307, 307, 310, 323, 160,
160, 160, 160, 160, 160, 160, 160, 324,
160, 160, 160, 160, 90, 90, 160, 90,
90, 90, 306, 306, 160, 160, 312, 313,
314, 315, 316, 317, 318, 319, 320, 321,
90, 90, 12, 12, 325, 325, 325, 325,
325, 325, 194, 160, 160, 160, 160, 160,
160, 326, 306, 327, 160, 90, 90, 90,
90, 90, 90, 160, 160, 160, 160, 90,
90, 160, 160, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 160, 90, 90, 160,
90, 90, 160, 160, 309, 160, 307, 307,
307, 306, 306, 160, 160, 160, 160, 306,
306, 160, 160, 306, 306, 310, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 90, 90, 90, 90, 160, 90, 160,
160, 160, 160, 160, 160, 160, 312, 313,
314, 315, 316, 317, 318, 319, 320, 321,
306, 306, 90, 90, 90, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 306, 306, 307, 160, 90, 90, 90,
90, 90, 90, 90, 308, 90, 160, 90,
90, 90, 160, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 160, 90, 90, 90,
90, 90, 160, 160, 309, 90, 307, 307,
307, 306, 306, 306, 306, 306, 160, 306,
306, 307, 160, 307, 307, 310, 160, 160,
90, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
90, 308, 326, 326, 160, 160, 312, 313,
314, 315, 316, 317, 318, 319, 320, 321,
160, 328, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
90, 90, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 160, 308, 90, 90,
90, 90, 160, 160, 309, 90, 324, 306,
307, 306, 306, 306, 160, 160, 160, 307,
307, 160, 160, 307, 307, 310, 160, 160,
160, 160, 160, 160, 160, 160, 306, 324,
160, 160, 160, 160, 90, 90, 160, 90,
90, 90, 160, 160, 160, 160, 312, 313,
314, 315, 316, 317, 318, 319, 320, 321,
194, 308, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 306, 90, 160, 90, 90, 90,
90, 90, 90, 160, 160, 160, 90, 90,
90, 160, 90, 90, 90, 90, 160, 160,
160, 90, 90, 160, 90, 160, 90, 90,
160, 160, 160, 90, 90, 160, 160, 160,
90, 90, 90, 160, 160, 160, 90, 90,
90, 90, 90, 90, 90, 90, 323, 90,
90, 90, 160, 160, 160, 160, 324, 307,
306, 307, 307, 160, 160, 160, 307, 307,
307, 160, 307, 307, 307, 310, 160, 160,
160, 160, 160, 160, 160, 160, 160, 324,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 329, 313,
314, 315, 316, 317, 318, 319, 320, 321,
325, 325, 325, 239, 239, 239, 239, 239,
239, 328, 239, 160, 160, 160, 160, 160,
160, 307, 307, 307, 160, 90, 90, 90,
90, 90, 90, 90, 90, 160, 90, 90,
90, 160, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 160, 90, 90, 90,
90, 90, 160, 160, 160, 160, 306, 306,
306, 307, 307, 307, 307, 160, 306, 306,
306, 160, 306, 306, 306, 310, 160, 160,
160, 160, 160, 160, 160, 330, 331, 160,
160, 160, 160, 160, 160, 160, 160, 160,
90, 90, 160, 160, 160, 160, 312, 313,
314, 315, 316, 317, 318, 319, 320, 321,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 307, 307, 160, 90, 90, 90,
90, 90, 90, 90, 90, 160, 90, 90,
90, 160, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 160, 90, 90, 90,
90, 90, 160, 160, 332, 308, 307, 333,
307, 307, 324, 307, 307, 160, 333, 307,
307, 160, 307, 307, 306, 310, 160, 160,
160, 160, 160, 160, 160, 324, 324, 160,
160, 160, 160, 160, 160, 160, 90, 160,
90, 90, 334, 334, 160, 160, 312, 313,
314, 315, 316, 317, 318, 319, 320, 321,
160, 301, 301, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
90, 90, 90, 90, 90, 90, 90, 90,
90, 160, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 160, 160, 160, 160, 324, 307,
307, 306, 306, 306, 160, 160, 307, 307,
307, 160, 307, 307, 307, 310, 160, 160,
160, 160, 160, 160, 160, 160, 160, 324,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 335, 335, 160, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 160,
160, 160, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 160, 336, 336, 336, 336, 336,
336, 336, 336, 336, 160, 336, 160, 160,
336, 336, 336, 336, 336, 336, 336, 160,
160, 160, 337, 160, 160, 160, 160, 338,
335, 335, 285, 285, 285, 160, 285, 160,
335, 335, 335, 335, 335, 335, 335, 338,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 335, 335, 339, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 340, 340, 340, 340, 340, 340, 340,
340, 340, 340, 340, 340, 340, 340, 340,
340, 340, 340, 340, 340, 340, 340, 340,
340, 340, 340, 340, 340, 340, 340, 340,
340, 340, 340, 340, 340, 340, 340, 340,
340, 340, 340, 340, 340, 340, 340, 340,
340, 341, 340, 340, 341, 341, 341, 341,
342, 342, 343, 160, 160, 160, 160, 12,
340, 340, 340, 340, 340, 340, 344, 341,
345, 345, 345, 345, 341, 341, 341, 199,
312, 313, 314, 315, 316, 317, 318, 319,
320, 321, 346, 346, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 340, 340, 160, 340, 160, 160, 340,
340, 160, 340, 160, 160, 340, 160, 160,
160, 160, 160, 160, 340, 340, 340, 340,
160, 340, 340, 340, 340, 340, 340, 340,
160, 340, 340, 340, 160, 340, 160, 340,
160, 160, 340, 340, 160, 340, 340, 340,
340, 341, 340, 340, 341, 341, 341, 341,
347, 347, 160, 341, 341, 340, 160, 160,
340, 340, 340, 340, 340, 160, 344, 160,
348, 348, 348, 348, 341, 341, 160, 160,
312, 313, 314, 315, 316, 317, 318, 319,
320, 321, 160, 160, 340, 340, 160, 160,
349, 350, 350, 350, 351, 352, 351, 351,
353, 351, 351, 354, 353, 355, 355, 355,
355, 355, 353, 356, 357, 356, 356, 356,
206, 206, 356, 356, 356, 356, 356, 356,
358, 359, 360, 361, 362, 363, 364, 365,
366, 367, 368, 368, 368, 368, 368, 368,
368, 368, 368, 368, 369, 206, 356, 206,
356, 370, 371, 372, 371, 372, 373, 373,
349, 349, 349, 349, 349, 349, 349, 349,
160, 349, 349, 349, 349, 349, 349, 349,
349, 349, 349, 349, 349, 349, 349, 349,
349, 349, 349, 349, 349, 349, 349, 349,
349, 349, 349, 349, 349, 349, 349, 349,
349, 349, 336, 160, 160, 160, 160, 160,
160, 374, 375, 376, 377, 376, 376, 376,
376, 376, 375, 375, 375, 375, 376, 378,
375, 376, 207, 207, 379, 354, 207, 207,
349, 349, 349, 349, 160, 160, 160, 160,
376, 376, 376, 376, 376, 376, 285, 376,
160, 376, 376, 376, 376, 376, 376, 376,
376, 376, 376, 376, 376, 376, 376, 376,
376, 376, 376, 376, 376, 376, 285, 285,
285, 376, 376, 376, 376, 376, 376, 376,
285, 376, 285, 285, 285, 160, 380, 380,
381, 381, 381, 381, 381, 381, 147, 381,
381, 381, 381, 381, 381, 160, 160, 381,
382, 382, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
383, 383, 383, 383, 383, 383, 383, 383,
383, 383, 383, 383, 383, 383, 383, 383,
383, 383, 383, 383, 383, 383, 383, 383,
383, 383, 383, 383, 383, 383, 383, 383,
383, 383, 160, 383, 383, 383, 383, 383,
160, 383, 383, 160, 384, 385, 385, 385,
385, 384, 385, 160, 160, 160, 385, 386,
384, 387, 160, 160, 160, 160, 160, 160,
388, 389, 390, 391, 392, 393, 394, 395,
396, 397, 398, 398, 339, 339, 339, 339,
383, 383, 383, 383, 383, 383, 384, 384,
385, 385, 160, 160, 160, 160, 160, 160,
399, 399, 399, 399, 399, 399, 399, 399,
399, 399, 399, 399, 399, 399, 399, 399,
399, 399, 399, 399, 399, 399, 399, 399,
399, 399, 399, 399, 399, 399, 399, 399,
399, 399, 399, 399, 399, 399, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 400,
400, 323, 323, 199, 401, 160, 160, 160,
402, 402, 402, 402, 402, 402, 402, 402,
402, 402, 402, 402, 402, 402, 402, 402,
402, 402, 402, 402, 402, 402, 402, 402,
402, 402, 402, 402, 402, 402, 402, 402,
402, 402, 402, 402, 402, 402, 402, 402,
402, 402, 402, 402, 402, 402, 402, 402,
402, 402, 402, 402, 402, 402, 402, 402,
402, 402, 160, 160, 160, 160, 160, 402,
403, 403, 403, 403, 403, 403, 403, 403,
403, 403, 403, 403, 403, 403, 403, 403,
403, 403, 403, 403, 403, 403, 403, 403,
403, 403, 403, 403, 403, 403, 403, 403,
403, 403, 403, 160, 160, 160, 160, 160,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 404, 404, 404, 404, 404, 404,
404, 404, 160, 160, 160, 160, 160, 160,
336, 336, 336, 336, 336, 336, 336, 323,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 323,
336, 160, 336, 336, 336, 336, 160, 160,
336, 336, 336, 336, 336, 336, 336, 160,
336, 160, 336, 336, 336, 336, 160, 160,
336, 336, 336, 336, 336, 336, 336, 323,
336, 160, 336, 336, 336, 336, 160, 160,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 323,
336, 160, 336, 336, 336, 336, 160, 160,
336, 336, 336, 336, 336, 336, 336, 160,
336, 160, 336, 336, 336, 336, 160, 160,
336, 336, 336, 336, 336, 336, 336, 323,
336, 336, 336, 336, 336, 336, 336, 160,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 323,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 323,
336, 160, 336, 336, 336, 336, 160, 160,
336, 336, 336, 336, 336, 336, 336, 323,
336, 336, 336, 336, 336, 336, 336, 323,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 160, 160, 160, 160, 153,
405, 406, 407, 339, 339, 339, 339, 407,
407, 408, 409, 410, 411, 412, 413, 414,
415, 416, 417, 417, 417, 417, 417, 417,
417, 417, 417, 417, 417, 160, 160, 160,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 160, 160, 160, 160, 160, 160,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 339, 407, 336,
336, 336, 336, 336, 336, 336, 336, 160,
160, 160, 160, 160, 160, 160, 160, 160,
419, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 420, 421, 160, 160, 160,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 406, 406, 406, 422, 422,
422, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
400, 400, 400, 400, 400, 400, 400, 400,
400, 400, 400, 400, 400, 160, 400, 400,
400, 400, 423, 423, 424, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
400, 400, 400, 400, 400, 400, 400, 400,
400, 400, 400, 400, 400, 400, 400, 400,
400, 400, 423, 423, 424, 425, 425, 160,
160, 160, 160, 160, 160, 160, 160, 160,
400, 400, 400, 400, 400, 400, 400, 400,
400, 400, 400, 400, 400, 400, 400, 400,
400, 400, 423, 423, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
400, 400, 400, 400, 400, 400, 400, 400,
400, 400, 400, 400, 400, 160, 400, 400,
400, 160, 423, 423, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
383, 383, 383, 383, 383, 383, 383, 383,
383, 383, 383, 383, 383, 383, 383, 383,
383, 383, 383, 383, 426, 426, 384, 385,
385, 385, 385, 385, 385, 385, 384, 384,
384, 384, 384, 384, 384, 384, 385, 384,
384, 385, 385, 385, 385, 385, 385, 385,
385, 385, 387, 385, 406, 406, 427, 428,
406, 339, 406, 429, 383, 430, 160, 160,
388, 389, 390, 391, 392, 393, 394, 395,
396, 397, 160, 160, 160, 160, 160, 160,
431, 431, 431, 431, 431, 431, 431, 431,
431, 431, 160, 160, 160, 160, 160, 160,
432, 432, 433, 434, 433, 433, 435, 432,
433, 434, 432, 285, 285, 285, 436, 160,
388, 389, 390, 391, 392, 393, 394, 395,
396, 397, 160, 160, 160, 160, 160, 160,
336, 336, 336, 137, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 336, 336, 336, 336, 336,
160, 160, 160, 160, 160, 160, 160, 160,
336, 336, 336, 336, 336, 336, 336, 336,
336, 437, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 160, 160, 160,
326, 326, 326, 327, 327, 327, 327, 326,
326, 438, 438, 438, 160, 160, 160, 160,
327, 327, 326, 327, 327, 327, 327, 327,
327, 439, 149, 150, 160, 160, 160, 160,
239, 160, 160, 160, 440, 440, 441, 442,
443, 444, 445, 446, 447, 448, 449, 450,
451, 451, 451, 451, 451, 451, 451, 451,
451, 451, 451, 451, 451, 451, 451, 451,
451, 451, 451, 451, 451, 451, 451, 451,
451, 451, 451, 451, 451, 451, 160, 160,
451, 451, 451, 451, 451, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
452, 452, 452, 452, 452, 452, 452, 452,
452, 452, 452, 452, 452, 452, 452, 452,
452, 452, 452, 452, 452, 452, 452, 452,
452, 452, 452, 452, 452, 452, 452, 452,
452, 452, 452, 452, 452, 452, 452, 452,
452, 452, 160, 160, 160, 160, 160, 160,
453, 453, 453, 453, 453, 453, 453, 453,
453, 453, 453, 453, 453, 453, 453, 453,
453, 452, 452, 452, 452, 452, 452, 452,
453, 453, 160, 160, 160, 160, 160, 160,
329, 454, 455, 456, 457, 458, 459, 460,
461, 462, 160, 160, 160, 160, 463, 463,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 153,
152, 464, 464, 464, 160, 160, 465, 466,
334, 334, 334, 334, 467, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 468, 467, 334, 334,
334, 334, 334, 467, 334, 467, 467, 467,
467, 467, 334, 467, 469, 322, 322, 322,
322, 322, 322, 322, 160, 160, 160, 160,
470, 471, 472, 473, 474, 475, 476, 477,
478, 479, 480, 480, 481, 481, 480, 480,
481, 482, 482, 482, 482, 482, 482, 482,
482, 482, 482, 298, 299, 298, 298, 298,
298, 298, 298, 298, 482, 482, 482, 482,
482, 482, 482, 482, 482, 160, 160, 160,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 483, 483, 483, 483,
483, 483, 483, 483, 483, 483, 483, 483,
483, 483, 483, 483, 483, 483, 483, 483,
483, 483, 483, 483, 483, 483, 483, 483,
483, 483, 483, 483, 483, 483, 483, 483,
483, 483, 483, 483, 483, 483, 483, 483,
483, 483, 483, 483, 483, 483, 483, 483,
483, 483, 102, 102, 102, 102, 102, 102,
102, 102, 102, 102, 103, 103, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103,
484, 103, 103, 103, 103, 485, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103,
103, 103, 103, 484, 484, 484, 484, 484,
484, 484, 484, 484, 484, 484, 484, 484,
484, 484, 484, 484, 484, 484, 484, 484,
484, 484, 484, 484, 484, 484, 484, 484,
484, 484, 484, 484, 484, 484, 484, 484,
153, 153, 152, 153, 298, 298, 298, 298,
298, 298, 299, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 298, 299,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 486, 487,
488, 489, 490, 491, 160, 160, 160, 160,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 65, 66, 65, 66, 65, 66,
65, 66, 160, 160, 160, 160, 160, 160,
492, 492, 492, 492, 492, 492, 492, 492,
493, 493, 493, 493, 493, 493, 493, 493,
492, 492, 492, 492, 492, 492, 160, 160,
493, 493, 493, 493, 493, 493, 160, 160,
492, 492, 492, 492, 492, 492, 492, 492,
493, 493, 493, 493, 493, 493, 493, 493,
492, 492, 492, 492, 492, 492, 492, 492,
493, 493, 493, 493, 493, 493, 493, 493,
492, 492, 492, 492, 492, 492, 160, 160,
493, 493, 493, 493, 493, 493, 160, 160,
494, 492, 495, 492, 496, 492, 497, 492,
160, 493, 160, 493, 160, 493, 160, 493,
492, 492, 492, 492, 492, 492, 492, 492,
493, 493, 493, 493, 493, 493, 493, 493,
498, 498, 499, 499, 499, 499, 500, 500,
501, 501, 502, 502, 503, 503, 160, 160,
504, 505, 506, 507, 508, 509, 510, 511,
512, 513, 514, 515, 516, 517, 518, 519,
520, 521, 522, 523, 524, 525, 526, 527,
528, 529, 530, 531, 532, 533, 534, 535,
536, 537, 538, 539, 540, 541, 542, 543,
544, 545, 546, 547, 548, 549, 550, 551,
492, 492, 552, 553, 554, 160, 555, 556,
493, 493, 557, 557, 558, 42, 559, 42,
42, 42, 560, 561, 562, 160, 563, 564,
565, 565, 565, 565, 566, 42, 42, 42,
492, 492, 567, 166, 160, 160, 568, 569,
493, 493, 570, 570, 160, 42, 42, 42,
492, 492, 571, 169, 572, 182, 573, 574,
493, 493, 575, 575, 576, 42, 42, 42,
160, 160, 577, 578, 579, 160, 580, 581,
582, 582, 583, 583, 584, 42, 42, 160,
585, 585, 585, 585, 585, 585, 585, 586,
585, 585, 585, 587, 588, 589, 590, 591,
592, 593, 592, 592, 594, 595, 14, 14,
596, 597, 598, 599, 596, 600, 598, 599,
14, 14, 14, 14, 601, 601, 601, 602,
603, 604, 605, 606, 607, 608, 609, 610,
13, 13, 13, 13, 13, 611, 611, 611,
14, 596, 600, 14, 612, 612, 14, 43,
43, 14, 14, 14, 613, 16, 17, 614,
615, 615, 432, 432, 432, 432, 616, 616,
616, 616, 185, 617, 618, 619, 620, 616,
620, 620, 620, 620, 619, 620, 620, 621,
622, 623, 623, 623, 160, 160, 160, 160,
160, 160, 624, 624, 624, 624, 624, 624,
625, 626, 160, 160, 627, 628, 629, 630,
631, 632, 633, 633, 36, 16, 17, 50,
625, 60, 55, 56, 627, 628, 629, 630,
631, 632, 633, 633, 36, 16, 17, 160,
484, 484, 484, 484, 484, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
12, 12, 12, 12, 12, 12, 12, 48,
12, 12, 12, 634, 635, 429, 429, 429,
636, 636, 637, 637, 637, 637, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
139, 139, 144, 144, 139, 139, 139, 139,
144, 144, 144, 139, 139, 273, 273, 273,
273, 139, 195, 195, 638, 639, 639, 159,
640, 159, 639, 641, 299, 299, 299, 299,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
49, 49, 175, 642, 49, 49, 49, 175,
49, 642, 50, 175, 175, 175, 50, 50,
175, 175, 175, 50, 49, 175, 643, 49,
49, 175, 175, 175, 175, 175, 49, 49,
49, 49, 49, 49, 175, 49, 644, 49,
175, 49, 645, 646, 175, 175, 647, 50,
175, 175, 648, 175, 50, 90, 90, 90,
90, 131, 649, 239, 103, 626, 650, 650,
185, 185, 185, 185, 185, 650, 626, 626,
626, 626, 651, 185, 418, 301, 652, 160,
160, 160, 160, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62,
653, 653, 653, 653, 653, 653, 653, 653,
653, 653, 653, 653, 653, 653, 653, 653,
654, 654, 654, 654, 654, 654, 654, 654,
654, 654, 654, 654, 654, 654, 654, 654,
655, 655, 655, 99, 109, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
36, 36, 36, 36, 36, 49, 49, 49,
49, 49, 36, 36, 49, 49, 49, 49,
36, 49, 49, 36, 49, 49, 36, 49,
49, 49, 49, 49, 49, 49, 36, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 36, 36,
49, 49, 36, 49, 36, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 649, 649, 649, 649, 649,
649, 649, 649, 649, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
36, 36, 36, 36, 36, 36, 36, 36,
656, 656, 656, 657, 657, 657, 36, 36,
36, 36, 18, 54, 36, 658, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 659, 660, 36, 36,
36, 36, 36, 661, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 659, 660, 659, 660, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 659, 660, 659, 660,
659, 660, 659, 660, 36, 36, 659, 660,
659, 660, 659, 660, 659, 660, 659, 660,
659, 660, 659, 660, 659, 660, 659, 660,
659, 660, 659, 660, 659, 660, 659, 660,
659, 660, 659, 660, 36, 36, 36, 659,
660, 659, 660, 36, 36, 36, 36, 36,
662, 36, 36, 36, 36, 36, 36, 36,
36, 36, 659, 660, 36, 36, 663, 36,
664, 665, 36, 665, 36, 36, 36, 36,
659, 660, 659, 660, 659, 660, 659, 660,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 659, 660, 659, 660, 666, 36, 36,
659, 660, 36, 36, 36, 36, 659, 660,
659, 660, 659, 660, 659, 660, 659, 660,
659, 660, 659, 660, 659, 660, 659, 660,
659, 660, 659, 660, 659, 660, 36, 36,
659, 660, 667, 667, 667, 185, 668, 668,
185, 185, 669, 669, 669, 670, 670, 185,
49, 649, 49, 49, 49, 49, 49, 49,
659, 660, 659, 660, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
36, 36, 49, 49, 49, 49, 49, 49,
49, 16, 17, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 649, 185, 649, 649, 649,
649, 649, 649, 649, 649, 649, 649, 649,
649, 649, 649, 649, 649, 649, 649, 649,
649, 649, 649, 649, 649, 381, 649, 649,
649, 649, 649, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 651, 651, 651, 651,
651, 651, 651, 651, 651, 651, 651, 651,
651, 651, 651, 651, 651, 651, 651, 651,
651, 651, 651, 651, 651, 651, 651, 239,
239, 418, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 671, 671, 671, 671,
671, 671, 301, 301, 301, 301, 301, 301,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 649, 649, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
672, 673, 674, 675, 676, 677, 678, 679,
680, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 672, 673, 674, 675,
676, 677, 678, 679, 680, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62,
60, 55, 56, 627, 628, 629, 630, 631,
632, 681, 681, 681, 681, 681, 681, 681,
681, 681, 681, 681, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194,
194, 194, 194, 194, 194, 194, 682, 682,
682, 682, 682, 682, 682, 682, 682, 682,
682, 682, 682, 682, 682, 682, 682, 682,
682, 682, 682, 682, 682, 682, 682, 682,
683, 683, 683, 683, 683, 683, 683, 683,
683, 683, 683, 683, 683, 683, 683, 683,
683, 683, 683, 683, 683, 683, 683, 683,
683, 683, 684, 685, 685, 685, 685, 685,
685, 685, 685, 685, 685, 686, 687, 688,
689, 690, 691, 692, 693, 694, 685, 695,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 651, 651,
651, 651, 651, 651, 651, 651, 651, 651,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 36,
49, 49, 49, 49, 49, 49, 49, 49,
49, 36, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
649, 649, 649, 649, 649, 649, 649, 649,
185, 185, 185, 185, 185, 185, 185, 185,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 239, 239, 651, 651,
418, 649, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 36,
649, 649, 651, 651, 651, 651, 651, 651,
651, 651, 651, 651, 651, 651, 418, 418,
651, 651, 651, 651, 651, 651, 651, 651,
651, 651, 239, 239, 239, 239, 239, 239,
239, 239, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 418, 160, 160, 160,
239, 239, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 405, 418, 418, 418,
418, 418, 301, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 49, 49, 49, 49, 160, 49, 49,
49, 49, 160, 160, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
160, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 160, 49, 160, 49,
49, 49, 49, 160, 160, 160, 49, 160,
49, 49, 49, 696, 696, 696, 696, 160,
160, 49, 697, 697, 49, 49, 49, 49,
698, 699, 698, 699, 698, 699, 698, 699,
698, 699, 698, 699, 698, 699, 672, 673,
674, 675, 676, 677, 678, 679, 680, 62,
672, 673, 674, 675, 676, 677, 678, 679,
680, 62, 672, 673, 674, 675, 676, 677,
678, 679, 680, 62, 49, 160, 160, 160,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
160, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 160,
700, 700, 700, 701, 702, 703, 704, 671,
671, 671, 671, 160, 160, 160, 160, 160,
185, 185, 185, 185, 185, 705, 706, 185,
185, 185, 185, 185, 185, 705, 706, 185,
185, 185, 705, 706, 705, 706, 698, 699,
698, 699, 698, 699, 160, 160, 160, 160,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
381, 381, 381, 381, 381, 381, 381, 381,
381, 381, 381, 381, 381, 381, 381, 381,
381, 381, 381, 381, 381, 381, 381, 381,
381, 381, 381, 381, 381, 381, 381, 381,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 698, 699, 698, 699, 698,
699, 698, 699, 698, 699, 707, 708, 709,
710, 698, 699, 698, 699, 698, 699, 698,
699, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
711, 185, 185, 185, 185, 185, 185, 185,
705, 706, 185, 185, 705, 706, 185, 185,
185, 185, 185, 185, 185, 185, 185, 705,
706, 705, 706, 185, 705, 706, 185, 185,
698, 699, 698, 699, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 712, 185, 185,
705, 706, 185, 185, 698, 699, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 705, 706, 705, 706, 185,
185, 185, 185, 185, 705, 706, 185, 185,
185, 185, 185, 185, 705, 706, 185, 185,
185, 185, 185, 185, 705, 706, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185,
185, 705, 706, 185, 185, 705, 706, 705,
706, 705, 706, 705, 706, 185, 185, 185,
185, 185, 185, 705, 706, 185, 185, 185,
185, 705, 706, 705, 706, 705, 706, 705,
706, 705, 706, 705, 706, 185, 185, 185,
185, 705, 706, 185, 185, 185, 705, 706,
705, 706, 705, 706, 705, 706, 185, 705,
706, 185, 185, 705, 706, 185, 185, 185,
185, 185, 185, 705, 706, 705, 706, 705,
706, 705, 706, 705, 706, 705, 706, 185,
185, 185, 185, 185, 185, 705, 706, 705,
706, 705, 706, 705, 706, 705, 706, 185,
185, 185, 185, 185, 185, 185, 713, 185,
185, 185, 185, 714, 715, 714, 185, 185,
185, 185, 185, 185, 705, 706, 185, 185,
185, 185, 185, 185, 185, 185, 185, 705,
706, 705, 706, 185, 185, 185, 185, 185,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 418, 418,
418, 418, 418, 418, 301, 301, 301, 301,
301, 301, 301, 160, 160, 160, 160, 160,
301, 301, 301, 301, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
716, 716, 716, 716, 716, 716, 716, 716,
716, 716, 716, 716, 716, 716, 716, 716,
716, 716, 716, 716, 716, 716, 716, 716,
716, 716, 716, 716, 716, 716, 716, 716,
716, 716, 716, 716, 716, 716, 716, 716,
716, 716, 716, 716, 716, 716, 716, 160,
717, 717, 717, 717, 717, 717, 717, 717,
717, 717, 717, 717, 717, 717, 717, 717,
717, 717, 717, 717, 717, 717, 717, 717,
717, 717, 717, 717, 717, 717, 717, 717,
717, 717, 717, 717, 717, 717, 717, 717,
717, 717, 717, 717, 717, 717, 717, 160,
113, 109, 718, 719, 720, 721, 722, 113,
109, 113, 109, 113, 109, 160, 160, 160,
160, 160, 160, 160, 723, 113, 109, 723,
160, 160, 160, 160, 160, 160, 160, 160,
105, 106, 105, 106, 105, 106, 105, 106,
105, 106, 105, 106, 105, 106, 105, 106,
105, 106, 105, 106, 105, 106, 105, 106,
105, 106, 105, 106, 105, 106, 105, 106,
105, 106, 105, 106, 103, 418, 418, 418,
418, 418, 418, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 620, 620, 620, 620, 724, 620, 620,
725, 725, 725, 725, 725, 725, 725, 725,
725, 725, 725, 725, 725, 725, 725, 725,
725, 725, 725, 725, 725, 725, 725, 725,
725, 725, 725, 725, 725, 725, 725, 725,
725, 725, 725, 725, 725, 725, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 160, 160,
160, 160, 160, 160, 160, 160, 160, 401,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 160,
160, 160, 160, 160, 160, 160, 160, 160,
323, 323, 323, 323, 323, 323, 323, 160,
323, 323, 323, 323, 323, 323, 323, 160,
323, 323, 323, 323, 323, 323, 323, 160,
323, 323, 323, 323, 323, 323, 323, 160,
726, 726, 727, 728, 727, 728, 726, 726,
726, 727, 728, 726, 727, 728, 620, 620,
620, 620, 620, 620, 620, 620, 619, 729,
160, 160, 160, 160, 727, 728, 160, 160,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 160, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 160, 160, 160, 160,
731, 732, 733, 734, 735, 736, 737, 738,
16, 17, 16, 17, 16, 17, 16, 17,
16, 17, 735, 735, 16, 17, 16, 17,
16, 17, 16, 17, 739, 16, 17, 740,
735, 738, 738, 738, 738, 738, 738, 738,
738, 738, 741, 742, 140, 743, 744, 744,
745, 746, 746, 746, 746, 746, 735, 735,
747, 747, 747, 748, 749, 750, 730, 735,
160, 751, 737, 751, 737, 751, 737, 751,
737, 751, 737, 737, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 751, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 751, 737, 751, 737, 751,
737, 737, 737, 737, 737, 737, 751, 737,
737, 737, 737, 737, 737, 752, 752, 160,
160, 753, 753, 754, 754, 755, 755, 756,
757, 758, 759, 758, 759, 758, 759, 758,
759, 758, 759, 759, 759, 759, 759, 759,
759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 759, 758, 759, 759, 759, 759,
759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 759, 758, 759, 758, 759, 758,
759, 759, 759, 759, 759, 759, 758, 759,
759, 759, 759, 759, 759, 758, 758, 759,
759, 759, 759, 760, 761, 761, 761, 762,
160, 160, 160, 160, 160, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 160, 160, 160,
160, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 763,
763, 763, 763, 763, 763, 763, 763, 160,
764, 764, 765, 765, 765, 765, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 766, 766, 766,
160, 160, 160, 160, 160, 160, 160, 160,
767, 767, 767, 767, 767, 767, 767, 767,
767, 767, 767, 767, 767, 767, 767, 767,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
768, 768, 768, 768, 768, 768, 768, 768,
768, 768, 768, 768, 768, 768, 768, 768,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 769, 769, 160,
765, 765, 765, 765, 765, 765, 765, 765,
765, 765, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
769, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 769, 769, 767, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 769, 769, 769, 769,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 160,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 769,
769, 769, 769, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 769, 769,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 764,
764, 764, 764, 764, 764, 764, 764, 769,
771, 771, 771, 771, 771, 771, 771, 771,
771, 771, 771, 771, 771, 771, 771, 771,
771, 771, 771, 771, 771, 771, 771, 771,
771, 771, 771, 771, 771, 771, 771, 771,
771, 771, 771, 771, 771, 771, 771, 771,
771, 771, 771, 771, 771, 771, 771, 771,
771, 771, 771, 771, 771, 771, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 160, 160, 160, 160,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 773, 766, 766,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 766, 766, 766,
766, 766, 766, 766, 766, 160, 160, 160,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 774, 774, 730, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 730, 730, 730, 774, 730, 730, 730,
730, 730, 730, 730, 730, 730, 730, 730,
730, 774, 730, 730, 730, 774, 730, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
775, 775, 775, 775, 775, 775, 775, 775,
775, 775, 775, 775, 775, 775, 775, 775,
775, 775, 775, 775, 775, 775, 775, 776,
776, 776, 776, 160, 160, 160, 160, 160,
777, 777, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
323, 323, 778, 323, 323, 323, 779, 323,
323, 323, 323, 780, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 323, 323, 323, 323, 323,
323, 323, 323, 464, 464, 780, 780, 464,
418, 418, 418, 418, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 781, 781, 304, 304,
160, 160, 160, 160, 160, 160, 160, 160,
782, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 782, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
782, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 782, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
782, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 782, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
782, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 782, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 783, 783, 783, 783,
783, 783, 783, 783, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
784, 784, 784, 784, 784, 784, 784, 784,
784, 784, 784, 784, 784, 784, 784, 784,
784, 784, 784, 784, 784, 784, 784, 784,
784, 784, 784, 784, 784, 784, 784, 784,
785, 785, 785, 785, 785, 785, 785, 785,
785, 785, 785, 785, 785, 785, 785, 785,
785, 785, 785, 785, 785, 785, 785, 785,
785, 785, 785, 785, 785, 785, 785, 785,
737, 737, 737, 737, 737, 737, 737, 737,
737, 737, 737, 737, 737, 737, 160, 160,
786, 786, 786, 786, 786, 786, 786, 786,
786, 786, 786, 786, 786, 786, 786, 786,
786, 786, 786, 786, 786, 786, 786, 786,
786, 786, 786, 786, 786, 786, 786, 786,
786, 786, 786, 786, 786, 786, 786, 786,
786, 786, 786, 786, 786, 786, 786, 786,
786, 786, 786, 786, 786, 786, 786, 786,
786, 786, 786, 160, 160, 160, 160, 160,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 160, 160, 160, 160, 160, 160,
787, 788, 789, 790, 791, 792, 792, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 793, 794, 795, 796, 797,
160, 160, 160, 160, 160, 798, 799, 231,
231, 231, 231, 231, 231, 231, 231, 231,
231, 633, 231, 231, 231, 231, 231, 231,
231, 231, 231, 231, 231, 231, 231, 205,
231, 231, 231, 231, 231, 205, 231, 205,
231, 231, 205, 231, 231, 205, 231, 231,
231, 231, 231, 231, 231, 231, 231, 231,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 235, 235, 235, 235, 235, 235,
235, 235, 235, 235, 235, 235, 235, 235,
235, 235, 235, 235, 235, 235, 235, 235,
235, 235, 235, 235, 235, 235, 235, 235,
235, 235, 235, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 598, 740,
235, 235, 235, 235, 235, 235, 235, 235,
235, 235, 235, 235, 235, 235, 235, 235,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
235, 235, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
235, 235, 235, 235, 235, 235, 235, 235,
800, 800, 800, 800, 800, 800, 800, 800,
800, 800, 800, 800, 800, 800, 800, 800,
800, 800, 800, 800, 800, 800, 800, 800,
800, 800, 800, 800, 800, 800, 800, 800,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 801, 239, 235, 235,
423, 423, 423, 423, 423, 423, 423, 423,
423, 423, 423, 423, 423, 423, 423, 423,
802, 803, 803, 802, 802, 804, 804, 805,
806, 807, 160, 160, 160, 160, 160, 160,
139, 139, 139, 139, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
734, 745, 745, 808, 808, 598, 740, 598,
740, 598, 740, 598, 740, 598, 740, 598,
740, 598, 740, 598, 740, 750, 750, 809,
810, 734, 734, 734, 734, 808, 808, 808,
811, 734, 812, 160, 760, 813, 9, 9,
745, 16, 17, 16, 17, 16, 17, 814,
734, 734, 815, 816, 817, 818, 819, 160,
734, 12, 13, 734, 160, 160, 160, 160,
243, 243, 243, 286, 243, 235, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 243, 243, 243, 235, 235, 820,
160, 9, 734, 814, 12, 13, 734, 734,
16, 17, 734, 815, 811, 816, 812, 821,
822, 823, 824, 825, 826, 827, 828, 829,
830, 831, 813, 760, 832, 819, 833, 9,
734, 834, 834, 834, 834, 834, 834, 834,
834, 834, 834, 834, 834, 834, 834, 834,
834, 834, 834, 834, 834, 834, 834, 834,
834, 834, 834, 39, 734, 41, 835, 808,
835, 836, 836, 836, 836, 836, 836, 836,
836, 836, 836, 836, 836, 836, 836, 836,
836, 836, 836, 836, 836, 836, 836, 836,
836, 836, 836, 39, 819, 41, 819, 698,
699, 733, 16, 17, 732, 760, 837, 758,
758, 758, 758, 758, 758, 758, 758, 758,
761, 837, 837, 837, 837, 837, 837, 837,
837, 837, 837, 837, 837, 837, 837, 837,
837, 837, 837, 837, 837, 837, 837, 837,
837, 837, 837, 837, 837, 837, 837, 837,
837, 837, 837, 837, 837, 837, 837, 837,
837, 837, 837, 837, 837, 837, 761, 761,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, 160,
160, 160, 90, 90, 90, 90, 90, 90,
160, 160, 90, 90, 90, 90, 90, 90,
160, 160, 90, 90, 90, 90, 90, 90,
160, 160, 90, 90, 90, 160, 160, 160,
48, 12, 819, 835, 735, 12, 12, 160,
49, 36, 36, 36, 36, 49, 49, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 838, 838, 838, 839, 49, 840, 840,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 160, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 160,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 160, 308, 308, 160, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 160, 160,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 160, 160,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 160, 160, 160, 160, 160,
841, 842, 843, 160, 160, 160, 160, 844,
844, 844, 844, 844, 844, 844, 844, 844,
844, 844, 844, 844, 844, 844, 844, 844,
844, 844, 844, 844, 844, 844, 844, 844,
844, 844, 844, 844, 844, 844, 844, 844,
844, 844, 844, 844, 844, 844, 844, 844,
844, 844, 844, 844, 160, 160, 160, 845,
845, 845, 845, 845, 845, 845, 845, 845,
846, 846, 846, 846, 846, 846, 846, 846,
846, 846, 846, 846, 846, 846, 846, 846,
846, 846, 846, 846, 846, 846, 846, 846,
846, 846, 846, 846, 846, 846, 846, 846,
846, 846, 846, 846, 846, 846, 846, 846,
846, 846, 846, 846, 846, 846, 846, 846,
846, 846, 846, 846, 846, 724, 724, 724,
724, 418, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 724, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
847, 847, 847, 847, 847, 847, 847, 847,
847, 847, 847, 847, 847, 847, 847, 847,
847, 847, 847, 847, 847, 847, 847, 847,
847, 847, 847, 847, 847, 847, 847, 160,
848, 848, 848, 848, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
847, 847, 847, 847, 847, 847, 847, 847,
847, 847, 847, 847, 847, 847, 847, 847,
847, 849, 847, 847, 847, 847, 847, 847,
847, 847, 849, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 160, 841,
323, 323, 323, 323, 160, 160, 160, 160,
323, 323, 323, 323, 323, 323, 323, 323,
465, 850, 850, 850, 850, 850, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
851, 851, 851, 851, 851, 851, 851, 851,
851, 851, 851, 851, 851, 851, 851, 851,
851, 851, 851, 851, 851, 851, 851, 851,
851, 851, 851, 851, 851, 851, 851, 851,
851, 851, 851, 851, 851, 851, 852, 852,
853, 853, 853, 853, 853, 853, 853, 853,
853, 853, 853, 853, 853, 853, 853, 853,
853, 853, 853, 853, 853, 853, 853, 853,
853, 853, 853, 853, 853, 853, 853, 853,
853, 853, 853, 853, 853, 853, 854, 854,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 308, 308,
308, 308, 308, 308, 308, 308, 160, 160,
441, 442, 443, 444, 445, 446, 447, 448,
449, 450, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
855, 855, 855, 855, 855, 855, 205, 205,
855, 205, 855, 855, 855, 855, 855, 855,
855, 855, 855, 855, 855, 855, 855, 855,
855, 855, 855, 855, 855, 855, 855, 855,
855, 855, 855, 855, 855, 855, 855, 855,
855, 855, 855, 855, 855, 855, 855, 855,
855, 855, 855, 855, 855, 855, 205, 855,
855, 205, 205, 205, 855, 205, 205, 855,
856, 856, 856, 856, 856, 856, 856, 856,
856, 856, 856, 856, 856, 856, 856, 856,
856, 856, 856, 856, 856, 856, 857, 857,
857, 857, 205, 205, 205, 205, 205, 858,
859, 780, 780, 780, 205, 780, 780, 205,
205, 205, 205, 205, 780, 152, 780, 153,
859, 859, 859, 859, 205, 859, 859, 859,
205, 859, 859, 859, 859, 859, 859, 859,
859, 859, 859, 859, 859, 859, 859, 859,
859, 859, 859, 859, 859, 859, 859, 859,
859, 859, 859, 859, 205, 205, 205, 205,
153, 641, 152, 205, 205, 205, 205, 779,
860, 861, 862, 863, 864, 864, 864, 864,
205, 205, 205, 205, 205, 205, 205, 205,
865, 865, 865, 865, 865, 865, 865, 865,
866, 205, 205, 205, 205, 205, 205, 205,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 322,
322, 322, 322, 322, 322, 322, 322, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 867, 867, 867, 867, 867,
867, 867, 867, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
481, 481, 481, 481, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 160,
160, 160, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 869, 870, 871,
871, 871, 868, 868, 868, 872, 869, 869,
869, 869, 869, 873, 873, 873, 873, 873,
873, 873, 873, 874, 874, 874, 874, 874,
874, 874, 874, 868, 868, 875, 875, 875,
875, 875, 874, 874, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 875, 875, 875, 875, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 868, 868,
868, 868, 868, 868, 868, 868, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 418, 418, 418, 418, 418, 418,
418, 418, 153, 153, 153, 418, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 239,
239, 239, 239, 239, 239, 239, 239, 160,
160, 160, 160, 160, 160, 160, 160, 160,
876, 876, 876, 876, 876, 876, 876, 876,
876, 876, 876, 876, 876, 876, 876, 876,
876, 876, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 878, 878,
878, 878, 878, 878, 878, 160, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 877, 160, 877, 877,
160, 160, 877, 160, 160, 877, 877, 160,
160, 877, 877, 877, 877, 160, 877, 877,
877, 877, 877, 877, 877, 877, 878, 878,
878, 878, 160, 878, 160, 878, 878, 878,
878, 102, 878, 878, 160, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 877, 877, 160, 877,
877, 877, 877, 160, 160, 877, 877, 877,
877, 877, 877, 877, 877, 160, 877, 877,
877, 877, 877, 877, 877, 160, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
877, 877, 160, 877, 877, 877, 877, 160,
877, 877, 877, 877, 877, 160, 877, 160,
160, 160, 877, 877, 877, 877, 877, 877,
877, 160, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 103, 103, 160, 160,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 879, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 879, 878, 878, 878, 878,
878, 878, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 879, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 879, 878, 878,
878, 878, 878, 878, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 879, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 879,
878, 878, 878, 878, 878, 878, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 879,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 879, 878, 878, 878, 878, 878, 878,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 877, 877, 877, 877, 877, 877, 877,
877, 879, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 878, 878, 878, 878, 878,
878, 878, 878, 879, 878, 878, 878, 878,
878, 878, 880, 723, 160, 160, 881, 882,
883, 884, 885, 886, 887, 888, 889, 890,
881, 882, 883, 884, 885, 886, 887, 888,
889, 890, 881, 882, 883, 884, 885, 886,
887, 888, 889, 890, 881, 882, 883, 884,
885, 886, 887, 888, 889, 890, 881, 882,
883, 884, 885, 886, 887, 888, 889, 890,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 891, 891,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 892, 892,
892, 892, 892, 892, 892, 892, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 873, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
873, 873, 873, 873, 873, 873, 873, 873,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326,
160, 160, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 893, 893,
893, 893, 893, 893, 893, 893, 891, 891,
};
#define GET_PROP_INDEX(ucs4) \
(ucs4 < 0x11000 \
? (uc_property_trie[uc_property_trie[ucs4>>5] + (ucs4 & 0x1f)]) \
: (uc_property_trie[uc_property_trie[((ucs4 - 0x11000)>>8) + 0x880] + (ucs4 & 0xff)]))
#define GET_PROP_INDEX_UCS2(ucs2) \
(uc_property_trie[uc_property_trie[ucs2>>5] + (ucs2 & 0x1f)])
static const Properties uc_properties[] = {
{ 10, 19, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0 },
{ 10, 15, 8, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3 },
{ 10, 30, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1 },
{ 10, 31, 8, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3 },
{ 10, 31, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3 },
{ 10, 29, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1 },
{ 10, 19, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0 },
{ 10, 19, 8, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0 },
{ 7, 28, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
{ 26, 5, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 26, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 26, 11, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 28, 8, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 9, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10 },
{ 22, 0, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
{ 23, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
{ 27, 8, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
{ 21, 14, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8 },
{ 26, 6, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 10, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 26, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
{ 26, 7, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 3, 5 },
{ 22, 0, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 10 },
{ 26, 8, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 23, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 10 },
{ 29, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 20, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -32, -32, 0, 0, 3, 4 },
{ 27, 15, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 10, 11, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1 },
{ 7, 3, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 28, 9, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 24, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 10 },
{ 11, 15, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 30, 9, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 8, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 2, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 29, 16, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 743, 743, 775, 0, 3, 4 },
{ 26, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
{ 6, 11, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 25, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 10 },
{ 6, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 121, 121, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -232, -232, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 85, 85, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -121, 0, 0, -121, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -300, -300, -268, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 195, 195, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 210, 0, 0, 210, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 206, 0, 0, 206, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 205, 0, 0, 205, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 79, 0, 0, 79, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 202, 0, 0, 202, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 203, 0, 0, 203, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 207, 0, 0, 207, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 97, 97, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 211, 0, 0, 211, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 209, 0, 0, 209, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 163, 163, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 213, 0, 0, 213, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 130, 130, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 214, 0, 0, 214, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 218, 0, 0, 218, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 217, 0, 0, 217, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 219, 0, 0, 219, 0, 3, 5 },
{ 19, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 56, 56, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 2, 0, 1, 2, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -2, -1, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -79, -79, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 96, 96, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, -97, 0, 0, -97, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, -56, 0, 0, -56, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, -130, 0, 0, -130, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 10795, 0, 0, 10795, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, -163, 0, 0, -163, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 10792, 0, 0, 10792, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -195, 0, 0, -195, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 69, 0, 0, 69, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 71, 0, 0, 71, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -210, -210, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -206, -206, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -205, -205, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -202, -202, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -203, -203, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -207, -207, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -209, -209, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -211, -211, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 10743, 10743, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -213, -213, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -214, -214, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 10727, 10727, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -218, -218, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -69, -69, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -217, -217, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -71, -71, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -219, -219, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 18, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 18, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 18, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 18, 16, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 29, 11, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 18, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 29, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 230, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 232, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 220, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 216, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 202, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 240, 0, -1, 1, 0, 0, 0, 0, 0, 0, 84, 84, 116, 4, 1, 0 },
{ 1, 19, 17, 230, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 220, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 3, 17, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 230, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 220, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 232, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 220, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 230, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 3, 17, 233, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 3, 17, 234, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 3, 17, 233, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 3, 17, 234, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 3, 17, 233, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 230, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 14, 11, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 130, 130, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 38, 0, 0, 38, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 37, 0, 0, 37, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 64, 0, 0, 64, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 63, 0, 0, 63, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 88, 88, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -38, -38, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -37, -37, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 92, 92, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -31, -31, 1, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -64, -64, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -63, -63, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -62, -62, -30, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -57, -57, -25, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -47, -47, -15, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -54, -54, -22, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -86, -86, -54, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -80, -80, -48, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, -60, 0, 0, -60, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, -96, -96, -64, 0, 3, 4 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 15, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, -7, 0, 0, -7, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, -130, 0, 0, -130, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 80, 0, 0, 80, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 80, 0, 0, 80, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, -80, -80, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -80, -80, 0, 0, 3, 4 },
{ 30, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 3, 19, 17, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 15, 0, 0, 15, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -15, -15, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 48, 0, 0, 48, 0, 3, 5 },
{ 26, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -48, -48, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 52, 49, 0, 0, 3, 4 },
{ 26, 7, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9 },
{ 21, 15, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 14, 11, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 220, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 230, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 222, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 228, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 10, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 11, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 12, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 13, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 14, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 15, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 16, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 17, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 18, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 19, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 19, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 20, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 21, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 22, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 26, 15, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 23, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 26, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 24, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 25, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 26, 5, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 18, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 19, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 26, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 26, 11, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
{ 11, 11, 13, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 14, 11, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 28, 9, 13, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 5, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 7, 13, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
{ 30, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 5, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 5, 13, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 5, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 19, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 13, 0, 2, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 13, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 18, 11, 13, 0, 3, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 27, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 28, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 29, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 30, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 31, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 32, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 33, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 34, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 4, 10, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 5, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 5, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 5, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 5, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 5, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 5, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 5, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 5, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 5, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 26, 5, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 10, 5, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 26, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 11, 13, 0, 1, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 35, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 19, 11, 13, 0, 1, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 13, 0, 2, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 11, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 3, 19, 17, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 18, 11, 13, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 13, 0, 2, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 30, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 11, 13, 0, 1, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 26, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 26, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 11, 11, 18, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 1, 19, 17, 36, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 19, 11, 13, 0, 1, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 13, 0, 2, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 13, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 19, 11, 13, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 4, 10, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 1, 0, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 1, 0, 0, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 1, 0, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 1, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 1, 0, 0, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 1, 0, 0, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 1, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 1, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 1, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 19, 11, 1, 0, 1, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 230, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 220, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 18, 11, 1, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 30, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 7, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
{ 26, 5, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 18, 11, 1, 0, 3, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 2, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 7, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 9, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 26, 15, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 4, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 19, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 2, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 6, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 2, 19, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 28, 8, 4, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 10, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 1, 19, 17, 84, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 91, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 7, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 2, 19, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 9, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 2, 19, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 26, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 26, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 1, 26, 17, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 26, 17, 103, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 26, 17, 9, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 18, 26, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 1, 26, 17, 107, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 26, 15, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 26, 17, 118, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 26, 17, 122, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 19, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 30, 16, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 16, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 3, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 5, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 5, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 10, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 6, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 15, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 216, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 22, 0, 10, 0, 0, -1, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
{ 23, 1, 10, 0, 0, -1, 2, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
{ 2, 19, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 129, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 130, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 132, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 2, 15, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 9, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 30, 15, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 16, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 2, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 1, 26, 17, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 26, 17, 7, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 26, 17, 9, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 4, 10, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 26, 15, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 7264, 0, 0, 7264, 0, 3, 5 },
{ 19, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 18, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 23, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 6 },
{ 19, 24, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 6 },
{ 19, 25, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 6 },
{ 30, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 6, 11, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 7, 15, 9, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
{ 22, 0, 10, 0, 0, -1, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
{ 23, 1, 10, 0, 0, -1, 4, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
{ 5, 11, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 9, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 26, 15, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 11, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 26, 4, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 18, 26, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 28, 8, 4, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 26, 17, 230, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 6, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 11, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 21, 16, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 7, 3, 9, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
{ 1, 19, 17, 228, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 2, 19, 17, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 222, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 26, 5, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 4, 10, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 19, 26, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 19, 26, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 2, 26, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 4, 10, 0, 0, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 5, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 26, 26, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 2, 19, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 26, 15, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 2, 19, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 7, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 2, 19, 0, 9, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 10, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 26, 15, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 26, 15, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 18, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 18, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 3814, 3814, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 99, 99, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 102, 102, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 105, 105, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 108, 108, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 111, 111, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, -59, -59, -58, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -8, 0, 0, -8, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 114, 114, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 117, 117, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 121, 121, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 125, 125, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 74, 74, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 86, 86, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 100, 100, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 112, 112, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 126, 126, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 163, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 166, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 169, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 172, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 175, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 178, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 181, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 184, 8, 0, 0, 3, 4 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 163, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 166, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 169, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 172, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 175, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 178, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 181, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 184, 0, -8, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 187, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 190, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 193, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 196, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 199, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 202, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 205, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 208, 8, 0, 0, 3, 4 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 187, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 190, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 193, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 196, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 199, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 202, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 205, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 208, 0, -8, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 211, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 214, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 217, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 220, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 223, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 226, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 229, 8, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 232, 8, 0, 0, 3, 4 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 211, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 214, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 217, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 220, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 223, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 226, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 229, 0, -8, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -8, 232, 0, -8, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 247, 244, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 235, 9, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 253, 250, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 129, 129, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 284, 280, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -74, 0, 0, -74, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -9, 235, 0, -9, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -7205, -7205, -7173, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 259, 256, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 238, 9, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 265, 262, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 132, 132, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 292, 288, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -86, 0, 0, -86, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -9, 238, 0, -9, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 135, 135, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 139, 139, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 142, 142, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -100, 0, 0, -100, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 146, 146, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 150, 150, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 153, 153, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 156, 156, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -112, 0, 0, -112, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -7, 0, 0, -7, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 271, 268, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, 0, 241, 9, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 277, 274, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 160, 160, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 300, 296, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -128, 0, 0, -128, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -126, 0, 0, -126, 0, 3, 5 },
{ 17, 11, 0, 0, 0, -1, 1, 0, 1, 0, 0, 0, -9, 241, 0, -9, 0, 3, 5 },
{ 7, 15, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
{ 7, 3, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
{ 11, 18, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 11, 19, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 11, 19, 18, 0, 3, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 11, 19, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 11, 19, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 21, 15, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 21, 3, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 21, 17, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 21, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 24, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
{ 25, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 4, 10 },
{ 22, 0, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 24, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 25, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
{ 26, 13, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0 },
{ 8, 31, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1 },
{ 9, 31, 7, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1 },
{ 11, 19, 11, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 11, 19, 14, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 11, 19, 16, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 11, 19, 12, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 11, 19, 15, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 7, 3, 6, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
{ 26, 9, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 27, 7, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
{ 26, 4, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 26, 4, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 26, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 20, 11, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0 },
{ 26, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 7, 15, 9, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
{ 11, 20, 18, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 11, 11, 18, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 11, 19, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 6, 11, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 16, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 6, 11, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 2, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 2, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 28, 8, 4, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 28, 8, 4, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 28, 8, 4, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 28, 8, 4, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 3, 19, 17, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 1, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 220, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 1, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 30, 9, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 8, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -7517, 0, 0, -7517, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -8383, 0, 0, -8383, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -8262, 0, 0, -8262, 0, 3, 5 },
{ 30, 11, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 15, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 28, 0, 0, 28, 0, 3, 5 },
{ 30, 11, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 15, 11, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
{ 30, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -28, -28, 0, 0, 3, 4 },
{ 5, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 3, 5 },
{ 5, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -16, -16, 0, 0, 3, 4 },
{ 5, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2016, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1824, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2104, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2108, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2106, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 1, 0, 0, 0, 0, -138, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 2, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 26, 0, 0, 26, 0, 3, 5 },
{ 30, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -26, -26, 0, 0, 3, 4 },
{ 6, 11, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 10, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 2, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 30, 5, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 22, 0, 10, 0, 0, -1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
{ 23, 1, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
{ 27, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
{ 22, 0, 10, 0, 0, -1, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
{ 23, 1, 10, 0, 0, -1, 8, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
{ 22, 0, 10, 0, 0, -1, 6, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 10 },
{ 23, 1, 10, 0, 0, -1, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
{ 22, 0, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
{ 23, 1, 10, 0, 0, -1, 6, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 10 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -1824, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2016, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2104, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2106, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 11, 10, 0, 0, -1, 6, 0, 0, 0, 0, -2108, 0, 0, 0, 0, 0, 0, 0 },
{ 15, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 48, 0, 0, 48, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, -48, -48, 0, 0, 3, 4 },
{ 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -10743, 0, 0, -10743, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -3814, 0, 0, -3814, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, -10727, 0, 0, -10727, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -10795, -10795, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -10792, -10792, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 6, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 16, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, -7264, -7264, 0, 0, 3, 4 },
{ 26, 2, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 24, 2, 10, 0, 0, -1, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10 },
{ 25, 2, 10, 0, 0, -1, 8, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 10 },
{ 21, 15, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 12, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 7, 12, 9, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 },
{ 26, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 26, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 18, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 5, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 21, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 23, 1, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 1, 19, 17, 218, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 228, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 222, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 224, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 21, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 18, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
{ 5, 12, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 18, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 26, 12, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 19, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 1, 19, 17, 8, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 29, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
{ 18, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 19, 12, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 21, 4, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
{ 19, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
{ 19, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
{ 26, 4, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 18, 4, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
{ 19, 12, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
{ 19, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 30, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 12, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 30, 12, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 4, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
{ 30, 12, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 12, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 12, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 19, 12, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 18, 4, 0, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 30, 12, 10, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 29, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 18, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 29, 11, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 2, 19, 17, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 9, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 26, 16, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 21, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3, 6 },
{ 19, 22, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 6 },
{ 12, 27, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 13, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 12, 0, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 12, 9, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 18, 15, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 24, 21, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 31, 27, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 39, 35, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 46, 43, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 58, 55, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 64, 61, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 70, 67, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 76, 73, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 82, 79, 0, 0, 3, 4 },
{ 19, 11, 1, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 1, 19, 17, 26, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 14, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 28, 9, 13, 0, 0, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 7, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 },
{ 26, 1, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 5, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 22, 0, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 23, 1, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 26, 13, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 20, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0 },
{ 22, 0, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 23, 1, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10 },
{ 26, 1, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 1, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
{ 26, 4, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 12, 4, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 12, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 21, 12, 3, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 11, 20, 18, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 26, 12, 6, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 4, 12, 2, 0, 0, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 },
{ 27, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0 },
{ 15, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 32, 0, 0, 32, 0, 3, 5 },
{ 29, 12, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 16, 12, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -32, -32, 0, 0, 3, 4 },
{ 19, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6 },
{ 11, 19, 10, 0, 0, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 30, 11, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 14, 11, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 15, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 30, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 5, 11, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 6, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 5, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 5, 11, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 15, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 40, 0, 0, 40, 0, 3, 5 },
{ 15, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 40, 0, 0, 40, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, -40, -40, 0, 0, 3, 4 },
{ 16, 11, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, -40, -40, 0, 0, 3, 4 },
{ 19, 11, 1, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 19, 11, 1, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 6, 11, 1, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 10, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 11, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 6, 11, 1, 0, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 1, 0, 0, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 1, 0, 0, 3, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 1, 0, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 6, 11, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 15, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 26, 11, 1, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 5, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6 },
{ 30, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 2, 19, 0, 216, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 2, 19, 0, 216, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 19, 17, 1, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 2, 19, 0, 226, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 11, 19, 18, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2 },
{ 1, 19, 17, 220, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 1, 19, 17, 230, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0 },
{ 6, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 15, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
{ 16, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4 },
{ 27, 11, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 15, 11, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5 },
{ 4, 10, 2, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 4, 10, 2, 0, 0, 9, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 },
{ 14, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 19, 12, 0, 0, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6 },
{ 13, 11, 0, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
static inline const Properties *qGetProp(ushort ucs2)
{
int index = GET_PROP_INDEX_UCS2(ucs2);
return uc_properties + index;
}
#define MAX_BUFF_SIZE (long)1024*1024
/* Block sizes */
#define HEADER_SIZE 768
#define BIG_BLOCK_SIZE 512
#define PROPERTY_SET_STORAGE_SIZE 128
#define SMALL_BLOCK_SIZE 64
/* PPT Data*/
#define PPT_RECORD_HEADER 8
#define PPT_TEXTCHARATOM 0x0FA0
#define PPT_TEXTBYTEATOM 0x0FA8
/* Special block numbers */
#define END_OF_CHAIN 0xfffffffeUL
#define UNUSED_BLOCK 0xffffffffUL
/* Switch size of Depot use */
#define MIN_SIZE_FOR_BBD_USE 0x1000
#define STREQ(x,y) (*(x) == *(y) && strcmp(x,y) == 0)
#define STRNEQ(x,y,n) (*(x) == *(y) && strncmp(x,y,n) == 0)
#define BIT(x) (1UL << (x))
static ULONG *aulSmallBlockList = NULL;
static size_t tSmallBlockListLen = 0;
static UCHAR **ppAnchor = NULL;
static size_t tNextFree = 0;
static size_t tMaxElements = 0;
#define ELEMENTS_TO_ADD 30
/* Show that a PPS number or index should not be used */
#define PPS_NUMBER_INVALID 0xffffffffUL
/* Macros */
/* Get macros */
#define ucGetByte(i,a) ((unsigned char)(a[i]))
#define usGetWord(i,a) ((unsigned short)\
((unsigned int)(a[(i)+1])<<8|\
(unsigned int)(a[i])))
#define ulGetLong(i,a) ((unsigned long)(a[i])|\
(unsigned long)(a[(i)+1])<<8|\
(unsigned long)(a[(i)+2])<<16|\
(unsigned long)(a[(i)+3])<<24)
#define usGetWordBE(i,a) ((unsigned short)\
((unsigned int)(a[i])<<8|\
(unsigned int)(a[(i)+1])))
#define ulGetLongBE(i,a) ((unsigned long)(a[(i)+3])|\
(unsigned long)(a[(i)+2])<<8|\
(unsigned long)(a[(i)+1])<<16|\
(unsigned long)(a[i])<<24)
void* xmalloc(size_t tSize)
{
void *pvTmp;
if (tSize == 0)
{
tSize = 1;
}
pvTmp = malloc(tSize);
if (pvTmp == NULL)
{
return NULL;
}
return pvTmp;
} /* end of xmalloc */
void* xcalloc(size_t tNmemb, size_t tSize)
{
void *pvTmp;
if (tNmemb == 0 || tSize == 0)
{
tNmemb = 1;
tSize = 1;
}
pvTmp = calloc(tNmemb, tSize);
if (pvTmp == NULL)
{
return NULL;
}
return pvTmp;
} /* end of xcalloc */
void* xrealloc(void *pvArg, size_t tSize)
{
void *pvTmp;
pvTmp = realloc(pvArg, tSize);
return pvTmp;
} /* end of xrealloc */
void* xfree(void *pvArg)
{
if (pvArg != NULL)
{
free(pvArg);
}
return NULL;
} /* end of xfree */
bool bReadBytes(unsigned char *aucBytes, size_t tMemb, long lOffset, FILE *pFile)
{
// printf("[%s]-[%d] wana read [%d] offset[%d]\n",__FUNCTION__,__LINE__,tMemb, lOffset);
if (fseek(pFile, lOffset, SEEK_SET) != 0)
{
return false;
}
if (fread(aucBytes, sizeof(unsigned char), tMemb, pFile) != tMemb)
{
return false;
}
return true;
} /* end of bReadBytes */
#define SIZE_RATIO (BIG_BLOCK_SIZE/SMALL_BLOCK_SIZE)
ULONG ulDepotOffset(ULONG ulIndex, size_t tBlockSize)
{
ULONG ulTmp;
size_t tTmp;
switch (tBlockSize) {
case BIG_BLOCK_SIZE:
return (ulIndex + 1) * BIG_BLOCK_SIZE;
case SMALL_BLOCK_SIZE:
tTmp = (size_t)(ulIndex / SIZE_RATIO);
ulTmp = ulIndex % SIZE_RATIO;
if (aulSmallBlockList == NULL ||
tTmp >= tSmallBlockListLen)
{
return 0;
}
return ((aulSmallBlockList[tTmp] + 1) * SIZE_RATIO +
ulTmp) * SMALL_BLOCK_SIZE;
default:
return 0;
}
} /* end of ulDepotOffset */
bool bReadBuffer(FILE *pFile, ULONG ulStartBlock,
const ULONG *aulBlockDepot, size_t tBlockDepotLen, size_t tBlockSize,
UCHAR *aucBuffer, ULONG ulOffset, size_t tToRead)
{
ULONG ulBegin, ulIndex;
size_t tLen;
for (ulIndex = ulStartBlock;
ulIndex != END_OF_CHAIN && tToRead != 0;
ulIndex = aulBlockDepot[ulIndex])
{
if (ulIndex >= (ULONG)tBlockDepotLen)
{
if (tBlockSize >= BIG_BLOCK_SIZE)
{
qWarning() << "The Big Block Depot is damaged";
} else {
qWarning() << "The Small Block Depot is damaged";
}
}
if (ulOffset >= (ULONG)tBlockSize)
{
ulOffset -= tBlockSize;
continue;
}
ulBegin = ulDepotOffset(ulIndex, tBlockSize) + ulOffset;
tLen = min(tBlockSize - (size_t)ulOffset, tToRead);
ulOffset = 0;
if (!bReadBytes(aucBuffer, tLen, ulBegin, pFile))
{
return false;
}
aucBuffer += tLen;
tToRead -= tLen;
}
return (tToRead == 0);
} /* end of bReadBuffer */
static ULONG ulReadLong(FILE *pFile, ULONG ulOffset)
{
UCHAR aucBytes[4];
if (!bReadBytes(aucBytes, 4, ulOffset, pFile))
{
return -1;
}
return ulGetLong(0, aucBytes);
} /* end of ulReadLong */
static size_t tReadBlockIndices(FILE *pFile, ULONG *aulBlockDepot,
size_t tMaxRec, ULONG ulOffset)
{
size_t tDone;
int iIndex;
UCHAR aucBytes[BIG_BLOCK_SIZE];
/* Read a big block with BBD or SBD indices */
if (!bReadBytes(aucBytes, BIG_BLOCK_SIZE, ulOffset, pFile))
{
return 0;
}
/* Split the big block into indices, an index is four bytes */
tDone = min(tMaxRec, (size_t)BIG_BLOCK_SIZE / 4);
for (iIndex = 0; iIndex < (int)tDone; iIndex++)
{
aulBlockDepot[iIndex] = ulGetLong(4 * iIndex, aucBytes);
}
return tDone;
} /* end of tReadBlockIndices */
static bool bGetSBD(FILE *pFile, const ULONG *aulDepot, size_t tDepotLen,
ULONG *aulSBD, size_t tSBDLen)
{
ULONG ulBegin;
size_t tToGo, tDone;
int iIndex;
tToGo = tSBDLen;
for (iIndex = 0; iIndex < (int)tDepotLen && tToGo != 0; iIndex++)
{
ulBegin = (aulDepot[iIndex] + 1) * BIG_BLOCK_SIZE;
tDone = tReadBlockIndices(pFile, aulSBD, tToGo, ulBegin);
if (tDone == 0) {
return false;
}
aulSBD += tDone;
tToGo -= tDone;
}
return tToGo == 0;
} /* end of bGetSBD */
static void vName2String(char *szName, const UCHAR *aucBytes, size_t tNameSize)
{
char *pcChar;
size_t tIndex;
if (tNameSize < 2)
{
szName[0] = '\0';
return;
}
for (tIndex = 0, pcChar = szName; tIndex < 2 * tNameSize; tIndex += 2, pcChar++)
{
*pcChar = (char)aucBytes[tIndex];
}
szName[tNameSize - 1] = '\0';
} /* end of vName2String */
void vAdd2PropModList(const UCHAR *aucPropMod)
{
size_t tSize, tLen;
if (tNextFree >= tMaxElements)
{
tMaxElements += ELEMENTS_TO_ADD;
tSize = tMaxElements * sizeof(UCHAR **);
ppAnchor = (UCHAR**)xrealloc(ppAnchor, tSize);
}
tLen = 2 + (size_t)usGetWord(0, aucPropMod);
ppAnchor[tNextFree] = (UCHAR*)xmalloc(tLen);
memcpy(ppAnchor[tNextFree], aucPropMod, tLen);
tNextFree++;
} /* end of vAdd2PropModList */
static void vComputePPSlevels(ppsEntryType *atPPSlist, ppsEntryType *pNode,
int iLevel, int iRecursionLevel)
{
if (iRecursionLevel > 25)
{
/* This removes the possibility of an infinite recursion */
return;
}
if (pNode->iLevel <= iLevel)
{
/* Avoid entering a loop */
return;
}
pNode->iLevel = iLevel;
if (pNode->ulDir != PPS_NUMBER_INVALID)
{
vComputePPSlevels(atPPSlist,
&atPPSlist[pNode->ulDir],
iLevel + 1,
iRecursionLevel + 1);
}
if (pNode->ulNext != PPS_NUMBER_INVALID)
{
vComputePPSlevels(atPPSlist,
&atPPSlist[pNode->ulNext],
iLevel,
iRecursionLevel + 1);
}
if (pNode->ulPrevious != PPS_NUMBER_INVALID)
{
vComputePPSlevels(atPPSlist,
&atPPSlist[pNode->ulPrevious],
iLevel,
iRecursionLevel + 1);
}
} /* end of vComputePPSlevels */
bool KBinaryParser::bGetPPS(FILE *pFile,
const ULONG *aulRootList, size_t tRootListLen, ppsInfoType *pPPS)
{
ppsEntryType *atPPSlist;
ULONG ulBegin, ulOffset, ulTmp;
size_t tNbrOfPPS, tNameSize;
int iIndex, iStartBlock, iRootIndex;
bool bTypeFind = false;
UCHAR aucBytes[PROPERTY_SET_STORAGE_SIZE];
(void)memset(pPPS, 0, sizeof(*pPPS));
/* Read and store all the Property Set Storage entries */
tNbrOfPPS = tRootListLen * BIG_BLOCK_SIZE / PROPERTY_SET_STORAGE_SIZE;
atPPSlist = (ppsEntryType*)xcalloc(tNbrOfPPS, sizeof(ppsEntryType));
iRootIndex = 0;
for (iIndex = 0; iIndex < (int)tNbrOfPPS; iIndex++)
{
ulTmp = (ULONG)iIndex * PROPERTY_SET_STORAGE_SIZE;
iStartBlock = (int)(ulTmp / BIG_BLOCK_SIZE);
ulOffset = ulTmp % BIG_BLOCK_SIZE;
ulBegin = (aulRootList[iStartBlock] + 1) * BIG_BLOCK_SIZE +
ulOffset;
if (!bReadBytes(aucBytes, PROPERTY_SET_STORAGE_SIZE,
ulBegin, pFile))
{
atPPSlist = (ppsEntryType*)xfree(atPPSlist);
return false;
}
tNameSize = (size_t)usGetWord(0x40, aucBytes);
tNameSize = (tNameSize + 1) / 2;
vName2String(atPPSlist[iIndex].szName, aucBytes, tNameSize);
atPPSlist[iIndex].ucType = ucGetByte(0x42, aucBytes);
if (atPPSlist[iIndex].ucType == 5)
{
iRootIndex = iIndex;
}
ULONG ulprev = ulGetLong(0x44, aucBytes);
ULONG ulnxt = ulGetLong(0x48, aucBytes);
ULONG uldir = ulGetLong(0x4c, aucBytes);
ULONG ulsb = ulGetLong(0x74, aucBytes); // 116
ULONG ulsize = ulGetLong(0x78, aucBytes); // 120
atPPSlist[iIndex].ulPrevious = ulprev;
atPPSlist[iIndex].ulNext = ulnxt;
atPPSlist[iIndex].ulDir = uldir;
atPPSlist[iIndex].ulSB = ulsb;
atPPSlist[iIndex].ulSize = ulsize;
atPPSlist[iIndex].iLevel = INT_MAX;
if ((atPPSlist[iIndex].ulPrevious >= (ULONG)tNbrOfPPS &&
atPPSlist[iIndex].ulPrevious != PPS_NUMBER_INVALID) ||
(atPPSlist[iIndex].ulNext >= (ULONG)tNbrOfPPS &&
atPPSlist[iIndex].ulNext != PPS_NUMBER_INVALID) ||
(atPPSlist[iIndex].ulDir >= (ULONG)tNbrOfPPS &&
atPPSlist[iIndex].ulDir != PPS_NUMBER_INVALID))
{
atPPSlist = (ppsEntryType*)xfree(atPPSlist);
return false;
}
}
/* Add level information to each entry */
vComputePPSlevels(atPPSlist, &atPPSlist[iRootIndex], 0, 0);
for (iIndex = 0; iIndex < (int)tNbrOfPPS; iIndex++)
{
if (atPPSlist[iIndex].szName[0] == '\0' ||
atPPSlist[iIndex].ulSize == 0)
{
/* This entry can be ignored */
continue;
}
/*if (m_strFileName.endsWith(".wps") && pPPS->tWordDocument.ulSize == 0 &&
STREQ(atPPSlist[iIndex].szName, "Root Entry"))
{
pPPS->tWordDocument.ulSB = 0;//atPPSlist[iIndex].ulSB;
pPPS->tWordDocument.ulSize = atPPSlist[iIndex].ulSize;
pPPS->type = Word;
bTypeFind = true;
}
else */if ( pPPS->tWordDocument.ulSize == 0 &&
STREQ(atPPSlist[iIndex].szName, "WordDocument"))
{
pPPS->tWordDocument.ulSB = atPPSlist[iIndex].ulSB;
pPPS->tWordDocument.ulSize = atPPSlist[iIndex].ulSize;
pPPS->type = Word;
bTypeFind = true;
}
else if (pPPS->tData.ulSize == 0 &&
STREQ(atPPSlist[iIndex].szName, "Data"))
{
pPPS->tData.ulSB = atPPSlist[iIndex].ulSB;
pPPS->tData.ulSize = atPPSlist[iIndex].ulSize;
}
else if (pPPS->t0Table.ulSize == 0 &&
STREQ(atPPSlist[iIndex].szName, "0Table"))
{
pPPS->t0Table.ulSB = atPPSlist[iIndex].ulSB;
pPPS->t0Table.ulSize = atPPSlist[iIndex].ulSize;
}
else if (pPPS->t1Table.ulSize == 0 &&
STREQ(atPPSlist[iIndex].szName, "1Table"))
{
pPPS->t1Table.ulSB = atPPSlist[iIndex].ulSB;
pPPS->t1Table.ulSize = atPPSlist[iIndex].ulSize;
}
else if (pPPS->tSummaryInfo.ulSize == 0 &&
STREQ(atPPSlist[iIndex].szName,
"\005SummaryInformation"))
{
pPPS->tSummaryInfo.ulSB = atPPSlist[iIndex].ulSB;
pPPS->tSummaryInfo.ulSize = atPPSlist[iIndex].ulSize;
}
else if (pPPS->tDocSummaryInfo.ulSize == 0 &&
STREQ(atPPSlist[iIndex].szName,
"\005DocumentSummaryInformation"))
{
pPPS->tDocSummaryInfo.ulSB = atPPSlist[iIndex].ulSB;
pPPS->tDocSummaryInfo.ulSize = atPPSlist[iIndex].ulSize;
}
else if (pPPS->tWorkBook.ulSize == 0 &&
(STREQ(atPPSlist[iIndex].szName, "Book") || STREQ(atPPSlist[iIndex].szName, "Workbook")))
{
pPPS->tWorkBook.ulSB = atPPSlist[iIndex].ulSB;
pPPS->tWorkBook.ulSize = atPPSlist[iIndex].ulSize;
pPPS->type = Excel;
bTypeFind = true;
}
else if (pPPS->tPPTDocument.ulSize == 0 &&
STREQ(atPPSlist[iIndex].szName, "PowerPoint Document"))
{
pPPS->tPPTDocument.ulSB = atPPSlist[iIndex].ulSB;
pPPS->tPPTDocument.ulSize = atPPSlist[iIndex].ulSize;
pPPS->type = Ppt;
bTypeFind = true;
}
else if (pPPS->tCurrentUser.ulSize == 0 &&
STREQ(atPPSlist[iIndex].szName, "Current User"))
{
pPPS->tCurrentUser.ulSB = atPPSlist[iIndex].ulSB;
pPPS->tCurrentUser.ulSize = atPPSlist[iIndex].ulSize;
}
}
/* Free the space for the Property Set Storage entries */
atPPSlist = (ppsEntryType*)xfree(atPPSlist);
return bTypeFind;
}/* end of bGetPPS */
int KBinaryParser::readData(rdPara &readParam, uchar *aucBuffer, ulong ulOffset, size_t tToRead)
{
/* Read the headerblock */
if (!bReadBuffer(readParam.pFile, readParam.ulStBlk,
readParam.ulBBd, readParam.tBBdLen, readParam.usBlkSize,
aucBuffer, ulOffset, tToRead))
return -1;
return 0;
}
bool bCreateSmallBlockList(ULONG ulStartblock, const ULONG *aulBBD, size_t tBBDLen)
{
ULONG ulTmp;
size_t tSize;
int iIndex;
/* Find the length of the small block list */
for (tSmallBlockListLen = 0, ulTmp = ulStartblock;
tSmallBlockListLen < tBBDLen && ulTmp != END_OF_CHAIN;
tSmallBlockListLen++, ulTmp = aulBBD[ulTmp])
{
if (ulTmp >= (ULONG)tBBDLen)
{
}
}
if (tSmallBlockListLen == 0)
{
/* There is no small block list */
aulSmallBlockList = NULL;
return true;
}
/* Create the small block list */
tSize = tSmallBlockListLen * sizeof(ULONG);
aulSmallBlockList = (ULONG*)xmalloc(tSize);
for (iIndex = 0, ulTmp = ulStartblock;
iIndex < (int)tBBDLen && ulTmp != END_OF_CHAIN;
iIndex++, ulTmp = aulBBD[ulTmp])
{
if (ulTmp >= (ULONG)tBBDLen)
{
return false;
}
aulSmallBlockList[iIndex] = ulTmp;
}
return true;
} /* end of bCreateSmallBlockList */
static void vGetBbdList(FILE *pFile, int iNbr, ULONG *aulBbdList, ULONG ulOffset)
{
int iIndex;
for (iIndex = 0; iIndex < iNbr; iIndex++)
{
aulBbdList[iIndex] = ulReadLong(pFile, ulOffset + 4 * (ULONG)iIndex);
}
} /* end of vGetBbdList */
static bool bGetBBD(FILE *pFile, const ULONG *aulDepot, size_t tDepotLen,
ULONG *aulBBD, size_t tBBDLen)
{
ULONG ulBegin;
size_t tToGo, tDone;
int iIndex;
tToGo = tBBDLen;
for (iIndex = 0; iIndex < (int)tDepotLen && tToGo != 0; iIndex++)
{
ulBegin = (aulDepot[iIndex] + 1) * BIG_BLOCK_SIZE;
tDone = tReadBlockIndices(pFile, aulBBD, tToGo, ulBegin);
if (tDone == 0)
{
return false;
}
aulBBD += tDone;
tToGo -= tDone;
}
return tToGo == 0;
} /* end of bGetBBD */
#define REHASH(a) \
if (sl_minus_1 < (int)sizeof(int) * CHAR_BIT) \
hashHaystack -= (a) << sl_minus_1; \
hashHaystack <<= 1
static inline uint foldCase(const ushort *ch, const ushort *start)
{
uint c = *ch;
if (QChar(c).isLowSurrogate() && ch > start && QChar(*(ch - 1)).isHighSurrogate())
c = QChar::surrogateToUcs4(*(ch - 1), c);
return *ch + qGetProp(c)->caseFoldDiff;
}
static inline uint foldCase(uint ch, uint &last)
{
uint c = ch;
if (QChar(c).isLowSurrogate() && QChar(last).isHighSurrogate())
c = QChar::surrogateToUcs4(last, c);
last = ch;
return ch + qGetProp(c)->caseFoldDiff;
}
static inline ushort foldCase(ushort ch)
{
return ch + qGetProp(ch)->caseFoldDiff;
}
static int ucstricmp(const ushort *a, const ushort *ae, const ushort *b, const ushort *be)
{
if (a == b)
return (ae - be);
if (a == 0)
return 1;
if (b == 0)
return -1;
const ushort *e = ae;
if (be - b < ae - a)
e = a + (be - b);
uint alast = 0;
uint blast = 0;
while (a < e) {
qDebug() << hex << alast << blast;
qDebug() << hex << "*a=" << *a << "alast=" << alast << "folded=" << foldCase (*a, alast);
qDebug() << hex << "*b=" << *b << "blast=" << blast << "folded=" << foldCase (*b, blast);
int diff = foldCase(*a, alast) - foldCase(*b, blast);
if ((diff))
return diff;
++a;
++b;
}
if (a == ae) {
if (b == be)
return 0;
return -1;
}
return 1;
}
static int ucstrnicmp(const ushort *a, const ushort *b, int l)
{
return ucstricmp(a, a + l, b, b + l);
}
static int ucstrncmp(const QChar *a, const QChar *b, int l)
{
while (l-- && *a == *b)
a++,b++;
if (l==-1)
return 0;
return a->unicode() - b->unicode();
}
inline uint _Ucs2ToUcs4( ushort lead, ushort trail)
{
unsigned int ucs4 = (trail - 0xDC00); //low 10 bit
ucs4 |= ((lead - 0xD800)) << 10; //high 10 bit
return ucs4 + 0x10000;
}
bool KBinaryParser::read8DocText(FILE *pFile, const ppsInfoType *pPPS,
const ULONG *aulBBD, size_t tBBDLen,
const ULONG *aulSBD, size_t tSBDLen,
const UCHAR *aucHeader,QString &content)
{
const ULONG *aulBlockDepot;
ULONG ulTextOffset, ulBeginTextInfo;
ULONG ulTotLength, ulLen;
long lIndex, lPieces, lOff;
size_t tTextInfoLen, tBlockDepotLen, tBlockSize;
int iType, iLen;
bool bUsesUnicode;
USHORT usPropMod;
ulBeginTextInfo = ulGetLong(0x1a2, aucHeader); /* fcClx */
tTextInfoLen = (size_t)ulGetLong(0x1a6, aucHeader); /* lcbClx */
if (pPPS->tTable.ulSize == 0)
return false;
if (pPPS->tTable.ulSize < MIN_SIZE_FOR_BBD_USE)
{
/* Use the Small Block Depot */
aulBlockDepot = aulSBD;
tBlockDepotLen = tSBDLen;
tBlockSize = SMALL_BLOCK_SIZE;
}
else
{
/* Use the Big Block Depot */
aulBlockDepot = aulBBD;
tBlockDepotLen = tBBDLen;
tBlockSize = BIG_BLOCK_SIZE;
}
UCHAR aucBuffer[tTextInfoLen];
if (!bReadBuffer(pFile, pPPS->tTable.ulSB,
aulBlockDepot, tBlockDepotLen, tBlockSize,
aucBuffer, ulBeginTextInfo, tTextInfoLen))
return false;
lOff = 0;
while (lOff < (long)tTextInfoLen)
{
iType = (int)ucGetByte(lOff, aucBuffer);
lOff++;
if (iType == 0)
{
lOff++;
continue;
}
if (iType == 1)
{
iLen = (int)usGetWord(lOff, aucBuffer);
vAdd2PropModList(aucBuffer + lOff);
lOff += (long)iLen + 2;
continue;
}
if (iType != 2)
return false;
/* Type 2 */
ulLen = ulGetLong(lOff, aucBuffer);
if (ulLen < 4)
return false;
lOff += 4;
lPieces = (long)((ulLen - 4) / 12);
for (lIndex = 0; lIndex < lPieces; lIndex++)
{
ulTextOffset = ulGetLong(lOff + (lPieces + 1) * 4 + lIndex * 8 + 2, aucBuffer);
usPropMod = usGetWord(lOff + (lPieces + 1) * 4 + lIndex * 8 + 6, aucBuffer);
ulTotLength = ulGetLong(lOff + (lIndex + 1) * 4, aucBuffer) - ulGetLong(lOff + lIndex * 4, aucBuffer);
if ((ulTextOffset & BIT(30)) == 0)
{
bUsesUnicode = true;
ulTotLength *= 2;
}
else
{
bUsesUnicode = false;
ulTextOffset &= ~BIT(30);
ulTextOffset /= 2;
}
ulong uOff = 0;
UCHAR* ptaucBytes;
ULONG ulFileOffset = (pPPS->tWordDocument.ulSB + 1) * BIG_BLOCK_SIZE + ulTextOffset;
if (pPPS->tWordDocument.ulSize < MIN_SIZE_FOR_BBD_USE)
ulFileOffset = ulDepotOffset(pPPS->tWordDocument.ulSB, SMALL_BLOCK_SIZE) + ulTextOffset;
while (uOff < ulTotLength)
{
ULONG iAllocSize = MAX_BUFF_SIZE;
if ((ulTotLength - uOff) < MAX_BUFF_SIZE)
iAllocSize = ulTotLength - uOff;
ptaucBytes = (UCHAR*)xmalloc(iAllocSize);
if (!ptaucBytes)
return false;
if (!bReadBytes(ptaucBytes, iAllocSize, ulFileOffset, pFile))
return -1;
ulFileOffset += iAllocSize;
uOff += iAllocSize;
if (bUsesUnicode)
{
ushort* usAucData = (ushort*)ptaucBytes;
content.append(QString::fromUtf16(usAucData).replace("\r",""));
usAucData = (ushort*)xfree((void*)usAucData);
ptaucBytes = NULL;
if(content.length() >= 682666) //20480000/3
break;
}
else
{
//need more format document
ptaucBytes = (UCHAR*)xfree((void*)ptaucBytes);
qWarning()<<"Parser error:"<<m_strFileName;
// content.append(QString::fromStdString((char*)ptaucBytes).replace("\r",""));
// ptaucBytes = (UCHAR*)xfree((void*)ptaucBytes);
}
}
}
break;
}
return false;
}/* end of bGet8DocumentText */
int KBinaryParser:: readSSTRecord(readDataParam &rdParam, ppsInfoType PPS_info, ulong &ulOff, ushort usPartLen, QString &content)
{
UCHAR chSizeData[8];
if (readData(rdParam, chSizeData, ulOff, 8) != 0)
return -1;
ulOff += 8;
usPartLen -= 8;
ulong ulSize = ulGetLong(0x04, chSizeData) + 1;
ulong ulCount = 1;
ulong ulNextOff = 0;
while ((ulCount < ulSize) && (ulOff < PPS_info.tWorkBook.ulSize))
{
UCHAR chHeader[3];
if (readData(rdParam, chHeader, ulOff + ulNextOff, 3) != 0)
break;
ushort uscharlen = usGetWord(0x00, chHeader);
ushort usCharByteLen = uscharlen;
UCHAR ucFlag = ucGetByte(0x02, chHeader);
ulNextOff += 3;
excelRecord eRrd;
if (read8BiffRecord(ucFlag, ulOff, ulNextOff, rdParam, eRrd) != 0)
break;
ushort ustotalLen = uscharlen + eRrd.usRichLen * 4 + eRrd.ulWLen;
if (!eRrd.bUni)
ustotalLen += uscharlen;
UCHAR* chData= (UCHAR*)xmalloc(ustotalLen);
if (ulNextOff < usPartLen && (ulNextOff + ustotalLen) >= usPartLen)
{
ushort usIdf = usPartLen - ulNextOff;
uchar chTemp[MAX_BUFF_SIZE];
memset(chTemp, 0 ,MAX_BUFF_SIZE);
if (readData(rdParam, chTemp, ulOff + ulNextOff, usIdf + 5) != 0)
break;
bool bTemp = false;
ulOff += usPartLen;
ulOff += 4;
memcpy(&usPartLen, chTemp + usIdf + 2, 2);
ushort usOthTxtLen = ustotalLen - usIdf;
bool bAnotherCompare = (usOthTxtLen == 0 || (usCharByteLen - usIdf) == 0) || usCharByteLen < usIdf;
ulong ulNoUse = 0;
bool bUniFlg = false;
if (!bAnotherCompare)
{
uchar chFlag;
memcpy(&chFlag, chTemp + usIdf + 4, 1);
if (chFlag == 0x00 || chFlag == 0x01 || chFlag == 0x05 || chFlag == 0x09 || chFlag == 0x08 || chFlag == 0x04 || chFlag == 0x0c)
{
bTemp = true;
ulOff ++;
ulong ulNextTep = 0;
excelRecord eRTmp;
if (read8BiffRecord(chFlag, ulOff, ulNextTep, rdParam, eRTmp) != 0)
break;
ulOff += ulNextTep;
bUniFlg = eRTmp.bUni;
ulNoUse = eRTmp.usRichLen * 4 + eRTmp.ulWLen;
}
}
memcpy(chData, chTemp, usIdf);
ulNextOff = 0;
ustotalLen = usOthTxtLen + ulNoUse;
if (usOthTxtLen > 0)
{
memset(chTemp, 0 ,MAX_BUFF_SIZE);
if (readData(rdParam, chTemp, ulOff, usOthTxtLen) != 0)
return -1;
memcpy(chData + usIdf , chTemp , usOthTxtLen);
}
if (bTemp)
usPartLen --;
}
else
{
if (readData(rdParam, chData, ulOff + ulNextOff, ustotalLen) != 0)
break;
}
if (eRrd.bUni)
{
qDebug()<<QString((const char*)chData);
chData = (UCHAR*)xfree((void*)chData);
qWarning()<<"Unsupport excel type:"<<m_strFileName;
}
else
{
ushort* usData = (ushort*)chData;
content.append(QString::fromUtf16(usData).replace("\r",""));
usData = (ushort*)xfree((void*)usData);
chData = NULL;
if(content.length() >= 682666) //20480000/3
break;
}
ulNextOff += ustotalLen;
ulCount += 1;
}
if (ulCount >= ulSize)
return -1;
}
int KBinaryParser::read8BiffRecord(uchar ucFlag, ulong ulOff, ulong &ulNext, readDataParam &rdParam, excelRecord &eR)
{
bool butf8 = true;
if (ucFlag & 0x08)
{
uchar chiRich[2];
if (readData(rdParam, chiRich, ulOff + ulNext, 2) != 0)
return -1;
eR.usRichLen = usGetWord(0x00, chiRich);
ulNext += 2;
}
if(ucFlag & 0x04)
{
uchar chExt[4];
if (readData(rdParam, chExt, ulOff + ulNext, 4) != 0)
return -1;
eR.ulWLen = ulGetLong(0x00, chExt);
ulNext += 4;
}
if ((ucFlag & 0x01))
{
butf8 = false;
}
eR.bUni = butf8;
return 0;
}
ULONG KBinaryParser::readPPtRecord(FILE* pFile, ppsInfoType* PPS_info, ULONG* aulBBD, size_t tBBDLen, ULONG ulPos,QString &content)
{
UCHAR aucHeader[PPT_RECORD_HEADER];
ULONG ulOff = ulPos;
/* Read the headerblock */
if (!bReadBuffer(pFile, PPS_info->tPPTDocument.ulSB,
aulBBD, tBBDLen, BIG_BLOCK_SIZE,
aucHeader, ulOff, PPT_RECORD_HEADER))
return -1;
ulOff += PPT_RECORD_HEADER;
USHORT usVersion = usGetWord(0x00, aucHeader);
USHORT usType = usGetWord(0x02, aucHeader);
ULONG ulLen = ulGetLong(0x04, aucHeader);
USHORT usVer = usVersion & 0xF;
if (usVer == 0xF)
{
while (ulOff < ulLen)
{
ulOff = readPPtRecord(pFile, PPS_info, aulBBD, tBBDLen, ulOff,content);
}
}
else
{
if (usType == PPT_TEXTBYTEATOM || usType == PPT_TEXTCHARATOM)
{
long llen = (long)ulLen;
UCHAR* chData = (UCHAR*)xmalloc(llen);
if (!bReadBuffer(pFile, PPS_info->tPPTDocument.ulSB,
aulBBD, tBBDLen, BIG_BLOCK_SIZE,
chData, ulOff, llen))
return -1;
ushort* usData = (ushort*)chData;
content.append(QString::fromUtf16(usData).replace("\r",""));
usData = (ushort*)xfree((void*)usData);
chData = NULL;
}
ulOff += ulLen;
if(content.length() >= 682666) //20480000/3
return ulOff;
}
return ulOff;
}
int KBinaryParser::InitDocOle(FILE* pFile,long lFilesize,QString &content)
{
ppsInfoType PPS_info;
ULONG *aulBBD, *aulSBD;
ULONG *aulRootList, *aulBbdList, *aulSbdList;
ULONG ulBdbListStart, ulAdditionalBBDlist;
ULONG ulRootStartblock, ulSbdStartblock, ulSBLstartblock;
ULONG ulStart, ulTmp;
long lMaxBlock;
size_t tBBDLen, tSBDLen, tNumBbdBlocks, tRootListLen;
int iIndex, iToGo;
bool bSuccess;
USHORT usIdent, usDocStatus;
lMaxBlock = lFilesize / BIG_BLOCK_SIZE - 2;
if (lMaxBlock < 1)
return -1;
tBBDLen = (size_t)(lMaxBlock + 1);
tNumBbdBlocks = (size_t)ulReadLong(pFile, 0x2c);
ulRootStartblock = ulReadLong(pFile, 0x30);
ulSbdStartblock = ulReadLong(pFile, 0x3c);
ulAdditionalBBDlist = ulReadLong(pFile, 0x44);
ulSBLstartblock = ulReadLong(pFile,
(ulRootStartblock + 1) * BIG_BLOCK_SIZE + 0x74);
tSBDLen = (size_t)(ulReadLong(pFile,
(ulRootStartblock + 1) * BIG_BLOCK_SIZE + 0x78) /
SMALL_BLOCK_SIZE);
/* All to be xcalloc-ed pointers to NULL */
aulRootList = NULL;
aulSbdList = NULL;
aulBbdList = NULL;
aulSBD = NULL;
aulBBD = NULL;
aulBbdList = (ULONG*)xcalloc(tNumBbdBlocks, sizeof(ULONG));
aulBBD = (ULONG*)xcalloc(tBBDLen, sizeof(ULONG));
iToGo = (int)tNumBbdBlocks;
vGetBbdList(pFile, min(iToGo, 109), aulBbdList, 0x4c);
ulStart = 109;
iToGo -= 109;
while (ulAdditionalBBDlist != END_OF_CHAIN && iToGo > 0)
{
ulBdbListStart = (ulAdditionalBBDlist + 1) * BIG_BLOCK_SIZE;
vGetBbdList(pFile, min(iToGo, 127),
aulBbdList + ulStart, ulBdbListStart);
ulAdditionalBBDlist = ulReadLong(pFile,
ulBdbListStart + 4 * 127);
ulStart += 127;
iToGo -= 127;
}
if (!bGetBBD(pFile, aulBbdList, tNumBbdBlocks, aulBBD, tBBDLen))
return -1;
aulBbdList = (ULONG*)xfree(aulBbdList);
/* Small Block Depot */
aulSbdList = (unsigned long*)xcalloc(tBBDLen, sizeof(ULONG));
aulSBD = (unsigned long*)xcalloc(tSBDLen, sizeof(ULONG));
for (iIndex = 0, ulTmp = ulSbdStartblock;
iIndex < (int)tBBDLen && ulTmp != END_OF_CHAIN;
iIndex++, ulTmp = aulBBD[ulTmp])
{
if (ulTmp >= (ULONG)tBBDLen)
qWarning("The Big Block Depot is damaged");
aulSbdList[iIndex] = ulTmp;
}
if (!bGetSBD(pFile, aulSbdList, tBBDLen, aulSBD, tSBDLen))
return -1;
aulSbdList = (ULONG*)xfree(aulSbdList);
/* Root list */
for (tRootListLen = 0, ulTmp = ulRootStartblock;
tRootListLen < tBBDLen && ulTmp != END_OF_CHAIN;
tRootListLen++, ulTmp = aulBBD[ulTmp])
{
if (ulTmp >= (ULONG)tBBDLen)
return -1;
}
if (tRootListLen == 0)
return -1;
aulRootList = (ULONG*)xcalloc(tRootListLen, sizeof(ULONG));
for (iIndex = 0, ulTmp = ulRootStartblock;
iIndex < (int)tBBDLen && ulTmp != END_OF_CHAIN;
iIndex++, ulTmp = aulBBD[ulTmp])
{
if (ulTmp >= (ULONG)tBBDLen)
return -1;
aulRootList[iIndex] = ulTmp;
}
bSuccess = bGetPPS(pFile, aulRootList, tRootListLen, &PPS_info);
aulRootList = (ULONG*)xfree(aulRootList);
if (!bSuccess)
return -1;
rdPara readParam;
readParam.pFile = pFile;
readParam.tBBdLen = tBBDLen;
readParam.ulBBd = aulBBD;
readParam.usBlkSize = BIG_BLOCK_SIZE;
if (PPS_info.type == Word)
{
readParam.ulStBlk = PPS_info.tWordDocument.ulSB;
UCHAR aucHeader[HEADER_SIZE];
/* Small block list */
if (!bCreateSmallBlockList(ulSBLstartblock, aulBBD, tBBDLen))
return -1;
if (PPS_info.tWordDocument.ulSize < MIN_SIZE_FOR_BBD_USE)
{
readParam.ulBBd = aulSBD;
readParam.tBBdLen = tSBDLen;
readParam.usBlkSize = SMALL_BLOCK_SIZE;
}
if (readData(readParam, aucHeader, 0, HEADER_SIZE) != 0)
return -1;
usIdent = usGetWord(0x00, aucHeader);
if (usIdent != 0x8098 && /* Word 7 for oriental languages */
usIdent != 0x8099 && /* Word 7 for oriental languages */
usIdent != 0xa5dc && /* Word 6 & 7 */
usIdent != 0xa5ec && /* Word 7 & 97 & 98 */
usIdent != 0xa697 && /* Word 7 for oriental languages */
usIdent != 0xa699) /* Word 7 for oriental languages */
return -1;
/* Get the status flags from the header */
usDocStatus = usGetWord(0x0a, aucHeader);
if (usDocStatus & BIT(9))
PPS_info.tTable = PPS_info.t1Table;
else
PPS_info.tTable = PPS_info.t0Table;
read8DocText(pFile,
&PPS_info,
aulBBD, tBBDLen, aulSBD, tSBDLen,
aucHeader,content);
}
else if (PPS_info.type == Excel)
{
readParam.ulStBlk = PPS_info.tWorkBook.ulSB;
UCHAR aucHeader[4];
ulong ulOff = 0;
if (readData(readParam, aucHeader, 0, 8) != 0)
return -1;
ulOff += 4;
USHORT usType = usGetWord(0x00, aucHeader);
while (ulOff < PPS_info.tWorkBook.ulSize)
{
USHORT usLen = usGetWord(0x02, aucHeader);
ulOff += usLen;
if (readData(readParam, aucHeader, ulOff, 4) != 0)
break;
ulOff += 4;
usType = usGetWord(0x00, aucHeader);
ushort usPartLen = usGetWord(0x02, aucHeader);
if (usType == 0x00FC)
{
if (readSSTRecord(readParam, PPS_info, ulOff, usPartLen,content) != 0)
break;
}
}
}
else if (PPS_info.type == Ppt)
{
ULONG ulOff = 0;
while (ulOff < PPS_info.tPPTDocument.ulSize)
{
ulOff = readPPtRecord(pFile, &PPS_info, aulBBD, tBBDLen, ulOff,content);
}
}
else
{
qWarning()<<"Unsupport doc type:"<<m_strFileName;
}
return 0;
}
long lGetFilesize(const char *szFilename)
{
struct stat tBuffer;
if (stat(szFilename, &tBuffer) != 0)
{
//qWarning() << "Get Filesize error";
return -1;
}
if (!S_ISREG(tBuffer.st_mode)) {
//qWarning() << "It's not a regular file";
return -1;
}
return (long)tBuffer.st_size;
}
KBinaryParser::KBinaryParser(QObject *parent)
:QObject(parent)
,m_strFileName("")
{
}
KBinaryParser::~KBinaryParser()
{}
bool KBinaryParser::RunParser(QString strFile,QString &content)
{
FILE* pFile = fopen(strFile.toLocal8Bit().data(), "rb");
if (!pFile)
{
return false;
}
m_strFileName = strFile;
long lFileSize = lGetFilesize(strFile.toLocal8Bit().data());
if (lFileSize < 0)
{
qWarning() << "ERROR SIZE";
(void)fclose(pFile);
return false;
}
InitDocOle(pFile, lFileSize,content);
fclose(pFile);
return true;
}