/*****************************************************************************/ /* */ /* REGENERATE CYCLES */ /* 09/25/11 (dkc) */ /* */ /* This C program regenerates cycles for the 3n+c sequence given entry */ /* points. The number of even and odd elements in the extended sequences */ /* are counted. */ /* */ /* "jump=0" indicates a no-jump attachment point */ /* "jump=1" indicates a one-jump attachment point */ /* "jump=2" indicates a multiple-jump attachment point */ /* "jump=3" indicates a jumped-over attachment point */ /* */ /* "delta" denotes the number of odd elements in the jump minus j where */ /* t=u(mod 2^j) (for one-jump or multiple-jump attachment points). The */ /* domains of the cycles are also computed. */ /* */ /*****************************************************************************/ #include <stdio.h> #include <math.h> unsigned int euclid(unsigned int a, unsigned int b); unsigned int halbhung(unsigned int l, unsigned int n, unsigned int *M, unsigned int *N, unsigned int *sv, unsigned int *A, unsigned int *B, unsigned int *C, unsigned int *D, unsigned int *L, unsigned int *S, unsigned int m); int main () { int sin[2040+2305+1915+2363+2351]={ 2908,1756,1432,358,3502,1582,1828,718,1342,1402,3556,1042,766,7282,3106,1540, 664,166,2566,9820,3700,1258,18568,4642,2116,772,520,130,424,106,6256,1564, 1378,892,1510,4960,1240,310,2044,4366,3394,1648,412,1054,1690,1132,2260,1366, 4240,1060,574,934,5698,2512,628, 24398,17156,16622,15812,2882,1478,1772,7874,3788,2006,1928,482,794,674,848,212, 416,104,26,386,9332,2126,3062,63872,15968,3992,998,1502,4958,2636,1682,5606, 4094,12734,25454,23264,5816,1454,3014, 448,112,28,382,520,130,1138,1582,970,2608,652,940,1564,670,628,13462,13678, 5506,3406,1654,3472,868,1186,2752,688,172,1402,7630,3238,1570,2344,586,2284, 3148,1102,790,1588,4066,39706,53314,18058,17026,8266,8764,2020,1510,1084,580,3400, 850,1420,25450,17824,4456,1114,3730,3040,760,190, 4514,4580,31388,4184,1046,770,2444,836,1988,9734,4028,2042,2852,4874,3686,1760, 440,110,692,1232,308,14918,5972,2624,656,164,2714,1916,3038,2366,23048,5762, 6656,1664,416,104,26,5846,2570,2390,1274,14594,14108,3920,980,1220,3542,1706, 1904,476,728,182,446,698,10058,6602,4658,48452,17054,8564,61574,23468,4778,3632, 908,548,3416,854,762740,1566662,587876,8128556,1524482,1288076,241892,234590, 676,946,928,232,58,400,100,11758,27310,85630,104014,134716,58630,25822,23584,5896, 1474,67162,25564,29254,10450,75910,33112,8278,5602,5980, 2540,2534,9812,5546,26606,15914,12512,3128,782,1388,21476,4406,26822,37028,7322,9974, 8042,257348,48632,12158,14942,7394,3152,788,15158,80456,20114,7922,3350,4628,3074,1532, 6572,4574,3020,7868,2750,8138,4808,1202,830, 424,106,16000,4000,1000,250,1090,26290,23986,22042,13348,5956,16372,5554,6490,4600, 1150,988,11026,8710,3646,1690,1900,736,184,46,1396,1342,1042,2392,598,604, 1504,376,94,898,4222,1852,1990,1126,802,12112,3028,4012,1132,592,148,1222, 838,694,640,160,40,10,1096,274,1906,3412,7030,3016,754,2440,610,6166, 2692,19126,7552,1888,472,118,2332,8110,4798,2014,2476,844,538,1252, 890,4220,1172,2108,776,194,3080,770,2510,1322,2924,19286,22364,4574,2096,524, 740,1160,290,71288,17822,7064,1766,4184,1046,4454,1820,722,1358, 754,664,166,3148,7108,1714,1024,256,64,16,4,382,1168,292,436, 1474,934,2848,712,178,448,112,28,1102,1552,388,454,2194,1204,1636,688, 172,5476,1408,352,88,22,28762,13516,6016,1504,376,94,1006,2662,3424,856, 214,5434,3982,2776,694,3976,994,2122,1264,316,1042,772,526,1318,16126,10024,2506, 1372,27934,16666,13102,15856,3964,2068,958,1492, -747100,-104392,-26098,-110908,-52402,-235948,-43858,-365386,-204574,-47098,-41278,-314680,-78670,-68626,-93262,-210838, -78682,-51322,-92938,-102010,-139720,-34930,-153490,-142984,-35746,-169096,-42274,-48610,-229006,-47422,-155272,-38818, -185566,-76900,-67954,-49810,-164182,-61186,-72850,-124030,-56638,-201604,-83236,-40114,-132292,-53410,-87610,-71842, -72676,-200938,-112072,-28018,-64036,-91606,-33970,-277876,-79186,-97114,-106834,-132106,-73354,-40306,-381424,-95356, -797926,-298840,-74710,-27634,-129730,-107644,-154948,-105430,-39154,-228856,-57214,-45490,-82570,-48658,-111514,-45946, -180220,-54562,-482998,-180742,-67396,-32242,-472144,-118036,-141826,-117850,-36082,-194314,-108346,-66532,1400,350, 5378,5864,1466,932,800,200,50,1724,7826,2870,2570,1346,25358,120614,87218,38510, 39266,32108,9986,8780,37508,19556,4802,41198,71666,22712,5678,10292,2312,578,4622,55454, 36836,82706,23930,9356,10238,10454,6836,1664,416,104,26,392,98,5702,112058,42404, 6632,1658,1004,1238,1652,692,512,128,32,8,2,2462,3302,2492,3518,4784, 1196,1292,18032,4508,9320,2330,1256,314,500,476,6056,1514,950,1490,1088,272, 68, 676,3766,2902,1486,940,802,1408,352,88,22,400,100,3280,820,2164, 2206,1210,2512,628,3754,23008,5752,1438,922,2596,1648,412,460,4726,1882,3406, 1660,694,1930,13450,35074,20686,8140,7942,4738,3622,4756,9562,9886,4090,12718,5152, 1288,322,1138,6034,3646,1750,1162,8830,3694,1768,442,2026,5674,35806,13810,14842, 343318,97228,50224,12556,4036,2092,964,1228,5914,6808,1702,8848,2212,1558,1108,2260, 4540,1234,13990,31756,8086,2944,736,184,46,586,6160,1540,1390,904,226,1084,3568, 892,550,2812,910,724,730,2434,2326,1324,856,214,21952,5488,1372,640, 160,40,10,406,784,196,1012,20740,6790,4252,1180,604,496,124,1720,430,544, 136,34,976,244,3118,1552,388,1066,3178,7132, 11522,61562,35588,58646,22376,5594,4106,6176,1544,386,9074,398,13718,5528,1382,902, 722,2432,608,152,38,482,3728,932,2216,554,2966,1496,374,524,3362,9254, 3854,6914,83594,54938,31862,12332,2696,674,668,1532,7886,4718,5456,1364,1454,8588, 1994,12962,15026,23612,3992,998,758,3512,878,3026,4376,1094,794,1406,1184,296, 74,1154,13628,2588,4208,1052,2774,1424,356,2768,692,32078,14924,3182,4484,16484, 16634,10316,2318,20324,12656,3164,26084,10004,5204, 1762,1168,292,2566,2404,1900,4348,14176,3544,886,2602,1360,340,448,112,28, 5776,1444,4780,1780,718,33130,12808,3202,1564,2248,562,1630,3076,1294,2572,1684, 700,3058,4462,5590,6136,1534,28756,55000,13750,16498,12940,4600,1150,11260,171730,167104, 41776,10444,3898,1846,8182,9082,3790,21472,5368,1342,12106,4924,6238,7894,5950,92908, 31438,127474,63028,12202,4960,1240,310,10108,14662,9208,2302,25930,14014,31672,7918,8506, 3574,16444,13528,3382,17830,10990,11098,4546,8350,13690,5518,4318,66238,130816,32704,8176, 2044,17956,18928,4732,12772,8722,9892,7612, 13310,8450,3554,1718,8342,13688,3422,2888,722,656,164,416,104,26,4130,1934, 44954,70550,92420,17714,7028,4202,1856,464,116,1448,362,776,194,458,2774,5366, 61424,15356,5282,2366,2294,17030,34208,8552,2138,3260,1880,470,8768,2192,548,488, 122, 5974,2626,4048,1012,3940,7006,4354,5506,6478,6046,197134,32242,191734,72286,31894,12346, 9862,4084,5398,2410,2320,580,4678,2140,976,244,7432,1858,3400,850,4210,23470, 7276,1750,1042,1708,706,2428,8080,2020,87802,65488,16372,11230,6136,1534,3454,11290, 5872,1468, 3020,1916,746,227768,56942,21740,3734,1682,2726,2552,638,626,1376,344,86,5828, 2606,1364,4274,10310,9014,3212,3506,2330,2816,704,176,44,2768,692,3362,2858, 10526,4334,2012,764,530,2390,12902,13388,4226,3344,836,1202, 1192,298,99742,43192,10798,7042,3028,74254,42736,10684,4756,3676,2002,1138,814,1426, 922,1090,796,3178,4504,1126,11254,13720,3430,21010,8266,29236,8554,7906,3352,838, 6214,31018,173092,32842,24682,18112,4528,1132,1792,448,112,28,976,244,712,178, 454,1246,2812,10606,6934,7690,4648,1162,1894,10468,2350,2290, 992,248,62,2498,1382,1748,716,1172,608,152,38,542,5000,1250,3584,896, 224,56,14,1856,464,116,410, 8902,3184,796,538,6148,15382,28504,7126,7012,2944,736,184,46,406,4528, 1132,1648,412,466,1234,1666,5068,5716,4258,2914,8992,2248,562,1288,322,3124,8092, 1906,2044,772,19756,10528,2632,658,1342,892,556,87796,151786,129916,24748,29314,31312, 7828,16192,4048,1012,3238,1582,982, 6146,7058,14294,5750,2546,8162,8738,9224,2306,5246,3626,3014,1520,380,2654,18668, 3890,8090,7190,3086,1550,1118,9920,2480,620,506,1334,890,1496,374,530,1232, 308,2168,542,2852,5096,1274,1658,1820,938,1502,4574,70298,46556,7220,3656,914, 5546,4094,3140,3176,794,7328,1832,458, 976,244,436,472,118,1042,538,592,148,418,7198,23236,6316,2752,688,172, 1024,256,64,16,4,597676,169072,42268,45268,8878,59848,14962,6478,20308,4198,2560, 640,160,40,10,394,2824,706,13408,3352,838,29446,49138,68422,232864,58216,14554, 5848,1462,1798,4588,2266,1240,310,1150, 5414,14774,14324,4292,1196,5846,8618,5054,2834,1454,1796,728,182,2012,1544, 386,536,134,3014,493844,158774,135824,33956,6758,11732,13838,8762,2456,614,3956,1322, 1976,494,1256,314, 712,178,1900,748,532,3766,1804,730,1390,5494,2452,6682,4738,39028,11956,4342, 2020,33652,10444,2350,8626,7246,6016,1504,376,94,1642,1756,5008,1252,3142,1570, 5170,4186,3334, 1004,2846,1460,3002,87788,18356,11498,9068,10532,3944,986,3722,5006,2270,1244,626, 1334,8570,25112,6278,9392,2348,1832,458,2252,2156,80498,46262,48098,49178,65432,16358, 5288,1322,6896,1724,716,788,2198, 2098,1180,31606,65188,12616,3154,1576,394,1882,4876,2896,724,790,16966,11482,205642, 50806,101638,66112,16528,4132,1168,292,448,112,28,1816,454,7090,3052,15508,2302, 2278,3790,11080,2770,1432,358,2170,9784,2446,2734,2284,7354,4528,1132,3070,2710, 5362,2404,844,2224,556,146836,16396,6982,9712,2428,1666,1018,31654,28576,7144,1786, 4552,1138,820,6796,6310,7192,1798,2932,2044,1558,13102,6658,2890,2692,898,730, 1006,4492,8218,7732,4978,2260,7768,1942,3868,2878,2602,1420, 29864,7466,3194,1592,398,5156,7154,2702,8030,8648,2162,1298,3134,3782,5354,2402, 4058,1916,2198,2222,35774,18722,22868,4682,2150,52064,13016,3254,2816,704,176,44, 998,2726,264932,37946,14624,3656,914,2864,716, 970,19030,4090,5326,2392,598,1174,3598,1744,436,2416,604,508,490,6136,1534, 526,592,148,4738,3652,2014,1150,826,2572,2578,9376,2344,586,5494,2236,814, 700,5974,5542,3118,1564,688,172,1060,6460,1606,52792,13198,5344,1336,334, 520,130,778,4192,1048,262,9916,2254,1240,310,5908,6946,4894,2230,1318,5056,1264, 316,454, 3218,3842,8078,14360,3590,1742,3650,6272,1568,392,98,7070,6404,7268, 4946,57164,11114,10970,7160,1790,1196,620,512,128,32,8,2,4904,1226,3560,890,1490, 11156,3014,1526,968,242,2084,500,1130,4622,30920,7730,8402,14666,9230,13652, 6422,2804,1778,3380,1940,1556,1466,1814,1076,1292,638,872,218,1112,278, 1894,2056,514,838,1462,1756,12082,21964,7168,1792,448,112,28,406,2362,1282, 1054,11236,6106,2686,6724,4648,1162,832,208,52,1612,1444,1702,1948,2704,676, 54976,13744,3436,1864,466, 9572,2192,548,500,8984,2246,3782,5078,17732,3722,1742,5612,36290,14006,20954,10280, 2570,1418,1094,2810,10748,4016,1004,16742,30350,13946,20648,5162,5510,6536,1634,1010, 776,194,470, 9910,4114,41500,6532,6220,1564,916,1252,4024,1006,1132,610,2404,2134,1198,16912, 4228,23032,5758,4708,5056,1264,316,87778,75952,18988,3958,1882,3304,826,1492,1414, 928,232,58,1168,292,13420,2914,4348,1834,2026,808,202,1108,1306,3400,850, 5542,2476,862,3106,4510,36586,21574,8488,2122,2188, 1916,758,1082,2504,626,28394,39176,9794,6506,11474,8306,20486,10088,2522,4022,7562, 132398,50048,12512,3128,782,692,2186,22166,6932,83024,20756,57158,19568,4892,1316,1424, 356,2072,518,1664,416,104,26,746,4184,1046,992,248,62,422,2834,2342, 5552,1388,4016,1004,1028,1286,1988,1556,10502,5876,59588,17756,3728,932,1406,926, 4934,3044,8174,3464,866,1484,26936,6734,2924,5066,14876,3188,2828,2042,1514,5156, 2234,4634,5804,9638,8666,9206,2864,716,648242,412334,155024,38756,26162,18674,21302,8522, 99602,43166,16586,36746, 2164,11068,7324,3058,1546,5722,2308,832,208,52,706,664,166,3454,1006,1564, 1438,4408,1102,1618,8800,2200,550,3940,1138,826,1228,4840,1210,3436,3346,1654, 3292,1924,760,190,4426,10960,2740,1084,2464,616,154,742,5704,1426,934,3820, 3508,1192,298,6088,1522,970,3184,796,1222,556,8638,4792,1198,1672,418, 2402,1376,344,86,2336,584,146,1040,260,8960,2240,560,140, 496,124,424,106,3244,3406,1678,1030,1144,286,508, 3548,1202,7580,7742,11630,3974,1892,7094,3062,1550,1256,314,32366,9806,4898,21578, 13142,5330,10010,5378,6446,2516,1712,428,482,2138,5468,1472,368,92,716,536, 134,452,1976,494,842,1478,956,1658,57152,14288,3572,12926,10766,3200,800,200, 50,20486,8084,3278,11468,2552,638,2990,1544,386,2234,2882,4340,15032,3758,1760, 440,110,734,1766,1064,266,1154,2828,932,3854,1742,6284,1580,698,2576,644, 2180, 2638,13060,3562,1738,1054,2800,700,2206,3772,3502,40870,28000,7000,1750,1990, 1996,6130,2428,58618,22384,5596,44596,8764,5608,1402,928,232,58,424,106,442, 568,142,3448,862,988,9766,6640,1660,9880,2470,3700,1096,274,2662,9604,3484,6076, 4474,2080,520,130, 2198,3770,1766,10460,3950,3230,2522,2600,650,1736,434,566,4682,3386,1658,1172, 7496,1874,1106,818,710,2738,1430,3122,1574,8306,3518,6956,4850,2222,2258,1250, 872,218,2276,830,7010,3032,758,22124,8840,2210,1232,308, 2974,4552,1138,2878,1516,688,172,436,1132,616,154,1096,274,14638,7834,5416, 1354,1732,87766,33316,10978,39652,18646,7396,5038,5722,4228,5956,9358,22468,46438,17818, 11032,2758,1438,4882,15082,16636,3046,1546, 572,512,128,32,8,2,3632,908,836,1340,656,164,1058,1610,3932,1142, 8222,3488,872,218,9032,2258,2282,3848,962,2474,4010,5306,10004,5012,6956,246686, 92912,23228,4760,1190,1376,344,86,2660,1760,440,110,446,17780,14540,327632,81908, 47672,11918,4874,3482,11948,6386,4604,1268,4094,1940,6548,23126,17240,4310,10922,11138, 49856,12464,3116,5792,1448,362,2228, 712,178,472,118,3442,1696,424,106,3172,1000,250,4126,3334,4738,2182, 3766,23692,11920,2980,964,586,874,5710,3574,7816,1954,1138,832,208,52,1480, 370,544,136,34,418,562,616,154,1534,1876,2290,1264,316,1102,1630,1930, 1252,640,160,40,10,64246,84604,24808,6202,54958,157702,134986,38674,14908,5206,16438,18478, 13846,31630,24052,66622,38488,9622,63058,20908,43978,13078,30172,28444, 1184,296,74,434,9272,2318,9758,79256,19814,27416,6854,23852,7724,3188,1004,1298, 1076,608,152,38,1892,2858,1478,7976,1994,1154,16346,6536,1634,2162,24338,7556, 5006,11552,2888,722,914,968,242, 5092,3772,1114,2872,718,676,1312,328,82,1204,2440,610,1360,340,3520,880, 220,448,112,28,412,484,2314,38116,25930,140038,459550,172738,98182,32578,19342,7660, 4120,1030,8254,3502,1720,430,568,142,460,2764,187966,70894,26992,6748,1672,418, 1252, 50894,23816,5954,87758,19394,54920,13730,20690,14402,74636,122912,30728,7682,34184,8546,13634, 466460,99872,24968,6242,77708,14978,33812,102446,67454,27080,6770,17090,57140,103310,45062,17306, 10754,18818,41102,100880,25220,21122,45476,21410,30410,70262,26756,49850,29060,23714,33326,36242, 32516,92366,46520,11630,27170,37700,27602,25226,58598,22382,53000,13250,42074,24686,55304,13826, 114650,65510,24974,12014,31058,28142,31130,18530,58760,14690,44990,33434,19826,79244,15266,22634, 71720,17930,63944,15986,16130,33002,16994,50822,19466,17282,38186,18146,18290,39878,15362,35918, 55196,19442,112166,42470,16334,25010,19874,28466,20234,39806,21170,45638,17522,21386,26954,23150, 44180,29546,23762,21986,29870,19682,24302,25706,20978,26030,32462,50012,22706,22922,28622,28676, 29594,17666,36350,36836,30404,106334,30620,24650,25838,32510,38342,14786,32996,40724,27242,36884, 30158,46556,31940,42716,34046,34532,38420,44252, 15196,8350,10822,7108,1714,4126,12976,3244,1858,1336,334,2074,1186,1048,262, 1168,292,5110,8512,2128,532,508,5866,2608,652,1204,634,646,1384,346,538,610, 886,7162,3094,9592,2398,6352,1588,706,1228,1366,1750,1912,478,3922,688,172, 1210,862,4408,1102,2560,640,160,40,10,412,8134,5596,4300,2230,3580,8782, 7420,13408,3352,838,1492,436,490,592,148,724,544,136,34,30490,11842,3442, 2932,958,11212,4174,4504,1126,1654,68074,25936,6484,1624,406,418,832,208,52, 1372,2518,2236,4732,26860,37942,30472,7618,6244,2506,1348,904,226,778,700,3760, 940,15910,9970,5686,21634,55276,29896,7474,4450,1966,3598, 4112,1028,602,7808,1952,488,122,2750,2570,2642,1400,350,1220,638,1382,3110, 4568,1142,9566,6404,1610,1286,2420,1994,2330,120560,30140,9500,5180,2480,620,17018, 8486,9104,2276,836,566,15584,3896,974,9698,4046,7514,80024,20006,18824,4706,2174, 2246,5342,4028,2156,48308,41342,24278,34052,6794,5192,1298,896,224,56,14, 4036,8104,2026,2164,4702,13720,3430,1696,424,106,1084,1714,13396,4792,1198,1054, 1930,2110,5494,2470,1336,334,1018,4198,1984,496,124, 668,536,134,5636,2612,5738,16310,5306,6428,1616,404,32630,9896,2474,28244,166484, 415598,156260,34142,13214,5366,2228,5150,2342,6662,6860,2936,734,686,1748,7076,14528, 3632,908,4808,1202,1688,422,4754,103586,59294,22646,7088,1772,968,242,4268,1400, 350,542,614, 1576,394,1654,6886,18496,4624,1156,628,808,202,592,148,1522,982,2782,2356, 5896,1474,964,9748,10096,2524,1738,2224,556,2188,4726,7558,23734,77038,44362, 20206,12394,151174,165436,31624,7906,3376,844,62074,18178,7228,54946,21016,5254,12268,5758,9154, 3844,1132, 416,104,26,422,1268,650,656,164,3854,5210,2366,6344,1586,9260,5120, 1280,320,80,20,494,5966,6992,1748,740,2888,722,4994,2126,3752,938,764, 144854,359282,230012,148904,37226,14372,4526,5498,2474,1340,92468,17750,20546,6500,7478,4340, 1226,872,218,4508,3860,1136,284,2078,95768,23942,14498,14570,5876,1514,980,596,524, 1178,854, 1132,1714,1996,35260,7024,1756,742,1246,880,220,454,850,1510,2464,616,154, 9016,2254,1258,3022,1546,12634,29428,21976,5494,3814,1732,1552,388,3886,1870,1114, 7558,2848,712,178,50164,35098,245212,46390,29320,7330,3622, 446,1688,422,572,17762,16952,4238,1916,1904,476,3938,5288,1322,1778,5612,1466, 1808,452,2156,818,6236,3914,3236,8528,2132,1634,3344,836,2318,1376,344,86, 3794,9908,7034,11852,2636,908,584,146,9014,3104,776,194,5558,2498,56318,19358, 22784,5696,1424,356,61502,27446,10706,30038,11678,15494,6224,1556,1472,368,92, 418,1678,16096,4024,1006,9796,3568,892,2344,586,634,652,14602,5890,6394, 2812,3154,1612,2758,3946,1894,1990,3460,11722,4810,2218,1246,4432,1108,622,2710, 2560,640,160,40,10,7174,8308,1972,784,196,20296,5074,2152,538,616,154,472, 118,1102,18058,7186,2746,1444,928,232,58,436,496,124,2020,7852,3244,1948, 7312,1828,982,1588,712,178,19948,6646,4774,2818,4450,4042,1930,1138,1198,4882, 2098,3142,3556,1414,22918,58342,25804,6634,2902,2668,1786,1084,1900,1570,2164,820, 568,142, 1046,4250,1922,1136,284,1118,41816,10454,8510,4784,1196,2120,530,614,5708, 6986,7094,7958,20216,5054,3326,5960,1490,974,1586,1010,794,950,2774,3650,1784, 446,1382,74972,22124,11306,76064,19016,4754,2198,44246,29894,62228,39242,27506,10730,6032, 1508,698,3530,6494,15248,3812,1130,1982,2030,2180,824,206,1154,848,212,1550, 1910,3584,896,224,56,14, 1564,3106,9262,13222,5374,1906,6148,26506,18982,7534,7444,4564,2158,4042,11764,4348, 1420,682,1528,382,1042,2854,1486,2134,1216,304,76,430,11926,4888,1222,874, 2044,6910,2230,1252,3130,2800,700,826,1504,376,94,754,2374,1306,1774,20842, 9988,26758,10450,10792,2698,3916,1150,1204,1378,5122,35254,13636,11638,4780,1312,328, 82, 848,212,4520,1130,16892,3584,896,224,56,14,422,1046,1952,488,122, 9008,2252,1316,1412,1496,374,4796,452,12032,3008,752,188,596,2090,3224,806,956, 1100,884,5168,1292,9980,2288,572,524, 15568,3892,61468,85534,49156,9634,4030,3310,2596,904,226,502,29176,7294,5146,17728, 4432,1108,886,11194,11410,4696,1174,4876,97216,24304,6076,2752,688,172,1888,472, 118,11176,2794,1516,508372,72220,57742,58552,14638,9340,3670,9472,2368,592,148,12640, 3160,790,4390,5686,5848,1462,8278,151648,37912,9478,98674,37420,27070,16270,19186, 7612,3184,796,4120,1030,5512,1378,934,2770,1456,364,16054,35980,13288,3322,2914,1510, 3256,814,2506,24532,4180,1318,3094,7306,4054,6808,1702,3418,3688,922,19942, 18808,4702,3370,1678,3514,7036,3022,5254,8260,1966, 7790,35780,32576,8144,2036,800,200,50,746,698,680,170,482,608,152,38,2246, 2150,5792,1448,362,554,626,908,1394,1124,890,752,188,2066,2624,656,164, 6506,2858,1490,2942,3770,1832,458,590,12326,10022,8564,2024,506, -4118,1918,1138,1684,4468,3874,3226,3952,988,604,532,2836,8488,2122,6088,1522, 1846,1252,1468,694,928,232,58,2038,1306,4126,1966,1156,1372,676,8338,11404, 6304,1576,394,8572,2026,22126,8716,6868,21838,8608,2152,538,47938,28012,4672,1168, 292,4936,1234,4114,4828,1324,1108,6574,2884,1858,2092,6412,21694,8554,87088,21772, 22612,26986,165694,62554,62662,1089382,878656,219664,54916,16492,3052,1162,8392,2098,14548,29416, 7354,8194,5656,1414,8668,2044,802,1498, 4790,2216,554,5486,3836,1274,1766,1082,1658,1982,1292,662,668,626,2522,2468, 2696,674,4568,1142,848,212,5870,3998,1814,1100,2054,1190,866,37946,22394,13646, 17426,30170,18020,9596,2084,6842,4898,14834,14510,6152,1538,7076,4154,3386,2954,13052, 2570,2138,2252,842,1562,1928,482,12092,2246,1262,1652,1514,3188,1946,2144,536, 134,470,596,5288,1322,9992,2498,6572,2792,698,1442,28130,151418,86222,293312,73328, 18332,20180,20828,4856,1214,1076,1352,338,10634,7454,4970,3758,2750,1508,2630,1406, 1130,408170,294140,42098,37514,122240,30560,7640,1910,1136,284,55028,16526,13160,3290,2900, 2008,502,1420,1450,964,3466,1720,430,10270,100612,14884,14380,10594,5230,8848,2212, 1990,2170,1234,2044,4708,5770,2584,646,1414,1846,3286,4312,1078,7624,1906,26854, 16156,8812,3796,1132,4438,5068,2476,3016,754,5194,2368,592,148,448,112,28, 9622,19774,29446,17614,16858,6742,8362,3556,6166, 2648,662,6812,11186,4616,1154,854,812,6326,7166,5084,8018,3428,1064,266,3086, 2306,1286,3944,986,1622,8786,3716,1118,1682,1052,1496,374,3896,974,3842,1862, 3572,3644,2078,2222,4376,1094,2924,6434,2834,1484,8432,2108,1646,2348,7784,1946, 4382,3518,3032,758,2792,698,12644,8264,2066,1196,3212,3356,4328,1082,5516,5426, 2456,614,6974,4976,1244,5156,1388,3242,1658,3482,2996,2972,1838, 1264,316,3904,976,244,5254,2392,598,646,664,166,484,7582,22444,4630,2158, 9214,5416,1354,1816,454,592,148,1096,274,6082,2770,87730,114460,16834,17842,26008, 6502,2860,958,5602,6730,4840,1210,1714,5596,2032,508,1636,4462,41980,10384,2596, 8026,48850,847564,159340,30298,32542,23308,4792,1198,1228,652,544,136,34,880,220, 4768,1192,298,1222,2446,1426,12706,12724,15154,22606,7096,1774,1552,388,3256,814, 1282,14974,7846,3364,6988,1732,2734,38950,15028,8608,2152,538,3958,1906,850,20878, 6610,31774,22822,8980,3580,2284, 2636,5756,1502,986,2840,710,1832,458,32282,29246,11390,4694,2060,1898,11858, 6218,26492,5390,2444,2048,512,128,32,8,2,1058,1652,4100,2210,2300,854, 980,3464,866,1544,386,1274,2474,6566,19652,6584,1646,1040,260,1130,6530,4730, 4922,7988,5378,4082,19148,8780,8672,2168,542,626,2642,2330,3974,27950,10904,2726, 13184,3296,824,206,500,1988,1616,404,22118,16718,6692,40388,12416,3104,776,194, 1166,860,584,146,29354,40586,94010,92552,23138,14072,3518,1742,1076,2462,1346,1814, 1250,1760,440,110,464,116,1184,296,74,8996,3842,3218,6350,2804,2816,704,176, 44,746,3122,7232,1808,452,4136,1034,7538,7016,1754,3488,872,218,2192,548, 4406,4274,18716,3932,1160,290,1220,1400,350,554, 1720,430,1300,3136,784,196,460,3730,1822,55732,8578,3640,910,1570,1012,5674, 3928,982,4252,2254,2326,6238,6196,1612,9262,6268,8140,8590,5890,2632,658,670, 4432,1108,1768,442,1072,268,5836,7132,3064,766,1540,712,178,490, 5618,3908,1292,1424,356,1634,1202,1958,2162,2450,10694,7076,4970,2288,572,2588, 4556,2342,2378,1316,12638,19442,9740,3800,950,4586,2144,536,134,1136,284, 442,14344,3586,2734,1450,4708,2386,2404,1738,3484,1078,102790,59626,39670,27838,10864, 2716,934,1006,802,2764,1132,8020,7138,12970,51760,12940,3520,880,220,466,1324, 12394,69832,17458,10882,5812,9082,142216,35554,37558,45790,17596,3724,1456,364,10510,4366, 2062,1198,874,4840,1210,20044,3562,4192,1048,262,16360,4090,13366,46306,47764,22168, 5542,2302,1288,322,6886,2680,670,676,1252,1414,3382,33184,8296,2074,6076,1564, 718,694,5596,1474,1780,11962,159352,39838,15364,4462,2098,2242,2050,2086,1330,1810, 2080,520,130,1276,664,166,790,3346,2944,736,184,46,2005480,501370,2049256,512314, 1652248,413062,112858,110140,21076, 638,9902,3530,3050,2780,1136,284,2936,734,10388,3986,8504,2126,35630,10766,11168, 2792,698,9584,2396,1082,7694,14084,7964,8180,4850,14822,5984,1496,374,566,8630, 3662,7154,19196,37286,14408,3602,8018,4832,1208,302,830,3266,4778,3752,938,1592,398, 48356,39062,15074,17648,4412,2474,2456,614,656,164,3098,2324,1718,1070,1046,818, 16922,6698, 3778,3874,68038,13612,4894,6154,2734,17014,10636,3028,994,2956,1786,1096,274,8746, 3706,1816,454,6568,1642,1042,508,7594,3274,1654,1996,2896,724,562,904, 226,42982,29464,7366,3676,14092,4198,3514,1744,436, 3482,16790,16196,3464,866,752,188,1268,926,41792,10448,2612,5468,2606,2534,10652, 4064,1016,254, 9472,2368,592,148,2488,622,5404,5770,3664,916,2812,1144,286,2002,6850,51754, 47836,21676,4492,1270,904,226,6070,2704,676,3676,2326,1300,1504,376,94,105076, 30622,47080,11770,7690,4474,3586,8014, 14438,8894,3764,27938,12134,3092, 676,556,9712,2428,1756,2836,1150,1720,430,4258,2026,1420,2638,14572,7900,4780, 10198,165688,41422,83350,369838,901846,1933552,483388,137026,51814,69010,26308,5362,2440,610,658, 902,6380,2870,2690,4472,1118,4436,1262,4250,2024,506,620,1250,13598,10568,2642, 1496,374,1286,17426,5654,4256,1064,266,530,7166,8090,3464,866,1874, 1280,320,80,20,434,2060,6194,6254,91952,22988,6086,3584,896,224,56,14,5768,1442, 2168,542,2306,3602,1766,1982,3716,23480,5870,8624,2156,1682,1226,890,764,2366, 4040,1010,1208,302,3878, 778,8806,95326,36178,45268,32146,14800,3700,3136,784,196,1132,2104,526,628,2164, 2650,4282,5506,4174,1996,10906,11248,2812,958,790,976,244,13840,3460,2050,2230, 10924,2290,19732,127078,94342,41362,18688,4672,1168,292,1300,87712,21928,5482,10438,12112, 3028,5416,1354,11878,33982,13174,3262,1654,2590,1402,6052,5956,2752,688,172,3040, 760,190,502,1102,844,1948,796,580,1240,310, 111230,28598,11156,5912,1478,986,1634,5576,1394,2852,3254,1652,1544,386,12086,4964, 14000,3500,1088,272,68,9950,3554,8006,3434,2690,87710,25424,6356,2582,1400,350, 854,752,188,782,3164,14810,9410,23558,9266,12182,5000,1250,5090, 454,1336,334,14566,9274,3910,3280,820,586,652,1264,316,3712,928,232,58, 544,136,34,766,11164,5644,2668,10732,5692,7114,3100,6520,1630,9028,2026,1192,298, 1660,7276,7330,2818,1594,1030,436,514,1108,640,160,40,10,10030,10516, 2404,2074,1210,886,2614,6358,3376,844,1318,1822,5818,11650,2458,1354,940,3790, 6988,3046,2794,1480,370,11944,2986,1552,388,8446,33034,12820,2836,964,892,205858, 58654,77746,34366,70942,93298,320584,80146,53500,144946,62716,501052,124534,208804,155992,38998,72886, 41212,954976,238744,59686,34654,78430,175486,763492,162616,40654,41980,206860,59260,271792,67948,64822, 381496,95374,62326,55606, 10676,5270,10190,8750,4136,1034,1220,662,4358,9560,2390,5342,4088,1022,1658,2270, 2360,590,6572,9722,5672,1418,1490,992,248,62,1118,1712,428,5348,1436,2756, 950,6368,1592,398,704,176,44,3548,1994,8636,3512,878,1616,404,2000,500, 1676,9866,11324,4268,59870,34760,8690,3692,9218,3890,1892,788,2486,8258,3530,7184, 1796,770,722, 1006,1042,4066,4552,1138,38248,9562,10972,2302,29962,17938,20104,5026,6766,2662,1432, 358,568,142,5038,2176,544,136,34,8812,2086,1216,304,76,448,112,28, 1438,2068,1666,3466,3034,11356,2356,1744,436, -14038,-26188,-90010,-29134,-7846,902,7262,3158,2942,1538,1952,488,122,2168,542,638, 674,1466,3302,3674,20258,12482,8108,15452,3332,2024,506,2492,1388,956,614,3104, 776,194,1196,2132,8840,2210,2330,3458,3032,758,974,800,200,50,3188,3410, 7136,1784,446,602,5240,1310,926,782,728,182,812,6704,1676,4832,1208,302, 548, 610,664,166,7900,3310,2950,7270,68020,12706,5200,1300,1852,1642,3316,1228,99754, 112504,28126,8140,28102,51802,48724,167164,55204,10786,4480,1120,280,70,3154,1618,1042, 826,994,808,202,3748,1138,862,2614,3640,910,1600,400,100,454,4720,1180, 1420,233518,132442,97024,24256,6064,1516,16018,6442,8500,2578,1402,1156,652,4444,2338, 1312,328,82,466,2740,15838,5224,1306,1282,916,5056,1264,316,1318,8242, 3526,12436,3586,1780,1012,904,226,520,130,484,526,1384,346, 764,4028,5876,1538,1196,2696,674,6458,2858,1508,10634,4424,1106,2048, 512,128,32,8,2, 2488,622,670,688,172,2866,2704,676,1282,5134,2362,6538,6130,4540,1288,322, 2524,910,778,6268,1612,1180,658,1462,2200,550,1126,2308,12370,8050,5620,41788, 8272,2068,2422,41608,10402,5644,1558,12424,3106,2566,1486,994,7834,20632,5158,2098, 2272,568,142,490, 8174,8924,3368,842,1568,392,98,2162,1946,5096,1274,1796,4286,2984,746,1514, 5672,1418,1892,4754,14798,4928,1232,308,698,4700,1508,11180,2534,1388,932, 10424,2606,1562,3314,5126,2360,590,1748,1586,5564,11396,4640,1160,290,2324,1400,350, 6716,9074,31988,8006,3440,860,4214,2018,3782,1856,464,116,2270,8438,3602,9896, 2474,2486,1370,12854,5258,4052,2234,9128,2282,2378,2432,608,152,38,452,24680, 6170,6230,2774,1478,992,248,62,830,5348,5774,2390,1334,938,1622,1046,16256, 4064,1016,254,1694,3890,8480,2120,530,5522,9722,5360,1340,3242,2918,1532,1910, 1154, 3268,2278,2104,526,6778,2980,1186,1942,2188,3562,1774,5806,8620,3520,880,220, 3700,1132,1414,149500,65152,16288,4072,1018,820,592,148,466,898,8722,3220,1042, 1060,916,610,1846,2134,2296,574,2566,3952,988,4186,2008,502,1378,2170,1252, 5572,2764,6832,1708,1576,394,586,658,952,238,3862,1036,2656,664,166,1330, 1294,8236,3412,1078,1702,1978,1180,129628,165598,106792,26698,10450,3706,1828,1024,256, 64,16,4,4672,1168,292,808,202,514,5158,3436,2062,9694,8134,94258,20896, 5224,1306,928,232,58,460,1456,364,1198,4246,3484,14068,3076,6130,3898,1900, 1630,17038,29032,7258,3160,790,1540,3292,5644,4114,1924,3430,3544,886,1594,16102, 6478,41770,8398,33022,29944,7486,16534,10396,54892,16822,10558,10990,17470,10702,68878,136540, 67912,16978,5542,3598,12610,12700,27190,16390,16696,4174,55468,31402,12214,7966,12862,12934, 7918,13582,31564,17020,9262,17074,23302,16750,24760,6190,42634,16426,6598,13186,26218,10270, 40312,10078,37972,7558,32050,7774,30916,8110,13150,22654,21196,47986,39664,9916,10510,25732, 12646,43066,16588,21124, 4346,3338,4940,8630,9368,2342,11096,2774,9656,2414,2456,614,378566,1087154,408122,87104, 21776,5444,1460,974,1646,2024,506, 1300,15118,7972,5452,1462,988,4306,5722,4318,1984,496,124,1030,826,1564,1924, 11878,4894,2146,19492,10312,2578,4264,1066,1714,2758,1474,13336,3334,1690,2050,7708, 3220,2956,994,2488,622,93850,53890,108106,53500,12832,3208,802,4588,2320,580, 3940,8854,3760,940,616,154,1186,5074,6370,9166,5872,1468,976,244,1168,292, 2212,3022,7000,1750,1096,274, 1268,7016,1754,7628,1844,4748,1520,380,512,128,32,8,2,1130,2726,1538, 1916,800,200,50, 874,1018,8554,3178,1666,1066,1072,268,2098,1228,2614,169606,109342,62608,15652,3376, 844,2452,2542,2008,502,6772,3028,1198,1774,1954,1174,6808,1702,3532,3586,1786, 2206,2344,586,1144,286,1264,316,1192,298,856,214,3856,964,622,11632,2908, 1882,10174,6826,2692,946,796,2596,928,232,58,1624,406,5842,2632,658,688, 172,3694,6814,4936,1234,904,226,526,2278,4018,1948,4882,2272,568,142,2434, 1354,1306,8284,3016,754,724,57136,14284,8122,5026,2326,5338,7768,1942,34528,8632, 2158,7942,9022,6178,2758,17788,6106,10498,4378,10714,14872,3718,4366, 2558,5708,37388,9158,10766,15800,3950,44354,23960,5990,6140,12872,3218,4934,2660,1148, 2228,860,19676,18824,4706,6518,4772,1526,1964,1658,1064,266,542, 664,166,12358,38116,11584,2896,724,6526,2890,5884,1546,5554,3616,904,226,1234, 7390,3214,1648,412,520,130,1180,2914,2746,4420,2350,1324,2188,3958,1888,472, 118,808,202,16624,4156,1222,5878,2428,898,1612,18388,41410,24400,6100,16738,10522, 36424,9106,116686,44200,11050,61444, 794,1556,1604,17702,7082,5978,4472,1118,1262,3518,1766,1106,17162,8516,16454,6614, 2924,992,248,62,776,194,3332,5714,166418,107336,26834,28952,7238,3158,1628,1952, 488,122,1178,1772,506,1394,3284,10622,3764,2168,542,6302,7058,5312,1328,332, 2396,2114,9974,4184,1046,836,10412,1898,9116,7568,1892,2906,2744,686, 2374,2446,4174,5632,1408,352,88,22,2344,586,664,166,1204,670,11140,1030, 1690,1078,1732,1210,898,1834,1132,1516,1642,1060,1672,418,7720,1930,1168,292, 4066,1858,1300,688,172,790,2860,2614,2380,1780,778,736,184,46,2056,514, 922,1354,952,238,6010,2698,1456,364, 1922,1166,1772,10112,2528,632,158,1202,896,224,56,14,1286,3200,800,200, 50,464,116,14702,9374,6386,2840,710,2714,3608,902,2876,854,4994,2318,2258, 1292,2660,944,236,11894,22118,16028,2996,2246,4010,8492,21344,5336,1334,5306,6224, 1556,998,4256,1064,266, 2200,550,652,568,142,820,3736,934,796,892,1804,784,196, 1118,866,1604,1568,392,98,1172,7004,1760,440,110,488,122, 3620,2048,512,128,32,8,2, 1474,1000,250,5842,2638,2602,3580,1978,4384,1096,274,550,4330,3448,862,18424, 4606,4042,3328,832,208,52,790,4258,2044,3070,5392,1348,700,24184,6046,6202, 3418,1744,436,844,4168,1042,838,6064,1516,2764,7174,67996,20242,8038,120898,45784, 11446,11782,146728,36682,26092,13132,11944,2986,2608,652,7120,1780,1222,8218,3094,4408, 1102,1738,11062,11458,4744,1186,892, 2546,3566,5138,8774,6056,1514,1016,254,15506,12698,5210,2402,1460,722,5462,9668, 2144,536,134,1196,1604,1010,3428,2348,1784,446,6758,4922,2294,10718,31166,65078, 149156,579752,144938,54800,13700,6704,1676,1592,398,4778,2240,560,140,1160,290,866, 1028,12260,5858,2432,608,152,38,1142,3104,776,194,4616,1154,1280,320,80, 20,452,848,212,488,122,494,25946,10178,30086,18044,317312,79328,19832,4958,7886, 25874,26756,6236,4760,1190,1790, 9268,7582,3292,1066,2722,12442,42784,10696,2674,2626,2398,1348,11092,29662,11572,13462, 7306,8296,2074,5152,1288,322,1426,1924,1696,424,106,2668,6772,12346,29356,8224, 2056,514,10618,39562,35512,8878,3778,2884,13696,3424,856,214, 698,3464,866,2600,650,1490,5540,7160,1790,4028,2480,620,566,662,23012,109490, 616442,589172,91904,22976,5744,1436,3560,890,14738,17180,2852,4544,1136,284,1070,1088, 272,68,21554,46850,41666,37292,7442,28346,62402,54788,25250,63176,15794,27386,26630,10436, 5354,4136,1034,1706,2084, 5836,6808,1702,3052,1984,496,124,562,946,1054,3028,1018,832,208,52, 460,17014,10696,2674,1540,1918,3268,5212,8614,7912,1978,1192,298,5392,1348,2944, 736,184,46,4648,1162,886,1624,406,1354,958,3286,2974,8752,2188,1756,88402,52048, 13012,2890,1534,20686,52492,23008,5752,1438,3352,838,1648,412,71392,17848,4462,39370, 15214,23266,40774,18496,4624,1156,1876,802,3406,8356,3334,2476,1822,3676,1972,820, 604,13126,6832,1708,1606,9748,2278,252100,360130,153562,58036,11332,6484,1666, 3524,1112,278,2378,554,8768,2192,548,938,18092,9776,2444,3722,3206,7724,5402, 3584,896,224,56,14,1136,284,1208,302,1298,2072,518,4322,1514,5474,2504, 626,686,1454,1946,7886,5564,3908,1184,296,74,1778,1118,2174,2912,728,182, 2552,638,902,4808,1202,1046,3026,1586,1262,1838,2162,1478,4604,3854,3296,824, 206,1244,1622,3512,878,6752,1688,422,2126,2324,2984,746,3632,908,2702,2648, 662,2882,1532,1964,2972,2012,1694,2396,1802,5456,1364,1418,2234,3944,986,2936, 734,3368,842,4016,1004,1022,3044,2612,4592,1148,1238,3188,3956,1346,956,1562, 1724,1742,2108,2264,566,2066,1226,2228,2498,1388, 1900,808,202,1384,346,1324,700,3646,1816,454,622,3760,940,628,1306,1864, 466,2356,1792,448,112,28, 28808,7202,4340,8360,2090,3914,43064,10766,4490,72602,162908,30998,59096,14774,7874,7388, 1838,1142,7094,4634,14768,3692,2420,5210,3338,4178,3482,41606,12494,5138,4022,10010, 24974,9818,28478,11132,2540, 1870,2092,27952,6988,18736,4684,3550,3130,6304,1576,394,904,226,538,5668, 1516,4642,2194,1276,1492,6090982,32953966,79191520,19797880,4949470,2785210,33956278,36265678,15300886,21790768,5447692, 2300398,2187646,1231684,231394,87226,64570,50044,15208,3802,4786,2248,562,664,166,706,718,1606, 3508,3814,17278,10852,2488,622,11608,2902,24448,6112,1528,382,1348,1384,346,5182, 4048,1012,3238,2542,6478,4036,1210,9592,2398,2482,25432,6358,41740,19762,7864,1966, 3652,1138,880,220,12622,6628,1696,424,106, 1184,296,74,482,1850,1148,2642,1538,10004,2330,1328,332,1376,344,86, 458,626,2228,872,218,536,134,2498,20480,5120,1280,320,80,20,7718, 4562,2078,20840,5210,2408,602,680,170,518,2510,75614,49922,512456,128114,42566,67172, 36878,56546,25502,27770,10868,2492,2600,650,698,716,2876,4928,1232,308,512,128, 32,8,2,17666,37772,20210,43844,36824,9206,6314,2822,50486,29534,20762,8240,2060,9800,2450, 1484,2672,668, 652,1786,18166,7780,4330,7336,1834,6016,1504,376,94,490,2872,718,724,7672, 1918,1174,1126,3640,910,796,604,568,142,508,550,5368,1342,958,814,760, 190,526, 18020,14942,5000,1250,9110,3872,968,242,57044,5468,4664,1166,2144,536,134,506, 1424,356,2192,548,2396,3692,1148,100784,25196,5180,1526,1028,6986,6842,4988,1580, 752,188,824,206,1760,440,110,11522,27884,5684,2738,3812,5384,1346,13304,3326, 11468,2606,3902,2894,55814,21386,42806,16508,2552,638,6176,1544,386,18392,4598,2180, 10982,4574,2084,3044, 3268,1258,928,232,58,478,4312,1078,3106,1672,418,916,628,574,11116,4912, 1228,1486,3022,3994,1954,1348,988,2584,646,1504,376,94,3826,4204,3754,1864, 466,3232,808,202,532,556,1528,382,6742,4156,8254,32986,12826,5266,32182,17548, 6076,7552,1888,472,118,2806,8386,2824,706,1204,682,712,178,1162,892,66202, 25282,6388,1654,5662,10828,4186,2026,1216,304,76,1186,1132,2782,7228,9586,5698, 2068,844,1378, 4220,2330,4418,2114,1250,926,1664,416,104,26,2960,740,596,884,1844,36758, 58688,14672,3668,1316,704,176,44,5354,2306,1322,1172,2654,2636,3284,1262,2612, 3770,3248,812,11762,4868,1370,6866,3032,758,19052,21404,114092,75914,30464,7616,1904, 476,902,2450,1376,344,86,3824,956,1412,722,728,182,15488,3872,968, 242,548,560,140,7598,4520,1130,1118,1772,7712,1928,482,638,1502,1988,830, 1610,1586,1052,2762,1640,410,6140,2870,1209698,454094,980198,829214,467576,116894,66896,16724, 3152,788,2168,542,1448,362,14138,7622,76124,17372,10574, 466,5992,1498,1948,1264,316,1726,7360,1840,460,544,136,34,2110,4282, 8170,5740,1534,6334,5674,4336,1084,1888,472,118,502,646,700,3184,796,3244, 1066,1744,436,1408,352,88,22,3568,892,12316,3994,10606,3784,946,50452,15334,6208, 1552,388,2338,2218,2392,598,682,1528,382,23488,5872,1468,26908,13576,3394,5038, 2132,11924,38732,14882,9518,4028,1214,914,4982,2204,872,218,2246,13166,5396,7142, 4676,2462,1382, 6058,6790,12064,3016,754,742,2686,10462,5734,16942,10678,13738,11650,4828,2506,2722, 1480,370,598,3532,7516,3262,4504,1126,8194,14026,7582,6232,1558,3496,874,36922, 11188,2242,1300,1306,23476,3538,1786,3046,27136,6784,1696,424,106,5320,1330,958, 85468,25186,9904,2476,3226,2764,8680,2170,1414,4600,1150,10138,5260,7060,3154,1642, 2684,5438,10622,47234,14090,5744,1436,2792,698,722,1940,824,206,2360,590,2468, 2102,2210,2756,4160,1040,260,842,776,194,860,2372,2432,608,152,38,1172, 680,170,524,1298,2216,554,668,7976,1994,1208,302,3728,932,3242,1676,1622, 21314,6800,1700, -32492,-160316,-99530,-39320,-9830,-31094,-25526,-51506,-18854,-27638,-33470,-155234,-57752,-14438,-69812,-17894, -27818,-37196,-40538,-40652,-88676,-16166,-24614,-109178,-29900,-24524,-58058,-23366,-35678,-125378,-46556,-11942, -26282,-65438,-63380,-82934,-112202,-33788,-54746,-62036,-37322,-25022,-80018,-29546,-55340,-21158,-39404,-38294, -30122,574,676,1342,964,1528,382,604,1546,7174,2824,706,38194,22636,170596,49132, 12034,8008,2002,2278,3988,3364,2098,2332,898,3016,754,1576,394,3004, 1024,256,64,16,4,2656,664,166,3628,4114,3466,6904,1726,1108,2494,1396,5878,4150, 6298,109360,27340,21070,8362,9244,2194,2386,5896,1474,8758,11242,11674,1208260,256192,64048, 16012,3058,2872,718,730,7462,4420,77446,22588,4696,1174,13132,8332,1978,5146,25036, 3706,8434,2086,2500,1852,808,202,2230,4822,7576,1894,2800,700,592,148,802, 1708,10978,5956,6544,1636,1612,2314,16810,16372,14104,3526,1798,1312,328,82,1198, 910,3934,1936,484,1288,322,4438,58606,22438,113896,28474,52450,23452,4858,9892,80848, 20212,16534,24850,15130,52660,56062,21484,6202,14194,9136,2284,2152,538,7054,3106,1690, 22042,54718,20980,17020,3652,2032,508,556,3142,844,15166,6148,6094,2746,3544,886, 2044,8062,3484,1114,6604,1762,2068,7354,12682,15652,5554,4276,40438,18730,17992,4498, 3682,2878,1540,2662,2518,7300, 470,638,4106,3464,866,2924,1010,5030,2348,902,800,200,50,2954,2816,704, 176,44,1118,3680,920,230,548,10376,2594,4382,9080,2270,14912,3728,932,6974, 4616,1154,4346,50714,52280,13070,4484,5750,2618,2432,608,152,38,476, 15478,9862,29788,22606,49012,9652,2272,568,142,11734,7756,2686,4462,1582,5758,7054, 67966,59542,34648,8662,6028,6064,1516,1798,17674,7090,3694,68452,23956,4954,2320,580, 18400,4600,1150,3166,24316,12454,42910,22828,7576,1894,2128,532,562,10066,3640, 910,28600,7150,5596,11632,2908,29230,40750,55330,25018,9844,2308,3706,1852,17260,6010,2716, 8674,12400,3100,14020,13192,3298,4606,6082,9790,10456,2614,2626,11590,17428,3730,1858, 5278,3874,3310,2398,5902,20272,5068,3910,4930,22768,5692,7918,13300,2956,8818,4828, 464,116,3596,27086,16394,20498,8150,9338,2744,686,1544,386,608,152, 38,3812,1178,1142,3164,2048,512,128,32,8,2, -9554,-5246,-12956,472,118,508,1126,886,796,4456,1114,1786,2164,1768,442,1408, 352,88,22,9724,2098,7492,10732,2476,928,232,58,1192,298,1558,1048,262, 562,3592,898,25462,10012,19036,74524,18568,4642,7696,1924,7942,3442,4294,2074,2326, 1336,334,1822,1324,712,178,478,946,5914,4486,2146,6484,4198,2038,1228,694, 724,1486,2308,35698,24706,90802,305374,86698,29794,41476,68692,9712,2428,16204,3502,8266, 18472,4618,5386,5872,1468,1018,1732,4864,1216,304,76,1984,496,124,2092,856, 214,544,136,34,3322,3028,1972,1714,53014,20344,5086,2242,10372,255232,63808,15952, 3988,6052,4756,71524,43564,8632,2158,2908,6322,22846,11488,2872,718,1072,268,514, 13648,3412,5062,2362,2488,622,2998,1588,1606,1066,5242,4108,1234,3244, 2228,5186,3524,3584,896,224,56,14,470,4496,1124,1478,5630,2576,644,1472, 368,92,482,2774,2606,1442,6008,1502,1028,17174,8930,8120,2030,1226,3242,4172, 1400,350,596,6104,1526,16958,6824,1706,3200,800,200,50,1190,1148,680,170, 3800,950,5204,3290,7940,25130,13982,5708,1616,404,2378,4214,4748,2828,11342,4718, 2234,10370, 2212,880,220,1384,346,3214,17416,4354,2098,1252,700,1360,340,862,1648,412, 2602,1546,1402,2278,4132,1240,310,6724,1726,2134,5326,5842,2656,664,166,2350, 592,148,8704,2176,544,136,34,478,1432,358,2512,628,13042,5356,21004,13618, 5572,1510,3484,3574,19846,51760,12940,5128,1282,946,820,8890,6274,2818,1522,1036, 8236,8992,2248,562,676,1132,7210,2842,18388,3400,850,784,196,502,11098,10018, 4222,3538,1792,448,112,28,4186,5644,6328,1582,1942,6238,4672,1168,292,520, 130,514,658,712,178,532, 488,122,512,128,32,8,2,3068,3098,1628,7694,13526,8774,5042,2234,1304, 326,1478,1964,1718,2132,866,9152,2288,572,2456,614,6176,1544,386,1856,464, 116,854,1646,39392,9848,2462,4292,16928,4232,1058,140768,35192,8798,9638,8576,2144, 536,134,1514,1034, 1138,1822,1150,898,1672,418,1402,3400,850,6784,1696,424,106,33028,10456,2614, 1552,388,1276,706,1564,760,190,538,2470,2734,1492,11824,2956,3940,5884,1570, 2050,2320,580,1330,1894,2218,10366,4354,3616,904,226,1294,952,238,556, -100984,-25246,-390460,-1841296,-460324,-95404,4874,15656,3914,2996,2012,2120,530,4172,1250,13280, 3320,830,1052,3344,836,6962,8096,2024,506,1454,2186,2168,542,1196,692,1364, 34340,12050,11798,4892,4550,2174,1430,1004,656,164,14252,3140,11462,4766,16442,10418, 11012,184838,69782,26636,5462,2516,18626,27374,13244,6746,4964,4316,2606,2564,5522,21218, 70142,20546,29804,6056,1514,3050,3302,1706,2696,674,7448,1862,1166,4508,7124,4022, 1976,494,1904,476,1796,20030,6452,2984,746,4496,1124, 27184,6796,3082,1624,406,5566,6922,3064,766,4774,3856,964,2152,538,670,1408, 352,88,22,31990,14842,6034,5944,1486,3478,6094,7366,5314,2314,1336,334,2506, 820,622,2530,2638,4450,14530,4906,2308,1144,286,6718,15016,3754,1876, 542,1478,3476,1310,1910,6230,41708,30206,18164,8768,2192,548,572,1334,12404, 25670,23888,5972,10874,9902,12542,8228,2012,74612,40412,35552,8888,2222,13682,5600,1400, 350,1370,3272,818,776,194,3062,7688,1922,1190,2894,2570,1544,386,614,10766,12170, 4244,1418,1220,698,7544,1886,2234,5810,2648,662,4226,2054,3962,5528,1382,7958, 21296,5324,15140,3308,5906,2684,1928,482,650,1004,4448,1112,278,6716, 514,24940,5146,5752,1438,3934,8740,11338,7552,1888,472,118,2536,634,1618,22024, 5506,14302,28342,11098,20764,3742,5392,1348,2800,700,5338,9280,2320,580,2476,934, 820,2152,538,2836,1972,6508,1690,13528,3382,1738,15220,9928,2482,6958,2554,2428, 2068,1756, 15290,18206,7298,5282,4148,3986,3842,3338,37160,9290,31664,7916,3356,1100,48266,97838, 15326,6218,36542,14174,5786,7118,3140,2060, 472,118,2338,1348,724,3856,964,652,256354,96604,28348,9076,3082,4984,1246, 3292,2104,526,1474,1024,256,64,16,4,1258,3244,5236,1642,2272,568,142,4768,1192, 298,1834,2482,1402,20536,5134,4066,1996,5092,1426,1006,1744,436,886,2986,2968, 742,1264,316,7036,4372,3784,946,826,8656,2164,1318,4594,2194,1294,1906, 1186,916,5722,2434,1384,346,922,1084,9034,6826,4588,4174,3526,19834,30526, 11146,12526,8224,2056,514,664,166,1462,3472,868,634,8872,2218,2644,2266, 13850,5666,2420,926,3644,29552,7388,5360,1340,3986,8816,2204,2852,6386,4406,3806, 8654, 9706,8716,5710,2614,6112,1528,382,616,154,4036,5224,1306,5494,6520,1630,1084, 676,1372,730,126994,72616,18154,38380,9370,15700,17212,3700,35140,13630,5584,1396,11812, 4504,1126,1144,286,580,2494,1408,352,88,22,1522,2038,17842,11218,7492,4882, 3928,982,2128,532,2470,8878,3802,25744,6436,2992,748,3280,820,4360,1090, 1022,14726,5996,1598,21542,8552,2138,2264,566,686,4916,6086,2756,5024,1256,314, 3884,1202,13268,2426,4052,2324,1838,1346,3386,4244,2378,2522,3332,3656,914,5006, 5348,11324,4106,3494,1784,446, 23230,16864,4216,1054,3142,3988,1222,15892,3454,10972,12976,3244,2098,1420,5632,1408, 352,88,22,1198,29440,7360,1840,460,2140,19828,4192,1048,262,1474,2230,2440, 610,8056,2014,3952,988,7192,1798,2122,1270,1900,1720,430,11080,2770,6658,4528, 1132,1504,376,94,2332,2284,1828,21772,5956,35296,8824,2206,4114,3040,760,190, 880,220,37162,14410,5878,4492,28414,31852,10144,2536,634,712,178,15454,15292,8704, 2176,544,136,34,5086,6544,1636,1060,6112,1528,382,6598,7768,1942,2278,3058, 1690,1108,682,730,748,1396,736,184,46,28576,7144,1786,1144,286,2494,3742,5410, 8116,1996,7570,7246,13024,3256,814, 6866,3050,14798,9512,2378,2726,21032,5258,5048,1262,1898,1790,264770,99764,11528,2882, 1556,5924,1586,1070,4274,2078,32696,8174,5786,8396,8840,2210,1304,326,902,10700, 16424,4106,38780,27224,6806,8000,2000,500,542,17990,26630,21962,10988,5696,1424,356, 1388,9422,6488,1622,3626,5354,11432,2858,4868, 1174,916,4894,36958,8896,2224,556,580,87622,33334,12976,3244,1084,3922,17962,13894, 5686,2608,652,598,700,13264,3316,2122,3634,5326,96856,24214,9556,3442,5164,1444, 15046,6118,2770,12994,18862,9682,12922,8458,4936,1234,9268,3796,36412,18934,7576,1894, 1186, 1898,3866,48254,18572,3446,3182,1670,1304,326,926,824,206,554,2732,8366, 3614,1832,458,13910,18284,4256,1064,266,3992,998,22958,9086,3884,4298,4148,49676, 7820,1934,1202,1868,2426,6944,1736,434,1436,746,2894,1562,22010,31730,19040,4760, 1190,6242,4004,2318,1346,7082,8240,2060,1124,1508,1616,404,2204,890,5000,1250,354236, 66896,16724,9320,2330,87620,28466,17204,20186,44720,11180,13886,5684,211982,79970,35108,11066, 80140,36076,47668,9316,2224,556,150124,98878,56812,20980,27652,5662,4378,3160,790,28570, 7510,18712,4678,6214,30106,17428,3286,12532,124552,31138,12154,45148,25708,20146,8032,2008, 502,3862,13990,20344,5086,4054,25732,5302,10588,17050,26464,6616,1654,36346,39586,15322, 8194,3550,3190,4630,158872,39718,62644,14944,3736,934,35914,10936,2734,6358,18364,33754, 15970,6466,2902,16984,4246,40774,36670,21820,7330,3226,32944,8236,30874,27166,16474,8680, 2170,8374,14476,8518,9454,22738,9004,11908,2710,32026,15934,10156,9670,10426,10462,7078, 11398,11884,27112,6778,73264,18316,9994,3646,3244,11614,7726,18850,7546,17752,4438,20308, 13342,8698,18904,4726,13378,5494,20632,5158,14314,14530,5926,26500,5446,6862,5590,16906, 23224,5806,5878,15772,10318,16258,6574,6310,6454,12046,6886,6958,11290,17716,7534,7654, 7750,8806,7930,12586,12748,8398,8506,8302,9370,9388,14044,9166,9694,6646,9274,9964, 10666,10828,10138,15988,10732,12124,12610,5206,11434,11596,14068,12892,14836, 914,1094,11234,4478,6050,4286,5888,1472,368,92,3944,986,848,212,518,4064, 1016,254,2486,2594,2828,21278,28676,12152,3038,8660,2102,2378,1370,992,248,62, 2324,4916,1400,350,37316,7682,7940,18038,11342,49250,121556,23270,11192,2798,14270,14312, 3578,1820,12530,3290,1712,428,1316,1022,3134, 12286,5086,2386,2266,4186,5806,2656,664,166,11152,2788,7516,1888,472,118, 1132,24274,14266,11212,8296,2074,4024,1006,856,214,898,1702,3598,1828,1762,2188, 6154,55306,5223508,2482522,2096902,886366,332866,188434,80872,20218,271324,51352,12838,11206,5326,2476, 1186,1864,466,10918,7972,3058,31618,18982,15094,5356,1672,418,1432,358,180766,68266,102772, 34702,13492,7966,3466,11986,8434,18928,4732,1366,1222,2104,526,676,1618,1996,8002, 5698,4402,7192,1798,2494,1414,2332,916,5866,11314,7756,5536,1384,346,2566,2818, 2782,1522,57862,26146,15904,3976,994,1756,808,202,18442,107146,315064,78766,30016,7504, 1876,4276,4078,2008,502,6058,50194,22552,5638,4114,3112,778,21904,5476,19468,5842, 5518,2548,9754,10504,2626,2674,6832,1708,1078,6778, 884,1448,362,1532,12680,3170,7910,3446,1772,812,632,158,2216,554,3014,1610, 5474,10826,11414,4760,1190,926,1100,686,21626,13364,4958,2234,2456,614,710,746, 1694,1316,2834,4670,5912,1478,1034,2882,11798,4904,1226,10604,2468,3320,830,6614, 2960,740,5096,1274,1916,1556,37334,14480,3620,3806,1910,1196,704,176,44,488, 122,1268,1028,17630,5798,2654,1586,20060,26972,27350,10736,2684,18434,46784,11696,2924, 922,826,790,1714,2464,616,154,538,682,736,184,46,2320,580,4966,3994, 1978,1222,1888,472,118,2626,4030,13984,3496,874,808,202,556,1498,1042,10888, 2722,1606,2104,526,2524,3346,6136,1534,25954,8140,3490,1822,6208,1552,388,26824, 6706,4570,2194,4480,1120,280,70,1240,310,11554,4090,2014,8458,3652,1354,988, 2698,1492,760,190,6694,34288,8572,14470,9340,64042,24496,6124,7060,1804,1708,1786, 1150,3118,4912,1228,1546,1060,5056,1264,316,4102,3508,1138,2146,1444,5188,1570, 1282,1516,7396,2956,2032,508,66190,33538,37150,50920,12730,5254,4156,6532,13012,2920, 730,754, 2726,4586,2132,1142,6704,1676,1916,1742,13172,18482,7412,3308,13796,3068,2066,1256, 314,1898,1376,344,86,9068,14954,5048,1262,8006,7262,5288,1322,1214,1886,2264, 566,2444,2708,6638,4184,1046,5234,3356,4166,4832,1208,302, 1036,676,4342,2110,26374,10372,6664,1666,3694,1882,2116,5782,2650,2170,62860,12268, 2782,2920,730,4702,3730,6958,2800,700,1894,1192,298,1372,2560,640,160,40,10, 1210,32026,14896,3724,1180,3088,772,2614,1462,1030,868,39550,49756,7840,1960,490, 1480,370,73030,27868,4762,3394,5152,1288,322, 3434,113366,13352,3338,8624,2156,1148,698,2882,2828,21794,13466,10724,3650,3260,1094, 3800,950,1112,278,1364,218828,125192,31298,18812,4010,8708,3656,914,2840,710,12926, 5330,9140,15098,15032,3758,1892,1850,3854,1928,482,1478,2822,6350,2864,716,11576, 2894,1568,392,98,1262,956,662,1256,314,2558,1442,2018,2342,2738,2390,56990, 21854,8678,9956,3488,872,218,23846,11810,7850,87122,131024,32756,16112,4028,1238,21830, 16922,10166,3704,926,830,794,4250,4892,1400,350,614,3926,5582,2576,644,1388, 1040,260,1280,320,80,20, 11554,4816,1204,2350,2530,1432,358,11062,1054,1834,31312,7828,8038,32932,6658,2980, 1042,874,3664,916,1942,3934,2770,1522,2242,1324,2854,11338,8560,2140,1810,1162, 4996,1420,4102,9118,5236,1582,2098,1270,766,3052,7102,26128,6532,1708,3016,754, 3778,1900,2806,6454,5200,1300,2026,385606,554662,1059364,199114,64798,28726,43030,38602,104860, 30700,14254,9226,5644,7498, 24344,6086,4634,2222,22238,94412,27764,5690,2618,1466,1034,872,218,566,9242,3950, 4016,1004,1604,20780,25364,5240,1310,7220,1838,11654,7766,22886,14084,2828,2006,3842, 1928,482,944,236,1442,1424,356,3230,12518,8252,28196,18422,9164,3788,2276,7868, 21266,20402,16028,9062,6308,3086,4904,1226, 7990,5128,1282,13732,5074,4066,17770,17296,4324,2428,940,3418,15340,37210,66118,19444, 35440,8860,2146,6700,26944,6736,1684, 4658,9842,12788,4094,3488,872,218,5984,1496,374,626,4040,1010,205700,76928, 19232,4808,1202,5468,1700,9872,2468,48236,9530,40946,145112,36278,14090,9140,128426,73454, 25412,13028,18374,7376,1844,3164,4766,6944,1736,434,4496,1124,8384,2096,524,584, 146,5498,3716,3392,848,212,1274,1934,1394,8252,5738,4442,8630,3722,3308,1106, 13244,11462,4784,1196,710,752,188,2354,6926,2798,3056,764,1922,13892,8168,2042,2258, 87602,114818,169682,1111118,313352,78338,78170,101642,58388,17636,11816,2954,2876,5756,121910,46202, 20888,5222,2444,944,236,530,7412,2960,740,5486,10004,4028,7088,1772,818,4982, -298814,-138986,-76964,-54422,-19922,-16178,1984,496,124,2362,1372,5464,1366,5842,2494,4414, 6034,2548,964,1966,31774,51448,12862,13162,5422,8596,2098,4954,2344,586,706,1804, 3154,1738,1138,2386,1522,4468,1324,1588,784,196,1408,352,88,22,1228,8464,2116, 5926,3898,1948,19804,27226,10696,2674,4612,11542,7708,20506,8176,2044,3172,2458, 11056,2764,1972,856,214,1336,334,748,1426,1252,5584,1396,75676,177268,33724,6562, 4402,2026,1246,7384,1846,2254, 1220,716,4412,6464,1616,404,5384,1346,992,248,62,47354,26228,10838,49934,29306, 11450,3542,7184,1796,824,206,1334,3440,860,1460,1058,884, 2386,4330,4852,2584,646,730,1630,1312,328,82,4006,1990,1234,3358,1798, 1162,8704,2176,544,136,34,13078,5392,1348,4816,1204,1558,1072,268,538,1522,5704, 1426,3520,880,220,5302,2476,952,238,1936,484,5416,1354,3448,862,1096,274, 2548, 794,4976,1244,722,1628,1226,3356,1118,908,3806,1916,848,212,1604,3104,776, 194,1484,1064,266,2546,2654,686,746,2702,1502,1052,4484,2252,1172,2816,704, 176,44,1766,1352,338,1412,1028,1622,2456,614,1712,428,1862, 6820,1768,442,1960,490,994,862,1708,5056,1264,316,1312,328,82,520,130, 538,3490,1798,3370,1804,7054,7366,133522,50560,12640,3160,790,562,700,1420,11374, 5746,2644,1228,2842,4948,1552,388,1906,1204,4828,2308,922,2956,8350,5920,1480, 370,628, 536,134,1466,1040,260,1832,458,662,1598,3248,812,1454,35042,34664,8666,3740, 6350,12020,2744,686,28544,7136,1784,446,37292,11714,10196,2402,4676,41666,23000,5750, 4460,2480,620,1400,350,2624,656,164,9536,2384,596,602,716,7106,16070,6632, 1658,1112,278,1382,30002,9296,2324,926,3110,6002,2546,1574,6380,3020,3560,890, 824,206,4244,1286,1952,488,122, 6484,175882,226588,42976,10744,2686,1498,4468,4216,1054,886,1108,11776,2944,736, 184,46,508,586,5968,1492,7888,1972,2638,1480,370,1666,2164,3244,7726,3388, 1126,2254,1336,334,616,154,1756,820,16636,3610,7276,1882,3430,3226,10858,273766,117274, 115168,28792,7198,3190, 1262,2228,1856,464,116,1256,314,1406,1640,410,1460,626,2864,716,1676,806, 794,2390,1388,752,188,1280,320,80,20,1418,2012,2102,968,242,2540,2720,680, 170,1094,902,830,1478,1046,884,1370,2000,500,3296,824,206,698,1622, 1100,4160,1040,260,1802,2174,1472,368,92,1688,422,650,1910,1208,302,2336, 584,146,2486,1424,356,740,2648,662,1076,1532,860,1964,2288,572,1784,446, 986,1292,734,1580,788,1238,956,1616,404, 862,8128,2032,508,3292,31456,7864,1966,3490,3304,826,802,21088,5272,1318,1972, 1864,466,1978,1234,2158,47098,18154,7300,1888,472,118,16714,6760,1690,1126,3034, 1630,9586,11620,24220,12556,4762,2278,2512,628,610,2656,664,166,1324,1846,2194, 2710,4330,2116,4294,3646,8614,6076,15022,11752,2938,1594,1090,1168,292,2788,5788, 4780,115426,25486,23842,53326,47332,11068,45640,11410,6598,4942,6508, 12014,12734,8396,25136,6284,4994,2366,2564,974,1892,848,212,16874,4700,26894,12764, 13580,8072,2018,1250,962,854,8126,5804, 2254,1498,3172,5008,1252,4804,4372,2464,616,154,7348,4948,2626,10042,5656, 1414,1024,256,64,16,4,976,244,24892,20074,12526,3784,946,24388,12634,10618, 4918,2338,4318,4954,5758,3658,3292,4858,11014,4624,1156,7126,3166,5182,3976,994, 3184,796, -423256,-105814,-55000,-13750,4154,4886,2240,560,140,1862,8492,2060,2228,3290,5126,3956, 12902,13634,8906,23432,5858,4532,4262,5882,9464,2366,1382,6584,1646,1112,278,944, 236,2552,638,734,770,1670,2498,2642,2870,2834,2618,3914,13568,3392,848,212, 13522,5566,3772,6232,1558,13306,3952,988,1516,2992,748,2668,3478,7186,3190,5044, 1576,394,13954,5728,1432,358,3034,1720,430,1480,370,634,4054,4114,2038,4072, 1018,1360,340,18148,3898,4744,1186,940,2224,556,6718,4258,2092,18814,7516,3352, 838,8122, 572,4394,2144,536,134,1316,11306,4736,1184,296,74,524,1388,5972,1616,404, 1856,464,116,518,1532,12494,15752,3938,1976,494,2774,2444,1928,482,1004,2954,1604, 1094, 2854,1672,418,4852,26344,6586,19054,7642,13708,11116,21166,8434,5986,11332,11932,2734, 1522,2098,2422,15190,30556,6226,4744,1186,11086,4654,2242,2374,6958,3106,11602,7768, 1942,2620,988,682,2698,4636,1366,3916,1420,6742,10198,5074,4096,1024,256,64, 16,4,4426,6094,2782,1540,3214,1702,1348,4318,2116,8686,3754,4642,58906,457912, 114478,43426,45676,17650,11170,15058,9712,2428,952,238,586, 6002,31736,7934,16244,7784,1946,2252,920,230,584,146,6680,1670,1124,1910,1214, 18614,7478,3302,1736,434,7388,2276,48212,14804,5408,1352,338,4472,1118,5444,6488, 1622,1106,6902,3086,1802,2258,23042,21806,7004,1856,464,116,3662,2774,1538,17702, 7136,1784,446,30824,7706,4682,3878,1952,488,122,4580,3386,4088,1022,4382,5354, 4256,1064,266,1394,21968,5492,2852,28772,25904,6476,1712,428,578,2306,4310,2114, 4148,2960,740,17594,13778,21482,13328,3332,3770,5030,2384,596,1412,1658,6038,2762, 2798,7760,1940,1790,4844,1406,4094,2612,1982,11276,11054,3980,1244,1046,890,7982, 3116,1082,5546,4364,1316,14192,3548,1370,13382,5516,1532,7496,1874,6416,1604, 736,184,46,6658,15730,5296,1324,1618,4606,5188,190852,42064,10516,2470,4210,2056,514, 14812,31444,6394,2896,724,634,6934,5146,2428,5422,16864,4216,1054,3256,814, 8116,2020,1156,2050,6874,3076,15892,3478,3202,2866,1678,6172,7954,2830,7630, 1502,9248,2312,578,716,21038,13082,3914,4730,2204,1868,5858,2696,674,752,188, 7790,5630,8240,2060,5360,1340,1718,3986,1994,4724,1538,1076,1268,1052,1544,386, 644,620,2474,12002,5000,1250,968,242,590,1580,3038,2402,1400,350,13328,3332, 1124,710,14072,3518,6362,4244,2528,632,158,1256,314,962,860,1490,1058,896, 224,56,14,6656,1664,416,104,26,1160,290,608,152,38, 3226,3064,766,1090,5440,1360,340,11728,2932,2074,2416,604,1954,10300,2242, 6898,8194,8992,2248,562,2848,712,178,2524,2344,586,1684,1792,448,112,28,1522, 3658,2980,3898,3442,5278,3802,3388,3646,1900,856,214,580,7462,3298,121810,60022, 23008,5752,1438,1594,2146,87574,33340,4672,1168,292,12928,3232,808,202}; unsigned char cflag[2040+2305+1915+2363+2351+1]={ 0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4, 4,4,4,4,4,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7, 7,7,8,8,8,9,9,9,9,10,10,10,10,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,0,0, 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, 2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1, 2,2,2,2,3,3,4,4,5,5,6,6,7,7,7,8,8,8,9,9,10, 11,11,12,12,13,13,13,14,14,14,15,16,16,17,17,18,18,19,19,20,20, 20,20,20,21,21,21,21,22,22,23,23,23,23,24,24,25,25,25,25,26,26, 27,27,27,28,28,29,29,30,31,31,32,32,33,33,33,34,34,34,35,35,35, 36,36,36,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,4,4, 4,4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6, 6,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0, 0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2, 2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6, 6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,10,10,10,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2, 2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,5,5,5,5, 5,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,9,9, 9,9,10,10,10,10,11,11,11,11,11,12,12,12,13,13,14,14,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,5, 5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8, 8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3, 3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5, 5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,3,3,3, 3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,6,6,6, 6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, 1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4, 4,4,4,4,4,4,4,4,5,5,5,5,6,6,6,6,6,6,7,7,7, 7,7,7, 0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, 1,1,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2, 2,2,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0, 0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3, 3,3,3,3,3,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3, 4,4,4,4,4,5,5,5,5,6,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,2,2,3,3,3,4,4,5,5,5,5,5,6,6,6,7,7,7,7,8, 8,9,9,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17, 18,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,25,25,26,26, 27,27,28,28,29,30,30,31,31,31,32,32,33,33,34,35,36,37,37,38,38, 39,40,41,41,42,43,44,45,45,45,46,47,47,48,49,50,51,51,52,53,54, 55,56,57,57,58,59,60,61,62,63,64,65,66,67,68,69,70,70,71,72,73, 74,74,75,76,77,78,78,79,80,81,82,83,84,85,86,87,88,89,90,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3, 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2, 2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,6,6,6,6, 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2, 2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,8,8, 8,8,8,8,9,9,9,9,10,10,10,10,10,11,11,12,12,12,13,13,13, 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,2,2,2,2,2, 2,2,2,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,6,6,6, 7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,12,12,12,12,13,13, 13,14,14,14,15,15,16,16,16,17,17,17,18,18,18,19,19,20,20,21,21, 22,22,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7, 7,7,7,7,7,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0, 0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4, 4,4,4,5,5,5,5,5,5,5,6,6,6,6,7,7,7,7,7,7,8, 8,8,8,9,9,9,9,9,9,10,10,10,10,10,10,11,11,11,11,11,11, 12,12,12,12,12,13,13,13,13,13,14,14,14,14,14,14,15,15,15,15,16, 16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,0,0,1,1,1,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2, 2,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4, 5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8, 8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10, 10,10,10,10,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,3,3,3,3,4, 4,4,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,8,8,8,9, 9,9,10,10,11,11,11,12,12,13,13,14,14,14,15,15,15,16,16,16,17, 17,18,18,19,19,20,20,21,22,22,23,23,23,24,24,25,26,26,27,0,0, 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,3,3,3, 3,4,4,4,4,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, 2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3, 4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,1,1,1,1,1,1, 1,2,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4,5,5,5, 5,5,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2, 2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3, 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,3, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6, 6,7,7,7,7,7,7,7,7,7,0,0,0,0,1,1,1,1,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,4,4,4, 4,4,5,5,6,6,6,6,6,6,7,7,8,8,8,8,9,9,10,10,10, 11,11,11,12,12,12,13,13,13,13,13,13,13,14,14,14,15,15,15,16,16, 17,17,18,18,19,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26, 27,27,28,28,29,29,30,30,31,32,32,33,33,34,34,34,35,36,37,37,38, 38,39,39,40,41,41,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, 1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3, 3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2, 2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4, 4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2, 2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4, 4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, 2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, 1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,5,5,5,5,6, 6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,8,8, 8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,1,2,3,4,4, 5,5,6,6,6,6,7,8,9,10,11,11,11,11,12,12,13,13,14,15,16, 16,16,17,17,18,19,19,19,20,21,22,23,24,24,25,25,26,27,27,28,28, 28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30, 30,30,30,30,30,31,31,31,31,31,31,32,32,32,32,32,32,32,32,32,33, 33,33,33,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,35,35,35,35,35, 35,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,39, 39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,40,40,40,40, 40,40,40,41,41,41,41,41,41,41,41,42,42,42,42,42,42,42,42,42,42, 42,43,43,43,43,43,43,43,43,43,43,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, 0,0,0,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3, 3,3,3,3,3,4,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6, 6,6,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,10,10,10,11, 11,11,11,12,12,12,12,12,13,13,13,14,14,14,15,15,15,15,16,16,16, 16,17,17,17,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,1,2,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2, 2,2,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2, 2,2,2,2,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6, 6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3, 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2, 2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2, 2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4, 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2, 2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4, 4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2, 3,3,3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,6,6,6,6, 7,7,7,7,7,7,8,8,8,8,8,8,8,9,9,9,10,10,11,11,11, 11,12,12,13,13,13,13,13,14,14,15,15,15,15,15,16,16,17,17,18,18, 19,19,19,20,20,21,21,22,22,23,23,24,24,25,25,25,25,25,26,26,27, 27,28,28,29,30,30,31,31,32,32,33,33,34,35,35,36,36,36,37,37,38, 38,39,40,41,42,42,43,44,44,45,46,47,48,49,50,51,51,52,53,54,55, 56,57,58,59,60,61,62,62,63,64,65,66,67,68,69,70,71,71,72,73,74, 75,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4, 4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2, 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, 2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3, 3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, 2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0, 1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5, 5,5,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, 1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3, 3,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,1,1,1,2,2, 2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6, 6,6,7,7,7,7,8,8,8,8,9,9,9,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0, 0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,5,6,6,6, 6,6,6,6,7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,12,12, 12,13,13,13,14,14,14,15,15,15,15,15,16,16,16,17,17,17,18,18,18, 19,19,19,20,20,20,21,21,22,22,23,23,24,24,24,25,25,26,26,27,27, 28,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2, 2,2,3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6, 6,6,6,7,7,7,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10, 11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,13,13,13,13,14,14, 14,14,14,14,14,14,14,14,14,14,15,15,15,15,16,16,16,17,17,17,18, 18,18,19,19,19,19,19,20,20,20,21,21,21,22,22,22,23,23,23,24,24, 24,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 255}; int cval[167]={1501,1505,1507,1511,1513,1517,1519,1523,1525,1529,1531,1535, 1537,1541,1543,1547,1549,1553,1555,1559,1561,1565,1567,1571, 1573,1577,1579,1583,1585,1589,1591,1595,1597,1601,1603,1607, 1609,1613,1615,1619,1621,1625,1627,1631,1633,1637,1639,1643, 1645,1649,1651,1655,1657,1661,1663,1667,1669,1673,1675,1679, 1681,1685,1687,1691,1693,1697,1699,1703,1705,1709,1711,1715, 1717,1721,1723,1727,1729,1733,1735,1739,1741,1745,1747,1751, 1753,1757,1759,1763,1765,1769,1771,1775,1777,1781,1783,1787, 1789,1793,1795,1799,1801,1805,1807,1811,1813,1817,1819,1823, 1825,1829,1831,1835,1837,1841,1843,1847,1849,1853,1855,1859, 1861,1865,1867,1871,1873,1877,1879,1883,1885,1889,1891,1895, 1897,1901,1903,1907,1909,1913,1915,1919,1921,1925,1927,1931, 1933,1937,1939,1943,1945,1949,1951,1955,1957,1961,1963,1967, 1969,1973,1975,1979,1981,1985,1987,1991,1993,1997,1999}; unsigned int size[167]={ 55,39,59,76,26,41,78,29,73,177,138,89,104,49,50,44,60,23,55,56,56,35,35,39,92, 41,66,62,37,35,58,100,63,13,11,81,52,44,40,71,76,39,49,152,123,63,27,51,50,66, 43,63,98,69,65,40,105,46,88,112,57,77,102,138,46,31,117,67,41,19,39,6,32,69, 74,45,116,67,41,65,92,19,52,113,196,23,69,20,109,29,54,62,56,53,13,20,71,86, 44,53,94,122,22,37,89,83,34,68,83,106,64,19,64,51,230,46,96,25,142,66,102, 52,47,91,46,78,50,24,94,17,63,38,120,57,49,80,173,57,138,80,114,44,58,102, 69,56,23,112,86,28,49,45,50,71,52,89,76,24,49,48,50,34,75,127,47,77,62}; unsigned int conv[27*2]={5,3,6,4,8,5,9,6,11,7,16,10,19,12,24,15,27,17,38,24, 46,29,57,36,65,41,76,48,84,53,130,82,149,94,168,106,233,147,252,159,317,200, 336,212,401,253,420,265,485,306,504,318,569,359}; unsigned int eofact[555*2]={1,1,2,1,1,2,3,2,3,1,1,3,2,3,4,3,4,1,1,4,3,4, 5,4,5,3,5,2,5,1,1,5,2,5,3,5,4,5,6,5,6,1,1,6,5,6, 7,6,7,5,7,4,7,3,7,2,7,1,1,7,2,7,3,7,4,7,5,7,6,7, 8,7,8,5,8,3,8,1,1,8,3,8,5,8,7,8, 9,8,9,7,9,5,9,4,9,2,9,1,1,9,2,9,4,9,5,9,7,9,8,9, 10,9,10,7,10,3,10,1,1,10,3,10,7,10,9,10, 11,10,11,9,11,8,11,7,11,6,11,5,11,4,11,3,11,2,11,1, 1,11,2,11,3,11,4,11,5,11,6,11,7,11,8,11,9,11,10,11, 12,11,12,7,12,5,12,1,1,12,5,12,7,12,11,12, 13,12,13,11,13,10,13,9,13,8,13,7,13,6,13,5,13,4,13,3,13,2,13,1, 1,13,2,13,3,13,4,13,5,13,6,13,7,13,8,13,9,13,10,13,11,13,12,13, 14,13,14,11,14,9,14,5,14,3,14,1,1,14,3,14,5,14,9,14,11,14,13,14, 15,14,15,13,15,11,15,8,15,7,15,4,15,2,15,1,1,15,2,15,4,15,7,15,8,15,11,15,13,15,14,15, 16,15,16,13,16,11,16,9,16,7,16,5,16,3,16,1,1,16,3,16,5,16,7,16,9,16,11,16,13,16,15,16, 17,16,17,15,17,14,17,13,17,12,17,11,17,10,17,9,17,8,17,7, 17,6,17,5,17,4,17,3,17,2,17,1,1,17,2,17,3,17,4,17,5,17, 6,17,7,17,8,17,9,17,10,17,11,17,12,17,13,17,14,17,15,17,16,17, 18,17,18,13,18,11,18,7,18,5,18,1,1,18,5,18,7,18,11,18,13,18,17,18, 19,18,19,17,19,16,19,15,19,14,19,13,19,12,19,11,19,10,19,9,19,8, 19,7,19,6,19,5,19,4,19,3,19,2,19,1,1,19,2,19,3,19,4,19,5,19,6,19, 7,19,8,19,9,19,10,19,11,19,12,19,13,19,14,19,15,19,16,19,17,19,18,19, 20,19,20,17,20,13,20,11,20,9,20,7,20,3,20,1,1,20,3,20,7,20,9,20,11,20,13,20,17,20,19,20, 21,20,21,19,21,17,21,16,21,13,21,11,21,10,21,8,21,5,21,4,21,2,21,1, 1,21,2,21,4,21,5,21,8,21,10,21,11,21,13,21,16,21,17,21,19,21,20,21, 22,21,22,19,22,17,22,15,22,13,22,9,22,7,22,5,22,3,22,1, 1,22,3,22,5,22,7,22,9,22,13,22,15,22,17,22,19,22,21,22, 23,22,23,21,23,20,23,19,23,18,23,17,23,16,23,15,23,14,23,13, 23,12,23,11,23,10,23,9,23,8,23,7,23,6,23,5,23,4,23,3,23,2,23,1, 1,23,2,23,3,23,4,23,5,23,6,23,7,23,8,23,9,23,10,23,11,23,12,23, 13,23,14,23,15,23,16,23,17,23,18,23,19,23,20,23,21,23,22,23, 24,23,24,19,24,17,24,13,24,11,24,7,24,5,24,1,1,24,5,24,7,24,11,24,13,24,17,24,19,24,23,24, 25,24,25,23,25,22,25,21,25,19,25,18,25,17,25,16,25,14,25,13,25,12,25,11, 25,9,25,8,25,7,25,6,25,4,25,3,25,2,25,1,1,25,2,25,3,25,4,25,6,25,7,25,8,25, 9,25,11,25,12,25,13,25,14,25,16,25,17,25,18,25,19,25,21,25,22,25,23,25,24,25, 26,25,26,23,26,21,26,19,26,17,26,15,26,11,26,9,26,7,26,5,26,3,26,1, 1,26,3,26,5,26,7,26,9,26,11,26,15,26,17,26,19,26,21,26,23,26,25,26, 27,26,27,25,27,23,27,22,27,20,27,19,27,17,27,16,27,14,27,13,27,11,27,10,27,8,27,7,27,5,27,4,27,2,27,1, 1,27,2,27,4,27,5,27,7,27,8,27,10,27,11,27,13,27,14,27,16,27,17,27,19,27,20,27,22,27,23,27,25,27,26,27, 28,27,28,25,28,23,28,19,28,17,28,15,28,13,28,11,28,9,28,5,28,3,28,1, 1,28,3,28,5,28,9,28,11,28,13,28,15,28,17,28,19,28,23,28,25,28,27,28, 29,28,29,27,29,26,29,25,29,24,29,23,29,22,29,21,29,20,29,19,29,18,29,17, 29,16,29,15,29,14,29,13,29,12,29,11,29,10,29,9,29,8,29,7,29,6,29,5,29,4,29,3,29,2,29,1, 1,29,2,29,3,29,4,29,5,29,6,29,7,29,8,29,9,29,10,29,11,29,12,29,13,29,14,29, 15,29,16,29,17,29,18,29,19,29,20,29,21,29,22,29,23,29,24,29,25,29,26,29,27,29,28,29, 30,29,30,23,30,19,30,17,30,13,30,11,30,7,30,1, 1,30,7,30,11,30,13,30,17,30,19,30,23,30,29,30}; unsigned int eocount=555; unsigned int ln[5000]={ 0x00030002, 0x00050003, 0x00080005, 0x000B0007, 0x000D0008, 0x0010000A, 0x0013000C, 0x0015000D, 0x0018000F, 0x001B0011, 0x001E0013, 0x00200014, 0x00230016, 0x00260018, 0x00280019, 0x002B001B, 0x002E001D, 0x0031001F, 0x00330020, 0x00360022, 0x00390024, 0x003B0025, 0x003E0027, 0x00410029, 0x0044002B, 0x0046002C, 0x0049002E, 0x004C0030, 0x004E0031, 0x00510033, 0x00540035, 0x00560036, 0x00590038, 0x005C003A, 0x005F003C, 0x0061003D, 0x0064003F, 0x00670041, 0x00690042, 0x006C0044, 0x006F0046, 0x00720048, 0x00740049, 0x0077004B, 0x007A004D, 0x007C004E, 0x007F0050, 0x00820052, 0x00850054, 0x00870055, 0x008A0057, 0x008D0059, 0x008F005A, 0x0092005C, 0x0095005E, 0x00980060, 0x009A0061, 0x009D0063, 0x00A00065, 0x00A20066, 0x00A50068, 0x00A8006A, 0x00AA006B, 0x00AD006D, 0x00B0006F, 0x00B30071, 0x00B50072, 0x00B80074, 0x00BB0076, 0x00BD0077, 0x00C00079, 0x00C3007B, 0x00C6007D, 0x00C8007E, 0x00CB0080, 0x00CE0082, 0x00D00083, 0x00D30085, 0x00D60087, 0x00D90089, 0x00DB008A, 0x00DE008C, 0x00E1008E, 0x00E3008F, 0x00E60091, 0x00E90093, 0x00EC0095, 0x00EE0096, 0x00F10098, 0x00F4009A, 0x00F6009B, 0x00F9009D, 0x00FC009F, 0x00FE00A0, 0x010100A2, 0x010400A4, 0x010700A6, 0x010900A7, 0x010C00A9, 0x010F00AB, 0x011100AC, 0x011400AE, 0x011700B0, 0x011A00B2, 0x011C00B3, 0x011F00B5, 0x012200B7, 0x012400B8, 0x012700BA, 0x012A00BC, 0x012D00BE, 0x012F00BF, 0x013200C1, 0x013500C3, 0x013700C4, 0x013A00C6, 0x013D00C8, 0x014000CA, 0x014200CB, 0x014500CD, 0x014800CF, 0x014A00D0, 0x014D00D2, 0x015000D4, 0x015200D5, 0x015500D7, 0x015800D9, 0x015B00DB, 0x015D00DC, 0x016000DE, 0x016300E0, 0x016500E1, 0x016800E3, 0x016B00E5, 0x016E00E7, 0x017000E8, 0x017300EA, 0x017600EC, 0x017800ED, 0x017B00EF, 0x017E00F1, 0x018100F3, 0x018300F4, 0x018600F6, 0x018900F8, 0x018B00F9, 0x018E00FB, 0x019100FD, 0x019400FF, 0x01960100, 0x01990102, 0x019C0104, 0x019E0105, 0x01A10107, 0x01A40109, 0x01A6010A, 0x01A9010C, 0x01AC010E, 0x01AF0110, 0x01B10111, 0x01B40113, 0x01B70115, 0x01B90116, 0x01BC0118, 0x01BF011A, 0x01C2011C, 0x01C4011D, 0x01C7011F, 0x01CA0121, 0x01CC0122, 0x01CF0124, 0x01D20126, 0x01D50128, 0x01D70129, 0x01DA012B, 0x01DD012D, 0x01DF012E, 0x01E20130, 0x01E50132, 0x01E80134, 0x01EA0135, 0x01ED0137, 0x01F00139, 0x01F2013A, 0x01F5013C, 0x01F8013E, 0x01FA013F, 0x01FD0141, 0x02000143, 0x02030145, 0x02050146, 0x02080148, 0x020B014A, 0x020D014B, 0x0210014D, 0x0213014F, 0x02160151, 0x02180152, 0x021B0154, 0x021E0156, 0x02200157, 0x02230159, 0x0226015B, 0x0229015D, 0x022B015E, 0x022E0160, 0x02310162, 0x02330163, 0x02360165, 0x02390167, 0x023B0168, 0x023E016A, 0x0241016C, 0x0244016E, 0x0246016F, 0x02490171, 0x024C0173, 0x024E0174, 0x02510176, 0x02540178, 0x0257017A, 0x0259017B, 0x025C017D, 0x025F017F, 0x02610180, 0x02640182, 0x02670184, 0x026A0186, 0x026C0187, 0x026F0189, 0x0272018B, 0x0274018C, 0x0277018E, 0x027A0190, 0x027D0192, 0x027F0193, 0x02820195, 0x02850197, 0x02870198, 0x028A019A, 0x028D019C, 0x028F019D, 0x0292019F, 0x029501A1, 0x029801A3, 0x029A01A4, 0x029D01A6, 0x02A001A8, 0x02A201A9, 0x02A501AB, 0x02A801AD, 0x02AB01AF, 0x02AD01B0, 0x02B001B2, 0x02B301B4, 0x02B501B5, 0x02B801B7, 0x02BB01B9, 0x02BE01BB, 0x02C001BC, 0x02C301BE, 0x02C601C0, 0x02C801C1, 0x02CB01C3, 0x02CE01C5, 0x02D101C7, 0x02D301C8, 0x02D601CA, 0x02D901CC, 0x02DB01CD, 0x02DE01CF, 0x02E101D1, 0x02E301D2, 0x02E601D4, 0x02E901D6, 0x02EC01D8, 0x02EE01D9, 0x02F101DB, 0x02F401DD, 0x02F601DE, 0x02F901E0, 0x02FC01E2, 0x02FF01E4, 0x030101E5, 0x030401E7, 0x030701E9, 0x030901EA, 0x030C01EC, 0x030F01EE, 0x031201F0, 0x031401F1, 0x031701F3, 0x031A01F5, 0x031C01F6, 0x031F01F8, 0x032201FA, 0x032501FC, 0x032701FD, 0x032A01FF, 0x032D0201, 0x032F0202, 0x03320204, 0x03350206, 0x03370207, 0x033A0209, 0x033D020B, 0x0340020D, 0x0342020E, 0x03450210, 0x03480212, 0x034A0213, 0x034D0215, 0x03500217, 0x03530219, 0x0355021A, 0x0358021C, 0x035B021E, 0x035D021F, 0x03600221, 0x03630223, 0x03660225, 0x03680226, 0x036B0228, 0x036E022A, 0x0370022B, 0x0373022D, 0x0376022F, 0x03790231, 0x037B0232, 0x037E0234, 0x03810236, 0x03830237, 0x03860239, 0x0389023B, 0x038B023C, 0x038E023E, 0x03910240, 0x03940242, 0x03960243, 0x03990245, 0x039C0247, 0x039E0248, 0x03A1024A, 0x03A4024C, 0x03A7024E, 0x03A9024F, 0x03AC0251, 0x03AF0253, 0x03B10254, 0x03B40256, 0x03B70258, 0x03BA025A, 0x03BC025B, 0x03BF025D, 0x03C2025F, 0x03C40260, 0x03C70262, 0x03CA0264, 0x03CD0266, 0x03CF0267, 0x03D20269, 0x03D5026B, 0x03D7026C, 0x03DA026E, 0x03DD0270, 0x03DF0271, 0x03E20273, 0x03E50275, 0x03E80277, 0x03EA0278, 0x03ED027A, 0x03F0027C, 0x03F2027D, 0x03F5027F, 0x03F80281, 0x03FB0283, 0x03FD0284, 0x04000286, 0x04030288, 0x04050289, 0x0408028B, 0x040B028D, 0x040E028F, 0x04100290, 0x04130292, 0x04160294, 0x04180295, 0x041B0297, 0x041E0299, 0x0420029A, 0x0423029C, 0x0426029E, 0x042902A0, 0x042B02A1, 0x042E02A3, 0x043102A5, 0x043302A6, 0x043602A8, 0x043902AA, 0x043C02AC, 0x043E02AD, 0x044102AF, 0x044402B1, 0x044602B2, 0x044902B4, 0x044C02B6, 0x044F02B8, 0x045102B9, 0x045402BB, 0x045702BD, 0x045902BE, 0x045C02C0, 0x045F02C2, 0x046202C4, 0x046402C5, 0x046702C7, 0x046A02C9, 0x046C02CA, 0x046F02CC, 0x047202CE, 0x047402CF, 0x047702D1, 0x047A02D3, 0x047D02D5, 0x047F02D6, 0x048202D8, 0x048502DA, 0x048702DB, 0x048A02DD, 0x048D02DF, 0x049002E1, 0x049202E2, 0x049502E4, 0x049802E6, 0x049A02E7, 0x049D02E9, 0x04A002EB, 0x04A302ED, 0x04A502EE, 0x04A802F0, 0x04AB02F2, 0x04AD02F3, 0x04B002F5, 0x04B302F7, 0x04B602F9, 0x04B802FA, 0x04BB02FC, 0x04BE02FE, 0x04C002FF, 0x04C30301, 0x04C60303, 0x04C80304, 0x04CB0306, 0x04CE0308, 0x04D1030A, 0x04D3030B, 0x04D6030D, 0x04D9030F, 0x04DB0310, 0x04DE0312, 0x04E10314, 0x04E40316, 0x04E60317, 0x04E90319, 0x04EC031B, 0x04EE031C, 0x04F1031E, 0x04F40320, 0x04F70322, 0x04F90323, 0x04FC0325, 0x04FF0327, 0x05010328, 0x0504032A, 0x0507032C, 0x050A032E, 0x050C032F, 0x050F0331, 0x05120333, 0x05140334, 0x05170336, 0x051A0338, 0x051C0339, 0x051F033B, 0x0522033D, 0x0525033F, 0x05270340, 0x052A0342, 0x052D0344, 0x052F0345, 0x05320347, 0x05350349, 0x0538034B, 0x053A034C, 0x053D034E, 0x05400350, 0x05420351, 0x05450353, 0x05480355, 0x054B0357, 0x054D0358, 0x0550035A, 0x0553035C, 0x0555035D, 0x0558035F, 0x055B0361, 0x055E0363, 0x05600364, 0x05630366, 0x05660368, 0x05680369, 0x056B036B, 0x056E036D, 0x0570036E, 0x05730370, 0x05760372, 0x05790374, 0x057B0375, 0x057E0377, 0x05810379, 0x0583037A, 0x0586037C, 0x0589037E, 0x058C0380, 0x058E0381, 0x05910383, 0x05940385, 0x05960386, 0x05990388, 0x059C038A, 0x059F038C, 0x05A1038D, 0x05A4038F, 0x05A70391, 0x05A90392, 0x05AC0394, 0x05AF0396, 0x05B20398, 0x05B40399, 0x05B7039B, 0x05BA039D, 0x05BC039E, 0x05BF03A0, 0x05C203A2, 0x05C403A3, 0x05C703A5, 0x05CA03A7, 0x05CD03A9, 0x05CF03AA, 0x05D203AC, 0x05D503AE, 0x05D703AF, 0x05DA03B1, 0x05DD03B3, 0x05E003B5, 0x05E203B6, 0x05E503B8, 0x05E803BA, 0x05EA03BB, 0x05ED03BD, 0x05F003BF, 0x05F303C1, 0x05F503C2, 0x05F803C4, 0x05FB03C6, 0x05FD03C7, 0x060003C9, 0x060303CB, 0x060603CD, 0x060803CE, 0x060B03D0, 0x060E03D2, 0x061003D3, 0x061303D5, 0x061603D7, 0x061803D8, 0x061B03DA, 0x061E03DC, 0x062103DE, 0x062303DF, 0x062603E1, 0x062903E3, 0x062B03E4, 0x062E03E6, 0x063103E8, 0x063403EA, 0x063603EB, 0x063903ED, 0x063C03EF, 0x063E03F0, 0x064103F2, 0x064403F4, 0x064703F6, 0x064903F7, 0x064C03F9, 0x064F03FB, 0x065103FC, 0x065403FE, 0x06570400, 0x06590401, 0x065C0403, 0x065F0405, 0x06620407, 0x06640408, 0x0667040A, 0x066A040C, 0x066C040D, 0x066F040F, 0x06720411, 0x06750413, 0x06770414, 0x067A0416, 0x067D0418, 0x067F0419, 0x0682041B, 0x0685041D, 0x0688041F, 0x068A0420, 0x068D0422, 0x06900424, 0x06920425, 0x06950427, 0x06980429, 0x069B042B, 0x069D042C, 0x06A0042E, 0x06A30430, 0x06A50431, 0x06A80433, 0x06AB0435, 0x06AD0436, 0x06B00438, 0x06B3043A, 0x06B6043C, 0x06B8043D, 0x06BB043F, 0x06BE0441, 0x06C00442, 0x06C30444, 0x06C60446, 0x06C90448, 0x06CB0449, 0x06CE044B, 0x06D1044D, 0x06D3044E, 0x06D60450, 0x06D90452, 0x06DC0454, 0x06DE0455, 0x06E10457, 0x06E40459, 0x06E6045A, 0x06E9045C, 0x06EC045E, 0x06EF0460, 0x06F10461, 0x06F40463, 0x06F70465, 0x06F90466, 0x06FC0468, 0x06FF046A, 0x0701046B, 0x0704046D, 0x0707046F, 0x070A0471, 0x070C0472, 0x070F0474, 0x07120476, 0x07140477, 0x07170479, 0x071A047B, 0x071D047D, 0x071F047E, 0x07220480, 0x07250482, 0x07270483, 0x072A0485, 0x072D0487, 0x07300489, 0x0732048A, 0x0735048C, 0x0738048E, 0x073A048F, 0x073D0491, 0x07400493, 0x07430495, 0x07450496, 0x07480498, 0x074B049A, 0x074D049B, 0x0750049D, 0x0753049F, 0x075504A0, 0x075804A2, 0x075B04A4, 0x075E04A6, 0x076004A7, 0x076304A9, 0x076604AB, 0x076804AC, 0x076B04AE, 0x076E04B0, 0x077104B2, 0x077304B3, 0x077604B5, 0x077904B7, 0x077B04B8, 0x077E04BA, 0x078104BC, 0x078404BE, 0x078604BF, 0x078904C1, 0x078C04C3, 0x078E04C4, 0x079104C6, 0x079404C8, 0x079704CA, 0x079904CB, 0x079C04CD, 0x079F04CF, 0x07A104D0, 0x07A404D2, 0x07A704D4, 0x07A904D5, 0x07AC04D7, 0x07AF04D9, 0x07B204DB, 0x07B404DC, 0x07B704DE, 0x07BA04E0, 0x07BC04E1, 0x07BF04E3, 0x07C204E5, 0x07C504E7, 0x07C704E8, 0x07CA04EA, 0x07CD04EC, 0x07CF04ED, 0x07D204EF, 0x07D504F1, 0x07D804F3, 0x07DA04F4, 0x07DD04F6, 0x07E004F8, 0x07E204F9, 0x07E504FB, 0x07E804FD, 0x07EB04FF, 0x07ED0500, 0x07F00502, 0x07F30504, 0x07F50505, 0x07F80507, 0x07FB0509, 0x07FD050A, 0x0800050C, 0x0803050E, 0x08060510, 0x08080511, 0x080B0513, 0x080E0515, 0x08100516, 0x08130518, 0x0816051A, 0x0819051C, 0x081B051D, 0x081E051F, 0x08210521, 0x08230522, 0x08260524, 0x08290526, 0x082C0528, 0x082E0529, 0x0831052B, 0x0834052D, 0x0836052E, 0x08390530, 0x083C0532, 0x083E0533, 0x08410535, 0x08440537, 0x08470539, 0x0849053A, 0x084C053C, 0x084F053E, 0x0851053F, 0x08540541, 0x08570543, 0x085A0545, 0x085C0546, 0x085F0548, 0x0862054A, 0x0864054B, 0x0867054D, 0x086A054F, 0x086D0551, 0x086F0552, 0x08720554, 0x08750556, 0x08770557, 0x087A0559, 0x087D055B, 0x0880055D, 0x0882055E, 0x08850560, 0x08880562, 0x088A0563, 0x088D0565, 0x08900567, 0x08920568, 0x0895056A, 0x0898056C, 0x089B056E, 0x089D056F, 0x08A00571, 0x08A30573, 0x08A50574, 0x08A80576, 0x08AB0578, 0x08AE057A, 0x08B0057B, 0x08B3057D, 0x08B6057F, 0x08B80580, 0x08BB0582, 0x08BE0584, 0x08C10586, 0x08C30587, 0x08C60589, 0x08C9058B, 0x08CB058C, 0x08CE058E, 0x08D10590, 0x08D40592, 0x08D60593, 0x08D90595, 0x08DC0597, 0x08DE0598, 0x08E1059A, 0x08E4059C, 0x08E6059D, 0x08E9059F, 0x08EC05A1, 0x08EF05A3, 0x08F105A4, 0x08F405A6, 0x08F705A8, 0x08F905A9, 0x08FC05AB, 0x08FF05AD, 0x090205AF, 0x090405B0, 0x090705B2, 0x090A05B4, 0x090C05B5, 0x090F05B7, 0x091205B9, 0x091505BB, 0x091705BC, 0x091A05BE, 0x091D05C0, 0x091F05C1, 0x092205C3, 0x092505C5, 0x092805C7, 0x092A05C8, 0x092D05CA, 0x093005CC, 0x093205CD, 0x093505CF, 0x093805D1, 0x093A05D2, 0x093D05D4, 0x094005D6, 0x094305D8, 0x094505D9, 0x094805DB, 0x094B05DD, 0x094D05DE, 0x095005E0, 0x095305E2, 0x095605E4, 0x095805E5, 0x095B05E7, 0x095E05E9, 0x096005EA, 0x096305EC, 0x096605EE, 0x096905F0, 0x096B05F1, 0x096E05F3, 0x097105F5, 0x097305F6, 0x097605F8, 0x097905FA, 0x097C05FC, 0x097E05FD, 0x098105FF, 0x09840601, 0x09860602, 0x09890604, 0x098C0606, 0x098E0607, 0x09910609, 0x0994060B, 0x0997060D, 0x0999060E, 0x099C0610, 0x099F0612, 0x09A10613, 0x09A40615, 0x09A70617, 0x09AA0619, 0x09AC061A, 0x09AF061C, 0x09B2061E, 0x09B4061F, 0x09B70621, 0x09BA0623, 0x09BD0625, 0x09BF0626, 0x09C20628, 0x09C5062A, 0x09C7062B, 0x09CA062D, 0x09CD062F, 0x09D00631, 0x09D20632, 0x09D50634, 0x09D80636, 0x09DA0637, 0x09DD0639, 0x09E0063B, 0x09E2063C, 0x09E5063E, 0x09E80640, 0x09EB0642, 0x09ED0643, 0x09F00645, 0x09F30647, 0x09F50648, 0x09F8064A, 0x09FB064C, 0x09FE064E, 0x0A00064F, 0x0A030651, 0x0A060653, 0x0A080654, 0x0A0B0656, 0x0A0E0658, 0x0A11065A, 0x0A13065B, 0x0A16065D, 0x0A19065F, 0x0A1B0660, 0x0A1E0662, 0x0A210664, 0x0A240666, 0x0A260667, 0x0A290669, 0x0A2C066B, 0x0A2E066C, 0x0A31066E, 0x0A340670, 0x0A360671, 0x0A390673, 0x0A3C0675, 0x0A3F0677, 0x0A410678, 0x0A44067A, 0x0A47067C, 0x0A49067D, 0x0A4C067F, 0x0A4F0681, 0x0A520683, 0x0A540684, 0x0A570686, 0x0A5A0688, 0x0A5C0689, 0x0A5F068B, 0x0A62068D, 0x0A65068F, 0x0A670690, 0x0A6A0692, 0x0A6D0694, 0x0A6F0695, 0x0A720697, 0x0A750699, 0x0A77069A, 0x0A7A069C, 0x0A7D069E, 0x0A8006A0, 0x0A8206A1, 0x0A8506A3, 0x0A8806A5, 0x0A8A06A6, 0x0A8D06A8, 0x0A9006AA, 0x0A9306AC, 0x0A9506AD, 0x0A9806AF, 0x0A9B06B1, 0x0A9D06B2, 0x0AA006B4, 0x0AA306B6, 0x0AA606B8, 0x0AA806B9, 0x0AAB06BB, 0x0AAE06BD, 0x0AB006BE, 0x0AB306C0, 0x0AB606C2, 0x0AB906C4, 0x0ABB06C5, 0x0ABE06C7, 0x0AC106C9, 0x0AC306CA, 0x0AC606CC, 0x0AC906CE, 0x0ACB06CF, 0x0ACE06D1, 0x0AD106D3, 0x0AD406D5, 0x0AD606D6, 0x0AD906D8, 0x0ADC06DA, 0x0ADE06DB, 0x0AE106DD, 0x0AE406DF, 0x0AE706E1, 0x0AE906E2, 0x0AEC06E4, 0x0AEF06E6, 0x0AF106E7, 0x0AF406E9, 0x0AF706EB, 0x0AFA06ED, 0x0AFC06EE, 0x0AFF06F0, 0x0B0206F2, 0x0B0406F3, 0x0B0706F5, 0x0B0A06F7, 0x0B0D06F9, 0x0B0F06FA, 0x0B1206FC, 0x0B1506FE, 0x0B1706FF, 0x0B1A0701, 0x0B1D0703, 0x0B1F0704, 0x0B220706, 0x0B250708, 0x0B28070A, 0x0B2A070B, 0x0B2D070D, 0x0B30070F, 0x0B320710, 0x0B350712, 0x0B380714, 0x0B3B0716, 0x0B3D0717, 0x0B400719, 0x0B43071B, 0x0B45071C, 0x0B48071E, 0x0B4B0720, 0x0B4E0722, 0x0B500723, 0x0B530725, 0x0B560727, 0x0B580728, 0x0B5B072A, 0x0B5E072C, 0x0B61072E, 0x0B63072F, 0x0B660731, 0x0B690733, 0x0B6B0734, 0x0B6E0736, 0x0B710738, 0x0B730739, 0x0B76073B, 0x0B79073D, 0x0B7C073F, 0x0B7E0740, 0x0B810742, 0x0B840744, 0x0B860745, 0x0B890747, 0x0B8C0749, 0x0B8F074B, 0x0B91074C, 0x0B94074E, 0x0B970750, 0x0B990751, 0x0B9C0753, 0x0B9F0755, 0x0BA20757, 0x0BA40758, 0x0BA7075A, 0x0BAA075C, 0x0BAC075D, 0x0BAF075F, 0x0BB20761, 0x0BB50763, 0x0BB70764, 0x0BBA0766, 0x0BBD0768, 0x0BBF0769, 0x0BC2076B, 0x0BC5076D, 0x0BC7076E, 0x0BCA0770, 0x0BCD0772, 0x0BD00774, 0x0BD20775, 0x0BD50777, 0x0BD80779, 0x0BDA077A, 0x0BDD077C, 0x0BE0077E, 0x0BE30780, 0x0BE50781, 0x0BE80783, 0x0BEB0785, 0x0BED0786, 0x0BF00788, 0x0BF3078A, 0x0BF6078C, 0x0BF8078D, 0x0BFB078F, 0x0BFE0791, 0x0C000792, 0x0C030794, 0x0C060796, 0x0C090798, 0x0C0B0799, 0x0C0E079B, 0x0C11079D, 0x0C13079E, 0x0C1607A0, 0x0C1907A2, 0x0C1B07A3, 0x0C1E07A5, 0x0C2107A7, 0x0C2407A9, 0x0C2607AA, 0x0C2907AC, 0x0C2C07AE, 0x0C2E07AF, 0x0C3107B1, 0x0C3407B3, 0x0C3707B5, 0x0C3907B6, 0x0C3C07B8, 0x0C3F07BA, 0x0C4107BB, 0x0C4407BD, 0x0C4707BF, 0x0C4A07C1, 0x0C4C07C2, 0x0C4F07C4, 0x0C5207C6, 0x0C5407C7, 0x0C5707C9, 0x0C5A07CB, 0x0C5C07CC, 0x0C5F07CE, 0x0C6207D0, 0x0C6507D2, 0x0C6707D3, 0x0C6A07D5, 0x0C6D07D7, 0x0C6F07D8, 0x0C7207DA, 0x0C7507DC, 0x0C7807DE, 0x0C7A07DF, 0x0C7D07E1, 0x0C8007E3, 0x0C8207E4, 0x0C8507E6, 0x0C8807E8, 0x0C8B07EA, 0x0C8D07EB, 0x0C9007ED, 0x0C9307EF, 0x0C9507F0, 0x0C9807F2, 0x0C9B07F4, 0x0C9E07F6, 0x0CA007F7, 0x0CA307F9, 0x0CA607FB, 0x0CA807FC, 0x0CAB07FE, 0x0CAE0800, 0x0CB00801, 0x0CB30803, 0x0CB60805, 0x0CB90807, 0x0CBB0808, 0x0CBE080A, 0x0CC1080C, 0x0CC3080D, 0x0CC6080F, 0x0CC90811, 0x0CCC0813, 0x0CCE0814, 0x0CD10816, 0x0CD40818, 0x0CD60819, 0x0CD9081B, 0x0CDC081D, 0x0CDF081F, 0x0CE10820, 0x0CE40822, 0x0CE70824, 0x0CE90825, 0x0CEC0827, 0x0CEF0829, 0x0CF2082B, 0x0CF4082C, 0x0CF7082E, 0x0CFA0830, 0x0CFC0831, 0x0CFF0833, 0x0D020835, 0x0D040836, 0x0D070838, 0x0D0A083A, 0x0D0D083C, 0x0D0F083D, 0x0D12083F, 0x0D150841, 0x0D170842, 0x0D1A0844, 0x0D1D0846, 0x0D200848, 0x0D220849, 0x0D25084B, 0x0D28084D, 0x0D2A084E, 0x0D2D0850, 0x0D300852, 0x0D330854, 0x0D350855, 0x0D380857, 0x0D3B0859, 0x0D3D085A, 0x0D40085C, 0x0D43085E, 0x0D460860, 0x0D480861, 0x0D4B0863, 0x0D4E0865, 0x0D500866, 0x0D530868, 0x0D56086A, 0x0D58086B, 0x0D5B086D, 0x0D5E086F, 0x0D610871, 0x0D630872, 0x0D660874, 0x0D690876, 0x0D6B0877, 0x0D6E0879, 0x0D71087B, 0x0D74087D, 0x0D76087E, 0x0D790880, 0x0D7C0882, 0x0D7E0883, 0x0D810885, 0x0D840887, 0x0D870889, 0x0D89088A, 0x0D8C088C, 0x0D8F088E, 0x0D91088F, 0x0D940891, 0x0D970893, 0x0D9A0895, 0x0D9C0896, 0x0D9F0898, 0x0DA2089A, 0x0DA4089B, 0x0DA7089D, 0x0DAA089F, 0x0DAC08A0, 0x0DAF08A2, 0x0DB208A4, 0x0DB508A6, 0x0DB708A7, 0x0DBA08A9, 0x0DBD08AB, 0x0DBF08AC, 0x0DC208AE, 0x0DC508B0, 0x0DC808B2, 0x0DCA08B3, 0x0DCD08B5, 0x0DD008B7, 0x0DD208B8, 0x0DD508BA, 0x0DD808BC, 0x0DDB08BE, 0x0DDD08BF, 0x0DE008C1, 0x0DE308C3, 0x0DE508C4, 0x0DE808C6, 0x0DEB08C8, 0x0DEE08CA, 0x0DF008CB, 0x0DF308CD, 0x0DF608CF, 0x0DF808D0, 0x0DFB08D2, 0x0DFE08D4, 0x0E0008D5, 0x0E0308D7, 0x0E0608D9, 0x0E0908DB, 0x0E0B08DC, 0x0E0E08DE, 0x0E1108E0, 0x0E1308E1, 0x0E1608E3, 0x0E1908E5, 0x0E1C08E7, 0x0E1E08E8, 0x0E2108EA, 0x0E2408EC, 0x0E2608ED, 0x0E2908EF, 0x0E2C08F1, 0x0E2F08F3, 0x0E3108F4, 0x0E3408F6, 0x0E3708F8, 0x0E3908F9, 0x0E3C08FB, 0x0E3F08FD, 0x0E4208FF, 0x0E440900, 0x0E470902, 0x0E4A0904, 0x0E4C0905, 0x0E4F0907, 0x0E520909, 0x0E54090A, 0x0E57090C, 0x0E5A090E, 0x0E5D0910, 0x0E5F0911, 0x0E620913, 0x0E650915, 0x0E670916, 0x0E6A0918, 0x0E6D091A, 0x0E70091C, 0x0E72091D, 0x0E75091F, 0x0E780921, 0x0E7A0922, 0x0E7D0924, 0x0E800926, 0x0E830928, 0x0E850929, 0x0E88092B, 0x0E8B092D, 0x0E8D092E, 0x0E900930, 0x0E930932, 0x0E950933, 0x0E980935, 0x0E9B0937, 0x0E9E0939, 0x0EA0093A, 0x0EA3093C, 0x0EA6093E, 0x0EA8093F, 0x0EAB0941, 0x0EAE0943, 0x0EB10945, 0x0EB30946, 0x0EB60948, 0x0EB9094A, 0x0EBB094B, 0x0EBE094D, 0x0EC1094F, 0x0EC40951, 0x0EC60952, 0x0EC90954, 0x0ECC0956, 0x0ECE0957, 0x0ED10959, 0x0ED4095B, 0x0ED7095D, 0x0ED9095E, 0x0EDC0960, 0x0EDF0962, 0x0EE10963, 0x0EE40965, 0x0EE70967, 0x0EE90968, 0x0EEC096A, 0x0EEF096C, 0x0EF2096E, 0x0EF4096F, 0x0EF70971, 0x0EFA0973, 0x0EFC0974, 0x0EFF0976, 0x0F020978, 0x0F05097A, 0x0F07097B, 0x0F0A097D, 0x0F0D097F, 0x0F0F0980, 0x0F120982, 0x0F150984, 0x0F180986, 0x0F1A0987, 0x0F1D0989, 0x0F20098B, 0x0F22098C, 0x0F25098E, 0x0F280990, 0x0F2B0992, 0x0F2D0993, 0x0F300995, 0x0F330997, 0x0F350998, 0x0F38099A, 0x0F3B099C, 0x0F3D099D, 0x0F40099F, 0x0F4309A1, 0x0F4609A3, 0x0F4809A4, 0x0F4B09A6, 0x0F4E09A8, 0x0F5009A9, 0x0F5309AB, 0x0F5609AD, 0x0F5909AF, 0x0F5B09B0, 0x0F5E09B2, 0x0F6109B4, 0x0F6309B5, 0x0F6609B7, 0x0F6909B9, 0x0F6C09BB, 0x0F6E09BC, 0x0F7109BE, 0x0F7409C0, 0x0F7609C1, 0x0F7909C3, 0x0F7C09C5, 0x0F7F09C7, 0x0F8109C8, 0x0F8409CA, 0x0F8709CC, 0x0F8909CD, 0x0F8C09CF, 0x0F8F09D1, 0x0F9109D2, 0x0F9409D4, 0x0F9709D6, 0x0F9A09D8, 0x0F9C09D9, 0x0F9F09DB, 0x0FA209DD, 0x0FA409DE, 0x0FA709E0, 0x0FAA09E2, 0x0FAD09E4, 0x0FAF09E5, 0x0FB209E7, 0x0FB509E9, 0x0FB709EA, 0x0FBA09EC, 0x0FBD09EE, 0x0FC009F0, 0x0FC209F1, 0x0FC509F3, 0x0FC809F5, 0x0FCA09F6, 0x0FCD09F8, 0x0FD009FA, 0x0FD309FC, 0x0FD509FD, 0x0FD809FF, 0x0FDB0A01, 0x0FDD0A02, 0x0FE00A04, 0x0FE30A06, 0x0FE50A07, 0x0FE80A09, 0x0FEB0A0B, 0x0FEE0A0D, 0x0FF00A0E, 0x0FF30A10, 0x0FF60A12, 0x0FF80A13, 0x0FFB0A15, 0x0FFE0A17, 0x10010A19, 0x10030A1A, 0x10060A1C, 0x10090A1E, 0x100B0A1F, 0x100E0A21, 0x10110A23, 0x10140A25, 0x10160A26, 0x10190A28, 0x101C0A2A, 0x101E0A2B, 0x10210A2D, 0x10240A2F, 0x10270A31, 0x10290A32, 0x102C0A34, 0x102F0A36, 0x10310A37, 0x10340A39, 0x10370A3B, 0x10390A3C, 0x103C0A3E, 0x103F0A40, 0x10420A42, 0x10440A43, 0x10470A45, 0x104A0A47, 0x104C0A48, 0x104F0A4A, 0x10520A4C, 0x10550A4E, 0x10570A4F, 0x105A0A51, 0x105D0A53, 0x105F0A54, 0x10620A56, 0x10650A58, 0x10680A5A, 0x106A0A5B, 0x106D0A5D, 0x10700A5F, 0x10720A60, 0x10750A62, 0x10780A64, 0x107A0A65, 0x107D0A67, 0x10800A69, 0x10830A6B, 0x10850A6C, 0x10880A6E, 0x108B0A70, 0x108D0A71, 0x10900A73, 0x10930A75, 0x10960A77, 0x10980A78, 0x109B0A7A, 0x109E0A7C, 0x10A00A7D, 0x10A30A7F, 0x10A60A81, 0x10A90A83, 0x10AB0A84, 0x10AE0A86, 0x10B10A88, 0x10B30A89, 0x10B60A8B, 0x10B90A8D, 0x10BC0A8F, 0x10BE0A90, 0x10C10A92, 0x10C40A94, 0x10C60A95, 0x10C90A97, 0x10CC0A99, 0x10CE0A9A, 0x10D10A9C, 0x10D40A9E, 0x10D70AA0, 0x10D90AA1, 0x10DC0AA3, 0x10DF0AA5, 0x10E10AA6, 0x10E40AA8, 0x10E70AAA, 0x10EA0AAC, 0x10EC0AAD, 0x10EF0AAF, 0x10F20AB1, 0x10F40AB2, 0x10F70AB4, 0x10FA0AB6, 0x10FD0AB8, 0x10FF0AB9, 0x11020ABB, 0x11050ABD, 0x11070ABE, 0x110A0AC0, 0x110D0AC2, 0x11100AC4, 0x11120AC5, 0x11150AC7, 0x11180AC9, 0x111A0ACA, 0x111D0ACC, 0x11200ACE, 0x11220ACF, 0x11250AD1, 0x11280AD3, 0x112B0AD5, 0x112D0AD6, 0x11300AD8, 0x11330ADA, 0x11350ADB, 0x11380ADD, 0x113B0ADF, 0x113E0AE1, 0x11400AE2, 0x11430AE4, 0x11460AE6, 0x11480AE7, 0x114B0AE9, 0x114E0AEB, 0x11510AED, 0x11530AEE, 0x11560AF0, 0x11590AF2, 0x115B0AF3, 0x115E0AF5, 0x11610AF7, 0x11640AF9, 0x11660AFA, 0x11690AFC, 0x116C0AFE, 0x116E0AFF, 0x11710B01, 0x11740B03, 0x11760B04, 0x11790B06, 0x117C0B08, 0x117F0B0A, 0x11810B0B, 0x11840B0D, 0x11870B0F, 0x11890B10, 0x118C0B12, 0x118F0B14, 0x11920B16, 0x11940B17, 0x11970B19, 0x119A0B1B, 0x119C0B1C, 0x119F0B1E, 0x11A20B20, 0x11A50B22, 0x11A70B23, 0x11AA0B25, 0x11AD0B27, 0x11AF0B28, 0x11B20B2A, 0x11B50B2C, 0x11B80B2E, 0x11BA0B2F, 0x11BD0B31, 0x11C00B33, 0x11C20B34, 0x11C50B36, 0x11C80B38, 0x11CA0B39, 0x11CD0B3B, 0x11D00B3D, 0x11D30B3F, 0x11D50B40, 0x11D80B42, 0x11DB0B44, 0x11DD0B45, 0x11E00B47, 0x11E30B49, 0x11E60B4B, 0x11E80B4C, 0x11EB0B4E, 0x11EE0B50, 0x11F00B51, 0x11F30B53, 0x11F60B55, 0x11F90B57, 0x11FB0B58, 0x11FE0B5A, 0x12010B5C, 0x12030B5D, 0x12060B5F, 0x12090B61, 0x120C0B63, 0x120E0B64, 0x12110B66, 0x12140B68, 0x12160B69, 0x12190B6B, 0x121C0B6D, 0x121E0B6E, 0x12210B70, 0x12240B72, 0x12270B74, 0x12290B75, 0x122C0B77, 0x122F0B79, 0x12310B7A, 0x12340B7C, 0x12370B7E, 0x123A0B80, 0x123C0B81, 0x123F0B83, 0x12420B85, 0x12440B86, 0x12470B88, 0x124A0B8A, 0x124D0B8C, 0x124F0B8D, 0x12520B8F, 0x12550B91, 0x12570B92, 0x125A0B94, 0x125D0B96, 0x12600B98, 0x12620B99, 0x12650B9B, 0x12680B9D, 0x126A0B9E, 0x126D0BA0, 0x12700BA2, 0x12720BA3, 0x12750BA5, 0x12780BA7, 0x127B0BA9, 0x127D0BAA, 0x12800BAC, 0x12830BAE, 0x12850BAF, 0x12880BB1, 0x128B0BB3, 0x128E0BB5, 0x12900BB6, 0x12930BB8, 0x12960BBA, 0x12980BBB, 0x129B0BBD, 0x129E0BBF, 0x12A10BC1, 0x12A30BC2, 0x12A60BC4, 0x12A90BC6, 0x12AB0BC7, 0x12AE0BC9, 0x12B10BCB, 0x12B30BCC, 0x12B60BCE, 0x12B90BD0, 0x12BC0BD2, 0x12BE0BD3, 0x12C10BD5, 0x12C40BD7, 0x12C60BD8, 0x12C90BDA, 0x12CC0BDC, 0x12CF0BDE, 0x12D10BDF, 0x12D40BE1, 0x12D70BE3, 0x12D90BE4, 0x12DC0BE6, 0x12DF0BE8, 0x12E20BEA, 0x12E40BEB, 0x12E70BED, 0x12EA0BEF, 0x12EC0BF0, 0x12EF0BF2, 0x12F20BF4, 0x12F50BF6, 0x12F70BF7, 0x12FA0BF9, 0x12FD0BFB, 0x12FF0BFC, 0x13020BFE, 0x13050C00, 0x13070C01, 0x130A0C03, 0x130D0C05, 0x13100C07, 0x13120C08, 0x13150C0A, 0x13180C0C, 0x131A0C0D, 0x131D0C0F, 0x13200C11, 0x13230C13, 0x13250C14, 0x13280C16, 0x132B0C18, 0x132D0C19, 0x13300C1B, 0x13330C1D, 0x13360C1F, 0x13380C20, 0x133B0C22, 0x133E0C24, 0x13400C25, 0x13430C27, 0x13460C29, 0x13490C2B, 0x134B0C2C, 0x134E0C2E, 0x13510C30, 0x13530C31, 0x13560C33, 0x13590C35, 0x135B0C36, 0x135E0C38, 0x13610C3A, 0x13640C3C, 0x13660C3D, 0x13690C3F, 0x136C0C41, 0x136E0C42, 0x13710C44, 0x13740C46, 0x13770C48, 0x13790C49, 0x137C0C4B, 0x137F0C4D, 0x13810C4E, 0x13840C50, 0x13870C52, 0x138A0C54, 0x138C0C55, 0x138F0C57, 0x13920C59, 0x13940C5A, 0x13970C5C, 0x139A0C5E, 0x139D0C60, 0x139F0C61, 0x13A20C63, 0x13A50C65, 0x13A70C66, 0x13AA0C68, 0x13AD0C6A, 0x13AF0C6B, 0x13B20C6D, 0x13B50C6F, 0x13B80C71, 0x13BA0C72, 0x13BD0C74, 0x13C00C76, 0x13C20C77, 0x13C50C79, 0x13C80C7B, 0x13CB0C7D, 0x13CD0C7E, 0x13D00C80, 0x13D30C82, 0x13D50C83, 0x13D80C85, 0x13DB0C87, 0x13DE0C89, 0x13E00C8A, 0x13E30C8C, 0x13E60C8E, 0x13E80C8F, 0x13EB0C91, 0x13EE0C93, 0x13F10C95, 0x13F30C96, 0x13F60C98, 0x13F90C9A, 0x13FB0C9B, 0x13FE0C9D, 0x14010C9F, 0x14030CA0, 0x14060CA2, 0x14090CA4, 0x140C0CA6, 0x140E0CA7, 0x14110CA9, 0x14140CAB, 0x14160CAC, 0x14190CAE, 0x141C0CB0, 0x141F0CB2, 0x14210CB3, 0x14240CB5, 0x14270CB7, 0x14290CB8, 0x142C0CBA, 0x142F0CBC, 0x14320CBE, 0x14340CBF, 0x14370CC1, 0x143A0CC3, 0x143C0CC4, 0x143F0CC6, 0x14420CC8, 0x14450CCA, 0x14470CCB, 0x144A0CCD, 0x144D0CCF, 0x144F0CD0, 0x14520CD2, 0x14550CD4, 0x14570CD5, 0x145A0CD7, 0x145D0CD9, 0x14600CDB, 0x14620CDC, 0x14650CDE, 0x14680CE0, 0x146A0CE1, 0x146D0CE3, 0x14700CE5, 0x14730CE7, 0x14750CE8, 0x14780CEA, 0x147B0CEC, 0x147D0CED, 0x14800CEF, 0x14830CF1, 0x14860CF3, 0x14880CF4, 0x148B0CF6, 0x148E0CF8, 0x14900CF9, 0x14930CFB, 0x14960CFD, 0x14980CFE, 0x149B0D00, 0x149E0D02, 0x14A10D04, 0x14A30D05, 0x14A60D07, 0x14A90D09, 0x14AB0D0A, 0x14AE0D0C, 0x14B10D0E, 0x14B40D10, 0x14B60D11, 0x14B90D13, 0x14BC0D15, 0x14BE0D16, 0x14C10D18, 0x14C40D1A, 0x14C70D1C, 0x14C90D1D, 0x14CC0D1F, 0x14CF0D21, 0x14D10D22, 0x14D40D24, 0x14D70D26, 0x14DA0D28, 0x14DC0D29, 0x14DF0D2B, 0x14E20D2D, 0x14E40D2E, 0x14E70D30, 0x14EA0D32, 0x14EC0D33, 0x14EF0D35, 0x14F20D37, 0x14F50D39, 0x14F70D3A, 0x14FA0D3C, 0x14FD0D3E, 0x14FF0D3F, 0x15020D41, 0x15050D43, 0x15080D45, 0x150A0D46, 0x150D0D48, 0x15100D4A, 0x15120D4B, 0x15150D4D, 0x15180D4F, 0x151B0D51, 0x151D0D52, 0x15200D54, 0x15230D56, 0x15250D57, 0x15280D59, 0x152B0D5B, 0x152E0D5D, 0x15300D5E, 0x15330D60, 0x15360D62, 0x15380D63, 0x153B0D65, 0x153E0D67, 0x15400D68, 0x15430D6A, 0x15460D6C, 0x15490D6E, 0x154B0D6F, 0x154E0D71, 0x15510D73, 0x15530D74, 0x15560D76, 0x15590D78, 0x155C0D7A, 0x155E0D7B, 0x15610D7D, 0x15640D7F, 0x15660D80, 0x15690D82, 0x156C0D84, 0x156F0D86, 0x15710D87, 0x15740D89, 0x15770D8B, 0x15790D8C, 0x157C0D8E, 0x157F0D90, 0x15820D92, 0x15840D93, 0x15870D95, 0x158A0D97, 0x158C0D98, 0x158F0D9A, 0x15920D9C, 0x15940D9D, 0x15970D9F, 0x159A0DA1, 0x159D0DA3, 0x159F0DA4, 0x15A20DA6, 0x15A50DA8, 0x15A70DA9, 0x15AA0DAB, 0x15AD0DAD, 0x15B00DAF, 0x15B20DB0, 0x15B50DB2, 0x15B80DB4, 0x15BA0DB5, 0x15BD0DB7, 0x15C00DB9, 0x15C30DBB, 0x15C50DBC, 0x15C80DBE, 0x15CB0DC0, 0x15CD0DC1, 0x15D00DC3, 0x15D30DC5, 0x15D60DC7, 0x15D80DC8, 0x15DB0DCA, 0x15DE0DCC, 0x15E00DCD, 0x15E30DCF, 0x15E60DD1, 0x15E80DD2, 0x15EB0DD4, 0x15EE0DD6, 0x15F10DD8, 0x15F30DD9, 0x15F60DDB, 0x15F90DDD, 0x15FB0DDE, 0x15FE0DE0, 0x16010DE2, 0x16040DE4, 0x16060DE5, 0x16090DE7, 0x160C0DE9, 0x160E0DEA, 0x16110DEC, 0x16140DEE, 0x16170DF0, 0x16190DF1, 0x161C0DF3, 0x161F0DF5, 0x16210DF6, 0x16240DF8, 0x16270DFA, 0x162A0DFC, 0x162C0DFD, 0x162F0DFF, 0x16320E01, 0x16340E02, 0x16370E04, 0x163A0E06, 0x163C0E07, 0x163F0E09, 0x16420E0B, 0x16450E0D, 0x16470E0E, 0x164A0E10, 0x164D0E12, 0x164F0E13, 0x16520E15, 0x16550E17, 0x16580E19, 0x165A0E1A, 0x165D0E1C, 0x16600E1E, 0x16620E1F, 0x16650E21, 0x16680E23, 0x166B0E25, 0x166D0E26, 0x16700E28, 0x16730E2A, 0x16750E2B, 0x16780E2D, 0x167B0E2F, 0x167E0E31, 0x16800E32, 0x16830E34, 0x16860E36, 0x16880E37, 0x168B0E39, 0x168E0E3B, 0x16900E3C, 0x16930E3E, 0x16960E40, 0x16990E42, 0x169B0E43, 0x169E0E45, 0x16A10E47, 0x16A30E48, 0x16A60E4A, 0x16A90E4C, 0x16AC0E4E, 0x16AE0E4F, 0x16B10E51, 0x16B40E53, 0x16B60E54, 0x16B90E56, 0x16BC0E58, 0x16BF0E5A, 0x16C10E5B, 0x16C40E5D, 0x16C70E5F, 0x16C90E60, 0x16CC0E62, 0x16CF0E64, 0x16D10E65, 0x16D40E67, 0x16D70E69, 0x16DA0E6B, 0x16DC0E6C, 0x16DF0E6E, 0x16E20E70, 0x16E40E71, 0x16E70E73, 0x16EA0E75, 0x16ED0E77, 0x16EF0E78, 0x16F20E7A, 0x16F50E7C, 0x16F70E7D, 0x16FA0E7F, 0x16FD0E81, 0x17000E83, 0x17020E84, 0x17050E86, 0x17080E88, 0x170A0E89, 0x170D0E8B, 0x17100E8D, 0x17130E8F, 0x17150E90, 0x17180E92, 0x171B0E94, 0x171D0E95, 0x17200E97, 0x17230E99, 0x17250E9A, 0x17280E9C, 0x172B0E9E, 0x172E0EA0, 0x17300EA1, 0x17330EA3, 0x17360EA5, 0x17380EA6, 0x173B0EA8, 0x173E0EAA, 0x17410EAC, 0x17430EAD, 0x17460EAF, 0x17490EB1, 0x174B0EB2, 0x174E0EB4, 0x17510EB6, 0x17540EB8, 0x17560EB9, 0x17590EBB, 0x175C0EBD, 0x175E0EBE, 0x17610EC0, 0x17640EC2, 0x17670EC4, 0x17690EC5, 0x176C0EC7, 0x176F0EC9, 0x17710ECA, 0x17740ECC, 0x17770ECE, 0x17790ECF, 0x177C0ED1, 0x177F0ED3, 0x17820ED5, 0x17840ED6, 0x17870ED8, 0x178A0EDA, 0x178C0EDB, 0x178F0EDD, 0x17920EDF, 0x17950EE1, 0x17970EE2, 0x179A0EE4, 0x179D0EE6, 0x179F0EE7, 0x17A20EE9, 0x17A50EEB, 0x17A80EED, 0x17AA0EEE, 0x17AD0EF0, 0x17B00EF2, 0x17B20EF3, 0x17B50EF5, 0x17B80EF7, 0x17BB0EF9, 0x17BD0EFA, 0x17C00EFC, 0x17C30EFE, 0x17C50EFF, 0x17C80F01, 0x17CB0F03, 0x17CD0F04, 0x17D00F06, 0x17D30F08, 0x17D60F0A, 0x17D80F0B, 0x17DB0F0D, 0x17DE0F0F, 0x17E00F10, 0x17E30F12, 0x17E60F14, 0x17E90F16, 0x17EB0F17, 0x17EE0F19, 0x17F10F1B, 0x17F30F1C, 0x17F60F1E, 0x17F90F20, 0x17FC0F22, 0x17FE0F23, 0x18010F25, 0x18040F27, 0x18060F28, 0x18090F2A, 0x180C0F2C, 0x180F0F2E, 0x18110F2F, 0x18140F31, 0x18170F33, 0x18190F34, 0x181C0F36, 0x181F0F38, 0x18210F39, 0x18240F3B, 0x18270F3D, 0x182A0F3F, 0x182C0F40, 0x182F0F42, 0x18320F44, 0x18340F45, 0x18370F47, 0x183A0F49, 0x183D0F4B, 0x183F0F4C, 0x18420F4E, 0x18450F50, 0x18470F51, 0x184A0F53, 0x184D0F55, 0x18500F57, 0x18520F58, 0x18550F5A, 0x18580F5C, 0x185A0F5D, 0x185D0F5F, 0x18600F61, 0x18630F63, 0x18650F64, 0x18680F66, 0x186B0F68, 0x186D0F69, 0x18700F6B, 0x18730F6D, 0x18750F6E, 0x18780F70, 0x187B0F72, 0x187E0F74, 0x18800F75, 0x18830F77, 0x18860F79, 0x18880F7A, 0x188B0F7C, 0x188E0F7E, 0x18910F80, 0x18930F81, 0x18960F83, 0x18990F85, 0x189B0F86, 0x189E0F88, 0x18A10F8A, 0x18A40F8C, 0x18A60F8D, 0x18A90F8F, 0x18AC0F91, 0x18AE0F92, 0x18B10F94, 0x18B40F96, 0x18B60F97, 0x18B90F99, 0x18BC0F9B, 0x18BF0F9D, 0x18C10F9E, 0x18C40FA0, 0x18C70FA2, 0x18C90FA3, 0x18CC0FA5, 0x18CF0FA7, 0x18D20FA9, 0x18D40FAA, 0x18D70FAC, 0x18DA0FAE, 0x18DC0FAF, 0x18DF0FB1, 0x18E20FB3, 0x18E50FB5, 0x18E70FB6, 0x18EA0FB8, 0x18ED0FBA, 0x18EF0FBB, 0x18F20FBD, 0x18F50FBF, 0x18F80FC1, 0x18FA0FC2, 0x18FD0FC4, 0x19000FC6, 0x19020FC7, 0x19050FC9, 0x19080FCB, 0x190A0FCC, 0x190D0FCE, 0x19100FD0, 0x19130FD2, 0x19150FD3, 0x19180FD5, 0x191B0FD7, 0x191D0FD8, 0x19200FDA, 0x19230FDC, 0x19260FDE, 0x19280FDF, 0x192B0FE1, 0x192E0FE3, 0x19300FE4, 0x19330FE6, 0x19360FE8, 0x19390FEA, 0x193B0FEB, 0x193E0FED, 0x19410FEF, 0x19430FF0, 0x19460FF2, 0x19490FF4, 0x194C0FF6, 0x194E0FF7, 0x19510FF9, 0x19540FFB, 0x19560FFC, 0x19590FFE, 0x195C1000, 0x195E1001, 0x19611003, 0x19641005, 0x19671007, 0x19691008, 0x196C100A, 0x196F100C, 0x1971100D, 0x1974100F, 0x19771011, 0x197A1013, 0x197C1014, 0x197F1016, 0x19821018, 0x19841019, 0x1987101B, 0x198A101D, 0x198D101F, 0x198F1020, 0x19921022, 0x19951024, 0x19971025, 0x199A1027, 0x199D1029, 0x19A0102B, 0x19A2102C, 0x19A5102E, 0x19A81030, 0x19AA1031, 0x19AD1033, 0x19B01035, 0x19B21036, 0x19B51038, 0x19B8103A, 0x19BB103C, 0x19BD103D, 0x19C0103F, 0x19C31041, 0x19C51042, 0x19C81044, 0x19CB1046, 0x19CE1048, 0x19D01049, 0x19D3104B, 0x19D6104D, 0x19D8104E, 0x19DB1050, 0x19DE1052, 0x19E11054, 0x19E31055, 0x19E61057, 0x19E91059, 0x19EB105A, 0x19EE105C, 0x19F1105E, 0x19F41060, 0x19F61061, 0x19F91063, 0x19FC1065, 0x19FE1066, 0x1A011068, 0x1A04106A, 0x1A06106B, 0x1A09106D, 0x1A0C106F, 0x1A0F1071, 0x1A111072, 0x1A141074, 0x1A171076, 0x1A191077, 0x1A1C1079, 0x1A1F107B, 0x1A22107D, 0x1A24107E, 0x1A271080, 0x1A2A1082, 0x1A2C1083, 0x1A2F1085, 0x1A321087, 0x1A351089, 0x1A37108A, 0x1A3A108C, 0x1A3D108E, 0x1A3F108F, 0x1A421091, 0x1A451093, 0x1A481095, 0x1A4A1096, 0x1A4D1098, 0x1A50109A, 0x1A52109B, 0x1A55109D, 0x1A58109F, 0x1A5A10A0, 0x1A5D10A2, 0x1A6010A4, 0x1A6310A6, 0x1A6510A7, 0x1A6810A9, 0x1A6B10AB, 0x1A6D10AC, 0x1A7010AE, 0x1A7310B0, 0x1A7610B2, 0x1A7810B3, 0x1A7B10B5, 0x1A7E10B7, 0x1A8010B8, 0x1A8310BA, 0x1A8610BC, 0x1A8910BE, 0x1A8B10BF, 0x1A8E10C1, 0x1A9110C3, 0x1A9310C4, 0x1A9610C6, 0x1A9910C8, 0x1A9C10CA, 0x1A9E10CB, 0x1AA110CD, 0x1AA410CF, 0x1AA610D0, 0x1AA910D2, 0x1AAC10D4, 0x1AAE10D5, 0x1AB110D7, 0x1AB410D9, 0x1AB710DB, 0x1AB910DC, 0x1ABC10DE, 0x1ABF10E0, 0x1AC110E1, 0x1AC410E3, 0x1AC710E5, 0x1ACA10E7, 0x1ACC10E8, 0x1ACF10EA, 0x1AD210EC, 0x1AD410ED, 0x1AD710EF, 0x1ADA10F1, 0x1ADD10F3, 0x1ADF10F4, 0x1AE210F6, 0x1AE510F8, 0x1AE710F9, 0x1AEA10FB, 0x1AED10FD, 0x1AEF10FE, 0x1AF21100, 0x1AF51102, 0x1AF81104, 0x1AFA1105, 0x1AFD1107, 0x1B001109, 0x1B02110A, 0x1B05110C, 0x1B08110E, 0x1B0B1110, 0x1B0D1111, 0x1B101113, 0x1B131115, 0x1B151116, 0x1B181118, 0x1B1B111A, 0x1B1E111C, 0x1B20111D, 0x1B23111F, 0x1B261121, 0x1B281122, 0x1B2B1124, 0x1B2E1126, 0x1B311128, 0x1B331129, 0x1B36112B, 0x1B39112D, 0x1B3B112E, 0x1B3E1130, 0x1B411132, 0x1B431133, 0x1B461135, 0x1B491137, 0x1B4C1139, 0x1B4E113A, 0x1B51113C, 0x1B54113E, 0x1B56113F, 0x1B591141, 0x1B5C1143, 0x1B5F1145, 0x1B611146, 0x1B641148, 0x1B67114A, 0x1B69114B, 0x1B6C114D, 0x1B6F114F, 0x1B721151, 0x1B741152, 0x1B771154, 0x1B7A1156, 0x1B7C1157, 0x1B7F1159, 0x1B82115B, 0x1B85115D, 0x1B87115E, 0x1B8A1160, 0x1B8D1162, 0x1B8F1163, 0x1B921165, 0x1B951167, 0x1B971168, 0x1B9A116A, 0x1B9D116C, 0x1BA0116E, 0x1BA2116F, 0x1BA51171, 0x1BA81173, 0x1BAA1174, 0x1BAD1176, 0x1BB01178, 0x1BB3117A, 0x1BB5117B, 0x1BB8117D, 0x1BBB117F, 0x1BBD1180, 0x1BC01182, 0x1BC31184, 0x1BC61186, 0x1BC81187, 0x1BCB1189, 0x1BCE118B, 0x1BD0118C, 0x1BD3118E, 0x1BD61190, 0x1BD91192, 0x1BDB1193, 0x1BDE1195, 0x1BE11197, 0x1BE31198, 0x1BE6119A, 0x1BE9119C, 0x1BEB119D, 0x1BEE119F, 0x1BF111A1, 0x1BF411A3, 0x1BF611A4, 0x1BF911A6, 0x1BFC11A8, 0x1BFE11A9, 0x1C0111AB, 0x1C0411AD, 0x1C0711AF, 0x1C0911B0, 0x1C0C11B2, 0x1C0F11B4, 0x1C1111B5, 0x1C1411B7, 0x1C1711B9, 0x1C1A11BB, 0x1C1C11BC, 0x1C1F11BE, 0x1C2211C0, 0x1C2411C1, 0x1C2711C3, 0x1C2A11C5, 0x1C2D11C7, 0x1C2F11C8, 0x1C3211CA, 0x1C3511CC, 0x1C3711CD, 0x1C3A11CF, 0x1C3D11D1, 0x1C3F11D2, 0x1C4211D4, 0x1C4511D6, 0x1C4811D8, 0x1C4A11D9, 0x1C4D11DB, 0x1C5011DD, 0x1C5211DE, 0x1C5511E0, 0x1C5811E2, 0x1C5B11E4, 0x1C5D11E5, 0x1C6011E7, 0x1C6311E9, 0x1C6511EA, 0x1C6811EC, 0x1C6B11EE, 0x1C6E11F0, 0x1C7011F1, 0x1C7311F3, 0x1C7611F5, 0x1C7811F6, 0x1C7B11F8, 0x1C7E11FA, 0x1C8111FC, 0x1C8311FD, 0x1C8611FF, 0x1C891201, 0x1C8B1202, 0x1C8E1204, 0x1C911206, 0x1C931207, 0x1C961209, 0x1C99120B, 0x1C9C120D, 0x1C9E120E, 0x1CA11210, 0x1CA41212, 0x1CA61213, 0x1CA91215, 0x1CAC1217, 0x1CAF1219, 0x1CB1121A, 0x1CB4121C, 0x1CB7121E, 0x1CB9121F, 0x1CBC1221, 0x1CBF1223, 0x1CC21225, 0x1CC41226, 0x1CC71228, 0x1CCA122A, 0x1CCC122B, 0x1CCF122D, 0x1CD2122F, 0x1CD41230, 0x1CD71232, 0x1CDA1234, 0x1CDD1236, 0x1CDF1237, 0x1CE21239, 0x1CE5123B, 0x1CE7123C, 0x1CEA123E, 0x1CED1240, 0x1CF01242, 0x1CF21243, 0x1CF51245, 0x1CF81247, 0x1CFA1248, 0x1CFD124A, 0x1D00124C, 0x1D03124E, 0x1D05124F, 0x1D081251, 0x1D0B1253, 0x1D0D1254, 0x1D101256, 0x1D131258, 0x1D16125A, 0x1D18125B, 0x1D1B125D, 0x1D1E125F, 0x1D201260, 0x1D231262, 0x1D261264, 0x1D281265, 0x1D2B1267, 0x1D2E1269, 0x1D31126B, 0x1D33126C, 0x1D36126E, 0x1D391270, 0x1D3B1271, 0x1D3E1273, 0x1D411275, 0x1D441277, 0x1D461278, 0x1D49127A, 0x1D4C127C, 0x1D4E127D, 0x1D51127F, 0x1D541281, 0x1D571283, 0x1D591284, 0x1D5C1286, 0x1D5F1288, 0x1D611289, 0x1D64128B, 0x1D67128D, 0x1D6A128F, 0x1D6C1290, 0x1D6F1292, 0x1D721294, 0x1D741295, 0x1D771297, 0x1D7A1299, 0x1D7C129A, 0x1D7F129C, 0x1D82129E, 0x1D8512A0, 0x1D8712A1, 0x1D8A12A3, 0x1D8D12A5, 0x1D8F12A6, 0x1D9212A8, 0x1D9512AA, 0x1D9812AC, 0x1D9A12AD, 0x1D9D12AF, 0x1DA012B1, 0x1DA212B2, 0x1DA512B4, 0x1DA812B6, 0x1DAB12B8, 0x1DAD12B9, 0x1DB012BB, 0x1DB312BD, 0x1DB512BE, 0x1DB812C0, 0x1DBB12C2, 0x1DBE12C4, 0x1DC012C5, 0x1DC312C7, 0x1DC612C9, 0x1DC812CA, 0x1DCB12CC, 0x1DCE12CE, 0x1DD012CF, 0x1DD312D1, 0x1DD612D3, 0x1DD912D5, 0x1DDB12D6, 0x1DDE12D8, 0x1DE112DA, 0x1DE312DB, 0x1DE612DD, 0x1DE912DF, 0x1DEC12E1, 0x1DEE12E2, 0x1DF112E4, 0x1DF412E6, 0x1DF612E7, 0x1DF912E9, 0x1DFC12EB, 0x1DFF12ED, 0x1E0112EE, 0x1E0412F0, 0x1E0712F2, 0x1E0912F3, 0x1E0C12F5, 0x1E0F12F7, 0x1E1212F9, 0x1E1412FA, 0x1E1712FC, 0x1E1A12FE, 0x1E1C12FF, 0x1E1F1301, 0x1E221303, 0x1E241304, 0x1E271306, 0x1E2A1308, 0x1E2D130A, 0x1E2F130B, 0x1E32130D, 0x1E35130F, 0x1E371310, 0x1E3A1312, 0x1E3D1314, 0x1E401316, 0x1E421317, 0x1E451319, 0x1E48131B, 0x1E4A131C, 0x1E4D131E, 0x1E501320, 0x1E531322, 0x1E551323, 0x1E581325, 0x1E5B1327, 0x1E5D1328, 0x1E60132A, 0x1E63132C, 0x1E66132E, 0x1E68132F, 0x1E6B1331, 0x1E6E1333, 0x1E701334, 0x1E731336, 0x1E761338, 0x1E781339, 0x1E7B133B, 0x1E7E133D, 0x1E81133F, 0x1E831340, 0x1E861342, 0x1E891344, 0x1E8B1345, 0x1E8E1347, 0x1E911349, 0x1E94134B, 0x1E96134C, 0x1E99134E, 0x1E9C1350, 0x1E9E1351, 0x1EA11353, 0x1EA41355, 0x1EA71357, 0x1EA91358, 0x1EAC135A, 0x1EAF135C, 0x1EB1135D, 0x1EB4135F, 0x1EB71361, 0x1EBA1363, 0x1EBC1364, 0x1EBF1366, 0x1EC21368, 0x1EC41369, 0x1EC7136B, 0x1ECA136D, 0x1ECC136E, 0x1ECF1370, 0x1ED21372, 0x1ED51374, 0x1ED71375, 0x1EDA1377, 0x1EDD1379, 0x1EDF137A, 0x1EE2137C, 0x1EE5137E, 0x1EE81380, 0x1EEA1381, 0x1EED1383, 0x1EF01385, 0x1EF21386, 0x1EF51388, 0x1EF8138A, 0x1EFB138C, 0x1EFD138D, 0x1F00138F, 0x1F031391, 0x1F051392, 0x1F081394, 0x1F0B1396, 0x1F0D1397, 0x1F101399, 0x1F13139B, 0x1F16139D, 0x1F18139E, 0x1F1B13A0, 0x1F1E13A2, 0x1F2013A3, 0x1F2313A5, 0x1F2613A7, 0x1F2913A9, 0x1F2B13AA, 0x1F2E13AC, 0x1F3113AE, 0x1F3313AF, 0x1F3613B1, 0x1F3913B3, 0x1F3C13B5, 0x1F3E13B6, 0x1F4113B8, 0x1F4413BA, 0x1F4613BB, 0x1F4913BD, 0x1F4C13BF, 0x1F4F13C1, 0x1F5113C2, 0x1F5413C4, 0x1F5713C6, 0x1F5913C7, 0x1F5C13C9, 0x1F5F13CB, 0x1F6113CC, 0x1F6413CE, 0x1F6713D0, 0x1F6A13D2, 0x1F6C13D3, 0x1F6F13D5, 0x1F7213D7, 0x1F7413D8, 0x1F7713DA, 0x1F7A13DC, 0x1F7D13DE, 0x1F7F13DF, 0x1F8213E1, 0x1F8513E3, 0x1F8713E4, 0x1F8A13E6, 0x1F8D13E8, 0x1F9013EA, 0x1F9213EB, 0x1F9513ED, 0x1F9813EF, 0x1F9A13F0, 0x1F9D13F2, 0x1FA013F4, 0x1FA313F6, 0x1FA513F7, 0x1FA813F9, 0x1FAB13FB, 0x1FAD13FC, 0x1FB013FE, 0x1FB31400, 0x1FB51401, 0x1FB81403, 0x1FBB1405, 0x1FBE1407, 0x1FC01408, 0x1FC3140A, 0x1FC6140C, 0x1FC8140D, 0x1FCB140F, 0x1FCE1411, 0x1FD11413, 0x1FD31414, 0x1FD61416, 0x1FD91418, 0x1FDB1419, 0x1FDE141B, 0x1FE1141D, 0x1FE4141F, 0x1FE61420, 0x1FE91422, 0x1FEC1424, 0x1FEE1425, 0x1FF11427, 0x1FF41429, 0x1FF7142B, 0x1FF9142C, 0x1FFC142E, 0x1FFF1430, 0x20011431, 0x20041433, 0x20071435, 0x20091436, 0x200C1438, 0x200F143A, 0x2012143C, 0x2014143D, 0x2017143F, 0x201A1441, 0x201C1442, 0x201F1444, 0x20221446, 0x20251448, 0x20271449, 0x202A144B, 0x202D144D, 0x202F144E, 0x20321450, 0x20351452, 0x20381454, 0x203A1455, 0x203D1457, 0x20401459, 0x2042145A, 0x2045145C, 0x2048145E, 0x204B1460, 0x204D1461, 0x20501463, 0x20531465, 0x20551466, 0x20581468, 0x205B146A, 0x205D146B, 0x2060146D, 0x2063146F, 0x20661471, 0x20681472, 0x206B1474, 0x206E1476, 0x20701477, 0x20731479, 0x2076147B, 0x2079147D, 0x207B147E, 0x207E1480, 0x20811482, 0x20831483, 0x20861485, 0x20891487, 0x208C1489, 0x208E148A, 0x2091148C, 0x2094148E, 0x2096148F, 0x20991491, 0x209C1493, 0x209F1495, 0x20A11496, 0x20A41498, 0x20A7149A, 0x20A9149B, 0x20AC149D, 0x20AF149F, 0x20B114A0, 0x20B414A2, 0x20B714A4, 0x20BA14A6, 0x20BC14A7, 0x20BF14A9, 0x20C214AB, 0x20C414AC, 0x20C714AE, 0x20CA14B0, 0x20CD14B2, 0x20CF14B3, 0x20D214B5, 0x20D514B7, 0x20D714B8, 0x20DA14BA, 0x20DD14BC, 0x20E014BE, 0x20E214BF, 0x20E514C1, 0x20E814C3, 0x20EA14C4, 0x20ED14C6, 0x20F014C8, 0x20F214C9, 0x20F514CB, 0x20F814CD, 0x20FB14CF, 0x20FD14D0, 0x210014D2, 0x210314D4, 0x210514D5, 0x210814D7, 0x210B14D9, 0x210E14DB, 0x211014DC, 0x211314DE, 0x211614E0, 0x211814E1, 0x211B14E3, 0x211E14E5, 0x212114E7, 0x212314E8, 0x212614EA, 0x212914EC, 0x212B14ED, 0x212E14EF, 0x213114F1, 0x213414F3, 0x213614F4, 0x213914F6, 0x213C14F8, 0x213E14F9, 0x214114FB, 0x214414FD, 0x214614FE, 0x21491500, 0x214C1502, 0x214F1504, 0x21511505, 0x21541507, 0x21571509, 0x2159150A, 0x215C150C, 0x215F150E, 0x21621510, 0x21641511, 0x21671513, 0x216A1515, 0x216C1516, 0x216F1518, 0x2172151A, 0x2175151C, 0x2177151D, 0x217A151F, 0x217D1521, 0x217F1522, 0x21821524, 0x21851526, 0x21881528, 0x218A1529, 0x218D152B, 0x2190152D, 0x2192152E, 0x21951530, 0x21981532, 0x219A1533, 0x219D1535, 0x21A01537, 0x21A31539, 0x21A5153A, 0x21A8153C, 0x21AB153E, 0x21AD153F, 0x21B01541, 0x21B31543, 0x21B61545, 0x21B81546, 0x21BB1548, 0x21BE154A, 0x21C0154B, 0x21C3154D, 0x21C6154F, 0x21C91551, 0x21CB1552, 0x21CE1554, 0x21D11556, 0x21D31557, 0x21D61559, 0x21D9155B, 0x21DC155D, 0x21DE155E, 0x21E11560, 0x21E41562, 0x21E61563, 0x21E91565, 0x21EC1567, 0x21EE1568, 0x21F1156A, 0x21F4156C, 0x21F7156E, 0x21F9156F, 0x21FC1571, 0x21FF1573, 0x22011574, 0x22041576, 0x22071578, 0x220A157A, 0x220C157B, 0x220F157D, 0x2212157F, 0x22141580, 0x22171582, 0x221A1584, 0x221D1586, 0x221F1587, 0x22221589, 0x2225158B, 0x2227158C, 0x222A158E, 0x222D1590, 0x22301592, 0x22321593, 0x22351595, 0x22381597, 0x223A1598, 0x223D159A, 0x2240159C, 0x2242159D, 0x2245159F, 0x224815A1, 0x224B15A3, 0x224D15A4, 0x225015A6, 0x225315A8, 0x225515A9, 0x225815AB, 0x225B15AD, 0x225E15AF, 0x226015B0, 0x226315B2, 0x226615B4, 0x226815B5, 0x226B15B7, 0x226E15B9, 0x227115BB, 0x227315BC, 0x227615BE, 0x227915C0, 0x227B15C1, 0x227E15C3, 0x228115C5, 0x228415C7, 0x228615C8, 0x228915CA, 0x228C15CC, 0x228E15CD, 0x229115CF, 0x229415D1, 0x229615D2, 0x229915D4, 0x229C15D6, 0x229F15D8, 0x22A115D9, 0x22A415DB, 0x22A715DD, 0x22A915DE, 0x22AC15E0, 0x22AF15E2, 0x22B215E4, 0x22B415E5, 0x22B715E7, 0x22BA15E9, 0x22BC15EA, 0x22BF15EC, 0x22C215EE, 0x22C515F0, 0x22C715F1, 0x22CA15F3, 0x22CD15F5, 0x22CF15F6, 0x22D215F8, 0x22D515FA, 0x22D815FC, 0x22DA15FD, 0x22DD15FF, 0x22E01601, 0x22E21602, 0x22E51604, 0x22E81606, 0x22EA1607, 0x22ED1609, 0x22F0160B, 0x22F3160D, 0x22F5160E, 0x22F81610, 0x22FB1612, 0x22FD1613, 0x23001615, 0x23031617, 0x23061619, 0x2308161A, 0x230B161C, 0x230E161E, 0x2310161F, 0x23131621, 0x23161623, 0x23191625, 0x231B1626, 0x231E1628, 0x2321162A, 0x2323162B, 0x2326162D, 0x2329162F, 0x232B1630, 0x232E1632, 0x23311634, 0x23341636, 0x23361637, 0x23391639, 0x233C163B, 0x233E163C, 0x2341163E, 0x23441640, 0x23471642, 0x23491643, 0x234C1645, 0x234F1647, 0x23511648, 0x2354164A, 0x2357164C, 0x235A164E, 0x235C164F, 0x235F1651, 0x23621653, 0x23641654, 0x23671656, 0x236A1658, 0x236D165A, 0x236F165B, 0x2372165D, 0x2375165F, 0x23771660, 0x237A1662, 0x237D1664, 0x237F1665, 0x23821667, 0x23851669, 0x2388166B, 0x238A166C, 0x238D166E, 0x23901670, 0x23921671, 0x23951673, 0x23981675, 0x239B1677, 0x239D1678, 0x23A0167A, 0x23A3167C, 0x23A5167D, 0x23A8167F, 0x23AB1681, 0x23AE1683, 0x23B01684, 0x23B31686, 0x23B61688, 0x23B81689, 0x23BB168B, 0x23BE168D, 0x23C1168F, 0x23C31690, 0x23C61692, 0x23C91694, 0x23CB1695, 0x23CE1697, 0x23D11699, 0x23D3169A, 0x23D6169C, 0x23D9169E, 0x23DC16A0, 0x23DE16A1, 0x23E116A3, 0x23E416A5, 0x23E616A6, 0x23E916A8, 0x23EC16AA, 0x23EF16AC, 0x23F116AD, 0x23F416AF, 0x23F716B1, 0x23F916B2, 0x23FC16B4, 0x23FF16B6, 0x240216B8, 0x240416B9, 0x240716BB, 0x240A16BD, 0x240C16BE, 0x240F16C0, 0x241216C2, 0x241516C4, 0x241716C5, 0x241A16C7, 0x241D16C9, 0x241F16CA, 0x242216CC, 0x242516CE, 0x242716CF, 0x242A16D1, 0x242D16D3, 0x243016D5, 0x243216D6, 0x243516D8, 0x243816DA, 0x243A16DB, 0x243D16DD, 0x244016DF, 0x244316E1, 0x244516E2, 0x244816E4, 0x244B16E6, 0x244D16E7, 0x245016E9, 0x245316EB, 0x245616ED, 0x245816EE, 0x245B16F0, 0x245E16F2, 0x246016F3, 0x246316F5, 0x246616F7, 0x246916F9, 0x246B16FA, 0x246E16FC, 0x247116FE, 0x247316FF, 0x24761701, 0x24791703, 0x247B1704, 0x247E1706, 0x24811708, 0x2484170A, 0x2486170B, 0x2489170D, 0x248C170F, 0x248E1710, 0x24911712, 0x24941714, 0x24971716, 0x24991717, 0x249C1719, 0x249F171B, 0x24A1171C, 0x24A4171E, 0x24A71720, 0x24AA1722, 0x24AC1723, 0x24AF1725, 0x24B21727, 0x24B41728, 0x24B7172A, 0x24BA172C, 0x24BD172E, 0x24BF172F, 0x24C21731, 0x24C51733, 0x24C71734, 0x24CA1736, 0x24CD1738, 0x24CF1739, 0x24D2173B, 0x24D5173D, 0x24D8173F, 0x24DA1740, 0x24DD1742, 0x24E01744, 0x24E21745, 0x24E51747, 0x24E81749, 0x24EB174B, 0x24ED174C, 0x24F0174E, 0x24F31750, 0x24F51751, 0x24F81753, 0x24FB1755, 0x24FE1757, 0x25001758, 0x2503175A, 0x2506175C, 0x2508175D, 0x250B175F, 0x250E1761, 0x25101762, 0x25131764, 0x25161766, 0x25191768, 0x251B1769, 0x251E176B, 0x2521176D, 0x2523176E, 0x25261770, 0x25291772, 0x252C1774, 0x252E1775, 0x25311777, 0x25341779, 0x2536177A, 0x2539177C, 0x253C177E, 0x253F1780, 0x25411781, 0x25441783, 0x25471785, 0x25491786, 0x254C1788, 0x254F178A, 0x2552178C, 0x2554178D, 0x2557178F, 0x255A1791, 0x255C1792, 0x255F1794, 0x25621796, 0x25641797, 0x25671799, 0x256A179B, 0x256D179D, 0x256F179E, 0x257217A0, 0x257517A2, 0x257717A3, 0x257A17A5, 0x257D17A7, 0x258017A9, 0x258217AA, 0x258517AC, 0x258817AE, 0x258A17AF, 0x258D17B1, 0x259017B3, 0x259317B5, 0x259517B6, 0x259817B8, 0x259B17BA, 0x259D17BB, 0x25A017BD, 0x25A317BF, 0x25A617C1, 0x25A817C2, 0x25AB17C4, 0x25AE17C6, 0x25B017C7, 0x25B317C9, 0x25B617CB, 0x25B817CC, 0x25BB17CE, 0x25BE17D0, 0x25C117D2, 0x25C317D3, 0x25C617D5, 0x25C917D7, 0x25CB17D8, 0x25CE17DA, 0x25D117DC, 0x25D417DE, 0x25D617DF, 0x25D917E1, 0x25DC17E3, 0x25DE17E4, 0x25E117E6, 0x25E417E8, 0x25E717EA, 0x25E917EB, 0x25EC17ED, 0x25EF17EF, 0x25F117F0, 0x25F417F2, 0x25F717F4, 0x25FA17F6, 0x25FC17F7, 0x25FF17F9, 0x260217FB, 0x260417FC, 0x260717FE, 0x260A1800, 0x260C1801, 0x260F1803, 0x26121805, 0x26151807, 0x26171808, 0x261A180A, 0x261D180C, 0x261F180D, 0x2622180F, 0x26251811, 0x26281813, 0x262A1814, 0x262D1816, 0x26301818, 0x26321819, 0x2635181B, 0x2638181D, 0x263B181F, 0x263D1820, 0x26401822, 0x26431824, 0x26451825, 0x26481827, 0x264B1829, 0x264E182B, 0x2650182C, 0x2653182E, 0x26561830, 0x26581831, 0x265B1833, 0x265E1835, 0x26601836, 0x26631838, 0x2666183A, 0x2669183C, 0x266B183D, 0x266E183F, 0x26711841, 0x26731842, 0x26761844, 0x26791846, 0x267C1848, 0x267E1849, 0x2681184B, 0x2684184D, 0x2686184E, 0x26891850, 0x268C1852, 0x268F1854, 0x26911855, 0x26941857, 0x26971859, 0x2699185A, 0x269C185C, 0x269F185E, 0x26A21860, 0x26A41861, 0x26A71863, 0x26AA1865, 0x26AC1866, 0x26AF1868, 0x26B2186A, 0x26B4186B, 0x26B7186D, 0x26BA186F, 0x26BD1871, 0x26BF1872, 0x26C21874, 0x26C51876, 0x26C71877, 0x26CA1879, 0x26CD187B, 0x26D0187D, 0x26D2187E, 0x26D51880, 0x26D81882, 0x26DA1883, 0x26DD1885, 0x26E01887, 0x26E31889, 0x26E5188A, 0x26E8188C, 0x26EB188E, 0x26ED188F, 0x26F01891, 0x26F31893, 0x26F61895, 0x26F81896, 0x26FB1898, 0x26FE189A, 0x2700189B, 0x2703189D, 0x2706189F, 0x270818A0, 0x270B18A2, 0x270E18A4, 0x271118A6, 0x271318A7, 0x271618A9, 0x271918AB, 0x271B18AC, 0x271E18AE, 0x272118B0, 0x272418B2, 0x272618B3, 0x272918B5, 0x272C18B7, 0x272E18B8, 0x273118BA, 0x273418BC, 0x273718BE, 0x273918BF, 0x273C18C1, 0x273F18C3, 0x274118C4, 0x274418C6, 0x274718C8, 0x274918C9, 0x274C18CB, 0x274F18CD, 0x275218CF, 0x275418D0, 0x275718D2, 0x275A18D4, 0x275C18D5, 0x275F18D7, 0x276218D9, 0x276518DB, 0x276718DC, 0x276A18DE, 0x276D18E0, 0x276F18E1, 0x277218E3, 0x277518E5, 0x277818E7, 0x277A18E8, 0x277D18EA, 0x278018EC, 0x278218ED, 0x278518EF, 0x278818F1, 0x278B18F3, 0x278D18F4, 0x279018F6, 0x279318F8, 0x279518F9, 0x279818FB, 0x279B18FD, 0x279D18FE, 0x27A01900, 0x27A31902, 0x27A61904, 0x27A81905, 0x27AB1907, 0x27AE1909, 0x27B0190A, 0x27B3190C, 0x27B6190E, 0x27B91910, 0x27BB1911, 0x27BE1913, 0x27C11915, 0x27C31916, 0x27C61918, 0x27C9191A, 0x27CC191C, 0x27CE191D, 0x27D1191F, 0x27D41921, 0x27D61922, 0x27D91924, 0x27DC1926, 0x27DF1928, 0x27E11929, 0x27E4192B, 0x27E7192D, 0x27E9192E, 0x27EC1930, 0x27EF1932, 0x27F11933, 0x27F41935, 0x27F71937, 0x27FA1939, 0x27FC193A, 0x27FF193C, 0x2802193E, 0x2804193F, 0x28071941, 0x280A1943, 0x280D1945, 0x280F1946, 0x28121948, 0x2815194A, 0x2817194B, 0x281A194D, 0x281D194F, 0x28201951, 0x28221952, 0x28251954, 0x28281956, 0x282A1957, 0x282D1959, 0x2830195B, 0x2833195D, 0x2835195E, 0x28381960, 0x283B1962, 0x283D1963, 0x28401965, 0x28431967, 0x28451968, 0x2848196A, 0x284B196C, 0x284E196E, 0x2850196F, 0x28531971, 0x28561973, 0x28581974, 0x285B1976, 0x285E1978, 0x2861197A, 0x2863197B, 0x2866197D, 0x2869197F, 0x286B1980, 0x286E1982, 0x28711984, 0x28741986, 0x28761987, 0x28791989, 0x287C198B, 0x287E198C, 0x2881198E, 0x28841990, 0x28871992, 0x28891993, 0x288C1995, 0x288F1997, 0x28911998, 0x2894199A, 0x2897199C, 0x2899199D, 0x289C199F, 0x289F19A1, 0x28A219A3, 0x28A419A4, 0x28A719A6, 0x28AA19A8, 0x28AC19A9, 0x28AF19AB, 0x28B219AD, 0x28B519AF, 0x28B719B0, 0x28BA19B2, 0x28BD19B4, 0x28BF19B5, 0x28C219B7, 0x28C519B9, 0x28C819BB, 0x28CA19BC, 0x28CD19BE, 0x28D019C0, 0x28D219C1, 0x28D519C3, 0x28D819C5, 0x28DB19C7, 0x28DD19C8, 0x28E019CA, 0x28E319CC, 0x28E519CD, 0x28E819CF, 0x28EB19D1, 0x28ED19D2, 0x28F019D4, 0x28F319D6, 0x28F619D8, 0x28F819D9, 0x28FB19DB, 0x28FE19DD, 0x290019DE, 0x290319E0, 0x290619E2, 0x290919E4, 0x290B19E5, 0x290E19E7, 0x291119E9, 0x291319EA, 0x291619EC, 0x291919EE, 0x291C19F0, 0x291E19F1, 0x292119F3, 0x292419F5, 0x292619F6, 0x292919F8, 0x292C19FA, 0x292E19FB, 0x293119FD, 0x293419FF, 0x29371A01, 0x29391A02, 0x293C1A04, 0x293F1A06, 0x29411A07, 0x29441A09, 0x29471A0B, 0x294A1A0D, 0x294C1A0E, 0x294F1A10, 0x29521A12, 0x29541A13, 0x29571A15, 0x295A1A17, 0x295D1A19, 0x295F1A1A, 0x29621A1C, 0x29651A1E, 0x29671A1F, 0x296A1A21, 0x296D1A23, 0x29701A25, 0x29721A26, 0x29751A28, 0x29781A2A, 0x297A1A2B, 0x297D1A2D, 0x29801A2F, 0x29821A30, 0x29851A32, 0x29881A34, 0x298B1A36, 0x298D1A37, 0x29901A39, 0x29931A3B, 0x29951A3C, 0x29981A3E, 0x299B1A40, 0x299E1A42, 0x29A01A43, 0x29A31A45, 0x29A61A47, 0x29A81A48, 0x29AB1A4A, 0x29AE1A4C, 0x29B11A4E, 0x29B31A4F, 0x29B61A51, 0x29B91A53, 0x29BB1A54, 0x29BE1A56, 0x29C11A58, 0x29C41A5A, 0x29C61A5B, 0x29C91A5D, 0x29CC1A5F, 0x29CE1A60, 0x29D11A62, 0x29D41A64, 0x29D61A65, 0x29D91A67, 0x29DC1A69, 0x29DF1A6B, 0x29E11A6C, 0x29E41A6E, 0x29E71A70, 0x29E91A71, 0x29EC1A73, 0x29EF1A75, 0x29F21A77, 0x29F41A78, 0x29F71A7A, 0x29FA1A7C, 0x29FC1A7D, 0x29FF1A7F, 0x2A021A81, 0x2A051A83, 0x2A071A84, 0x2A0A1A86, 0x2A0D1A88, 0x2A0F1A89, 0x2A121A8B, 0x2A151A8D, 0x2A181A8F, 0x2A1A1A90, 0x2A1D1A92, 0x2A201A94, 0x2A221A95, 0x2A251A97, 0x2A281A99, 0x2A2A1A9A, 0x2A2D1A9C, 0x2A301A9E, 0x2A331AA0, 0x2A351AA1, 0x2A381AA3, 0x2A3B1AA5, 0x2A3D1AA6, 0x2A401AA8, 0x2A431AAA, 0x2A461AAC, 0x2A481AAD, 0x2A4B1AAF, 0x2A4E1AB1, 0x2A501AB2, 0x2A531AB4, 0x2A561AB6, 0x2A591AB8, 0x2A5B1AB9, 0x2A5E1ABB, 0x2A611ABD, 0x2A631ABE, 0x2A661AC0, 0x2A691AC2, 0x2A6C1AC4, 0x2A6E1AC5, 0x2A711AC7, 0x2A741AC9, 0x2A761ACA, 0x2A791ACC, 0x2A7C1ACE, 0x2A7E1ACF, 0x2A811AD1, 0x2A841AD3, 0x2A871AD5, 0x2A891AD6, 0x2A8C1AD8, 0x2A8F1ADA, 0x2A911ADB, 0x2A941ADD, 0x2A971ADF, 0x2A9A1AE1, 0x2A9C1AE2, 0x2A9F1AE4, 0x2AA21AE6, 0x2AA41AE7, 0x2AA71AE9, 0x2AAA1AEB, 0x2AAD1AED, 0x2AAF1AEE, 0x2AB21AF0, 0x2AB51AF2, 0x2AB71AF3, 0x2ABA1AF5, 0x2ABD1AF7, 0x2AC01AF9, 0x2AC21AFA, 0x2AC51AFC, 0x2AC81AFE, 0x2ACA1AFF, 0x2ACD1B01, 0x2AD01B03, 0x2AD21B04, 0x2AD51B06, 0x2AD81B08, 0x2ADB1B0A, 0x2ADD1B0B, 0x2AE01B0D, 0x2AE31B0F, 0x2AE51B10, 0x2AE81B12, 0x2AEB1B14, 0x2AEE1B16, 0x2AF01B17, 0x2AF31B19, 0x2AF61B1B, 0x2AF81B1C, 0x2AFB1B1E, 0x2AFE1B20, 0x2B011B22, 0x2B031B23, 0x2B061B25, 0x2B091B27, 0x2B0B1B28, 0x2B0E1B2A, 0x2B111B2C, 0x2B141B2E, 0x2B161B2F, 0x2B191B31, 0x2B1C1B33, 0x2B1E1B34, 0x2B211B36, 0x2B241B38, 0x2B261B39, 0x2B291B3B, 0x2B2C1B3D, 0x2B2F1B3F, 0x2B311B40, 0x2B341B42, 0x2B371B44, 0x2B391B45, 0x2B3C1B47, 0x2B3F1B49, 0x2B421B4B, 0x2B441B4C, 0x2B471B4E, 0x2B4A1B50, 0x2B4C1B51, 0x2B4F1B53, 0x2B521B55, 0x2B551B57, 0x2B571B58, 0x2B5A1B5A, 0x2B5D1B5C, 0x2B5F1B5D, 0x2B621B5F, 0x2B651B61, 0x2B671B62, 0x2B6A1B64, 0x2B6D1B66, 0x2B701B68, 0x2B721B69, 0x2B751B6B, 0x2B781B6D, 0x2B7A1B6E, 0x2B7D1B70, 0x2B801B72, 0x2B831B74, 0x2B851B75, 0x2B881B77, 0x2B8B1B79, 0x2B8D1B7A, 0x2B901B7C, 0x2B931B7E, 0x2B961B80, 0x2B981B81, 0x2B9B1B83, 0x2B9E1B85, 0x2BA01B86, 0x2BA31B88, 0x2BA61B8A, 0x2BA91B8C, 0x2BAB1B8D, 0x2BAE1B8F, 0x2BB11B91, 0x2BB31B92, 0x2BB61B94, 0x2BB91B96, 0x2BBB1B97, 0x2BBE1B99, 0x2BC11B9B, 0x2BC41B9D, 0x2BC61B9E, 0x2BC91BA0, 0x2BCC1BA2, 0x2BCE1BA3, 0x2BD11BA5, 0x2BD41BA7, 0x2BD71BA9, 0x2BD91BAA, 0x2BDC1BAC, 0x2BDF1BAE, 0x2BE11BAF, 0x2BE41BB1, 0x2BE71BB3, 0x2BEA1BB5, 0x2BEC1BB6, 0x2BEF1BB8, 0x2BF21BBA, 0x2BF41BBB, 0x2BF71BBD, 0x2BFA1BBF, 0x2BFD1BC1, 0x2BFF1BC2, 0x2C021BC4, 0x2C051BC6, 0x2C071BC7, 0x2C0A1BC9, 0x2C0D1BCB, 0x2C0F1BCC, 0x2C121BCE, 0x2C151BD0, 0x2C181BD2, 0x2C1A1BD3, 0x2C1D1BD5, 0x2C201BD7, 0x2C221BD8, 0x2C251BDA, 0x2C281BDC, 0x2C2B1BDE, 0x2C2D1BDF, 0x2C301BE1, 0x2C331BE3, 0x2C351BE4, 0x2C381BE6, 0x2C3B1BE8, 0x2C3E1BEA, 0x2C401BEB, 0x2C431BED, 0x2C461BEF, 0x2C481BF0, 0x2C4B1BF2, 0x2C4E1BF4, 0x2C511BF6, 0x2C531BF7, 0x2C561BF9, 0x2C591BFB, 0x2C5B1BFC, 0x2C5E1BFE, 0x2C611C00, 0x2C631C01, 0x2C661C03, 0x2C691C05, 0x2C6C1C07, 0x2C6E1C08, 0x2C711C0A, 0x2C741C0C, 0x2C761C0D, 0x2C791C0F, 0x2C7C1C11, 0x2C7F1C13, 0x2C811C14, 0x2C841C16, 0x2C871C18, 0x2C891C19, 0x2C8C1C1B, 0x2C8F1C1D, 0x2C921C1F, 0x2C941C20, 0x2C971C22, 0x2C9A1C24, 0x2C9C1C25, 0x2C9F1C27, 0x2CA21C29, 0x2CA51C2B, 0x2CA71C2C, 0x2CAA1C2E, 0x2CAD1C30, 0x2CAF1C31, 0x2CB21C33, 0x2CB51C35, 0x2CB71C36, 0x2CBA1C38, 0x2CBD1C3A, 0x2CC01C3C, 0x2CC21C3D, 0x2CC51C3F, 0x2CC81C41, 0x2CCA1C42, 0x2CCD1C44, 0x2CD01C46, 0x2CD31C48, 0x2CD51C49, 0x2CD81C4B, 0x2CDB1C4D, 0x2CDD1C4E, 0x2CE01C50, 0x2CE31C52, 0x2CE61C54, 0x2CE81C55, 0x2CEB1C57, 0x2CEE1C59, 0x2CF01C5A, 0x2CF31C5C, 0x2CF61C5E, 0x2CF91C60, 0x2CFB1C61, 0x2CFE1C63, 0x2D011C65, 0x2D031C66, 0x2D061C68, 0x2D091C6A, 0x2D0B1C6B, 0x2D0E1C6D, 0x2D111C6F, 0x2D141C71, 0x2D161C72, 0x2D191C74, 0x2D1C1C76, 0x2D1E1C77, 0x2D211C79, 0x2D241C7B, 0x2D271C7D, 0x2D291C7E, 0x2D2C1C80, 0x2D2F1C82, 0x2D311C83, 0x2D341C85, 0x2D371C87, 0x2D3A1C89, 0x2D3C1C8A, 0x2D3F1C8C, 0x2D421C8E, 0x2D441C8F, 0x2D471C91, 0x2D4A1C93, 0x2D4C1C94, 0x2D4F1C96, 0x2D521C98, 0x2D551C9A, 0x2D571C9B, 0x2D5A1C9D, 0x2D5D1C9F, 0x2D5F1CA0, 0x2D621CA2, 0x2D651CA4, 0x2D681CA6, 0x2D6A1CA7, 0x2D6D1CA9, 0x2D701CAB, 0x2D721CAC, 0x2D751CAE, 0x2D781CB0, 0x2D7B1CB2, 0x2D7D1CB3, 0x2D801CB5, 0x2D831CB7, 0x2D851CB8, 0x2D881CBA, 0x2D8B1CBC, 0x2D8E1CBE, 0x2D901CBF, 0x2D931CC1, 0x2D961CC3, 0x2D981CC4, 0x2D9B1CC6, 0x2D9E1CC8, 0x2DA01CC9, 0x2DA31CCB, 0x2DA61CCD, 0x2DA91CCF, 0x2DAB1CD0, 0x2DAE1CD2, 0x2DB11CD4, 0x2DB31CD5, 0x2DB61CD7, 0x2DB91CD9, 0x2DBC1CDB, 0x2DBE1CDC, 0x2DC11CDE, 0x2DC41CE0, 0x2DC61CE1, 0x2DC91CE3, 0x2DCC1CE5, 0x2DCF1CE7, 0x2DD11CE8, 0x2DD41CEA, 0x2DD71CEC, 0x2DD91CED, 0x2DDC1CEF, 0x2DDF1CF1, 0x2DE21CF3, 0x2DE41CF4, 0x2DE71CF6, 0x2DEA1CF8, 0x2DEC1CF9, 0x2DEF1CFB, 0x2DF21CFD, 0x2DF41CFE, 0x2DF71D00, 0x2DFA1D02, 0x2DFD1D04, 0x2DFF1D05, 0x2E021D07, 0x2E051D09, 0x2E071D0A, 0x2E0A1D0C, 0x2E0D1D0E, 0x2E101D10, 0x2E121D11, 0x2E151D13, 0x2E181D15, 0x2E1A1D16, 0x2E1D1D18, 0x2E201D1A, 0x2E231D1C, 0x2E251D1D, 0x2E281D1F, 0x2E2B1D21, 0x2E2D1D22, 0x2E301D24, 0x2E331D26, 0x2E361D28, 0x2E381D29, 0x2E3B1D2B, 0x2E3E1D2D, 0x2E401D2E, 0x2E431D30, 0x2E461D32, 0x2E481D33, 0x2E4B1D35, 0x2E4E1D37, 0x2E511D39, 0x2E531D3A, 0x2E561D3C, 0x2E591D3E, 0x2E5B1D3F, 0x2E5E1D41, 0x2E611D43, 0x2E641D45, 0x2E661D46, 0x2E691D48, 0x2E6C1D4A, 0x2E6E1D4B, 0x2E711D4D, 0x2E741D4F, 0x2E771D51, 0x2E791D52, 0x2E7C1D54, 0x2E7F1D56, 0x2E811D57, 0x2E841D59, 0x2E871D5B, 0x2E8A1D5D, 0x2E8C1D5E, 0x2E8F1D60, 0x2E921D62, 0x2E941D63, 0x2E971D65, 0x2E9A1D67, 0x2E9C1D68, 0x2E9F1D6A, 0x2EA21D6C, 0x2EA51D6E, 0x2EA71D6F, 0x2EAA1D71, 0x2EAD1D73, 0x2EAF1D74, 0x2EB21D76, 0x2EB51D78, 0x2EB81D7A, 0x2EBA1D7B, 0x2EBD1D7D, 0x2EC01D7F, 0x2EC21D80, 0x2EC51D82, 0x2EC81D84, 0x2ECB1D86, 0x2ECD1D87, 0x2ED01D89, 0x2ED31D8B, 0x2ED51D8C, 0x2ED81D8E, 0x2EDB1D90, 0x2EDE1D92, 0x2EE01D93, 0x2EE31D95, 0x2EE61D97, 0x2EE81D98, 0x2EEB1D9A, 0x2EEE1D9C, 0x2EF01D9D, 0x2EF31D9F, 0x2EF61DA1, 0x2EF91DA3, 0x2EFB1DA4, 0x2EFE1DA6, 0x2F011DA8, 0x2F031DA9, 0x2F061DAB, 0x2F091DAD, 0x2F0C1DAF, 0x2F0E1DB0, 0x2F111DB2, 0x2F141DB4, 0x2F161DB5, 0x2F191DB7, 0x2F1C1DB9, 0x2F1F1DBB, 0x2F211DBC, 0x2F241DBE, 0x2F271DC0, 0x2F291DC1, 0x2F2C1DC3, 0x2F2F1DC5, 0x2F321DC7, 0x2F341DC8, 0x2F371DCA, 0x2F3A1DCC, 0x2F3C1DCD, 0x2F3F1DCF, 0x2F421DD1, 0x2F441DD2, 0x2F471DD4, 0x2F4A1DD6, 0x2F4D1DD8, 0x2F4F1DD9, 0x2F521DDB, 0x2F551DDD, 0x2F571DDE, 0x2F5A1DE0, 0x2F5D1DE2, 0x2F601DE4, 0x2F621DE5, 0x2F651DE7, 0x2F681DE9, 0x2F6A1DEA, 0x2F6D1DEC, 0x2F701DEE, 0x2F731DF0, 0x2F751DF1, 0x2F781DF3, 0x2F7B1DF5, 0x2F7D1DF6, 0x2F801DF8, 0x2F831DFA, 0x2F851DFB, 0x2F881DFD, 0x2F8B1DFF, 0x2F8E1E01, 0x2F901E02, 0x2F931E04, 0x2F961E06, 0x2F981E07, 0x2F9B1E09, 0x2F9E1E0B, 0x2FA11E0D, 0x2FA31E0E, 0x2FA61E10, 0x2FA91E12, 0x2FAB1E13, 0x2FAE1E15, 0x2FB11E17, 0x2FB41E19, 0x2FB61E1A, 0x2FB91E1C, 0x2FBC1E1E, 0x2FBE1E1F, 0x2FC11E21, 0x2FC41E23, 0x2FC71E25, 0x2FC91E26, 0x2FCC1E28, 0x2FCF1E2A, 0x2FD11E2B, 0x2FD41E2D, 0x2FD71E2F, 0x2FD91E30, 0x2FDC1E32, 0x2FDF1E34, 0x2FE21E36, 0x2FE41E37, 0x2FE71E39, 0x2FEA1E3B, 0x2FEC1E3C, 0x2FEF1E3E, 0x2FF21E40, 0x2FF51E42, 0x2FF71E43, 0x2FFA1E45, 0x2FFD1E47, 0x2FFF1E48, 0x30021E4A, 0x30051E4C, 0x30081E4E, 0x300A1E4F, 0x300D1E51, 0x30101E53, 0x30121E54, 0x30151E56, 0x30181E58, 0x301B1E5A, 0x301D1E5B, 0x30201E5D, 0x30231E5F, 0x30251E60, 0x30281E62, 0x302B1E64, 0x302D1E65, 0x30301E67, 0x30331E69, 0x30361E6B, 0x30381E6C, 0x303B1E6E, 0x303E1E70, 0x30401E71, 0x30431E73, 0x30461E75, 0x30491E77, 0x304B1E78, 0x304E1E7A, 0x30511E7C, 0x30531E7D, 0x30561E7F, 0x30591E81, 0x305C1E83, 0x305E1E84, 0x30611E86, 0x30641E88, 0x30661E89, 0x30691E8B, 0x306C1E8D, 0x306F1E8F, 0x30711E90, 0x30741E92, 0x30771E94, 0x30791E95, 0x307C1E97, 0x307F1E99, 0x30811E9A, 0x30841E9C, 0x30871E9E, 0x308A1EA0, 0x308C1EA1, 0x308F1EA3, 0x30921EA5, 0x30941EA6, 0x30971EA8, 0x309A1EAA, 0x309D1EAC, 0x309F1EAD, 0x30A21EAF, 0x30A51EB1, 0x30A71EB2, 0x30AA1EB4, 0x30AD1EB6, 0x30B01EB8, 0x30B21EB9, 0x30B51EBB, 0x30B81EBD, 0x30BA1EBE, 0x30BD1EC0, 0x30C01EC2, 0x30C31EC4, 0x30C51EC5, 0x30C81EC7, 0x30CB1EC9, 0x30CD1ECA, 0x30D01ECC, 0x30D31ECE, 0x30D51ECF, 0x30D81ED1, 0x30DB1ED3, 0x30DE1ED5, 0x30E01ED6, 0x30E31ED8, 0x30E61EDA, 0x30E81EDB, 0x30EB1EDD, 0x30EE1EDF, 0x30F11EE1, 0x30F31EE2, 0x30F61EE4, 0x30F91EE6, 0x30FB1EE7, 0x30FE1EE9, 0x31011EEB, 0x31041EED, 0x31061EEE, 0x31091EF0, 0x310C1EF2, 0x310E1EF3, 0x31111EF5, 0x31141EF7, 0x31171EF9, 0x31191EFA, 0x311C1EFC, 0x311F1EFE, 0x31211EFF, 0x31241F01, 0x31271F03, 0x31291F04, 0x312C1F06, 0x312F1F08, 0x31321F0A, 0x31341F0B, 0x31371F0D, 0x313A1F0F, 0x313C1F10, 0x313F1F12, 0x31421F14, 0x31451F16, 0x31471F17, 0x314A1F19, 0x314D1F1B, 0x314F1F1C, 0x31521F1E, 0x31551F20, 0x31581F22, 0x315A1F23, 0x315D1F25, 0x31601F27, 0x31621F28, 0x31651F2A, 0x31681F2C, 0x316A1F2D, 0x316D1F2F, 0x31701F31, 0x31731F33, 0x31751F34, 0x31781F36, 0x317B1F38, 0x317D1F39, 0x31801F3B, 0x31831F3D, 0x31861F3F, 0x31881F40, 0x318B1F42, 0x318E1F44, 0x31901F45, 0x31931F47, 0x31961F49, 0x31991F4B, 0x319B1F4C, 0x319E1F4E, 0x31A11F50, 0x31A31F51, 0x31A61F53, 0x31A91F55, 0x31AC1F57, 0x31AE1F58, 0x31B11F5A, 0x31B41F5C, 0x31B61F5D, 0x31B91F5F, 0x31BC1F61, 0x31BE1F62, 0x31C11F64, 0x31C41F66, 0x31C71F68, 0x31C91F69, 0x31CC1F6B, 0x31CF1F6D, 0x31D11F6E, 0x31D41F70, 0x31D71F72, 0x31DA1F74, 0x31DC1F75, 0x31DF1F77, 0x31E21F79, 0x31E41F7A, 0x31E71F7C, 0x31EA1F7E, 0x31ED1F80, 0x31EF1F81, 0x31F21F83, 0x31F51F85, 0x31F71F86, 0x31FA1F88, 0x31FD1F8A, 0x32001F8C, 0x32021F8D, 0x32051F8F, 0x32081F91, 0x320A1F92, 0x320D1F94, 0x32101F96, 0x32121F97, 0x32151F99, 0x32181F9B, 0x321B1F9D, 0x321D1F9E, 0x32201FA0, 0x32231FA2, 0x32251FA3, 0x32281FA5, 0x322B1FA7, 0x322E1FA9, 0x32301FAA, 0x32331FAC, 0x32361FAE, 0x32381FAF, 0x323B1FB1, 0x323E1FB3, 0x32411FB5, 0x32431FB6, 0x32461FB8, 0x32491FBA, 0x324B1FBB, 0x324E1FBD, 0x32511FBF, 0x32541FC1, 0x32561FC2, 0x32591FC4, 0x325C1FC6, 0x325E1FC7, 0x32611FC9, 0x32641FCB, 0x32661FCC, 0x32691FCE, 0x326C1FD0, 0x326F1FD2, 0x32711FD3, 0x32741FD5, 0x32771FD7, 0x32791FD8, 0x327C1FDA, 0x327F1FDC, 0x32821FDE, 0x32841FDF, 0x32871FE1, 0x328A1FE3, 0x328C1FE4, 0x328F1FE6, 0x32921FE8, 0x32951FEA, 0x32971FEB, 0x329A1FED, 0x329D1FEF, 0x329F1FF0, 0x32A21FF2, 0x32A51FF4, 0x32A81FF6, 0x32AA1FF7, 0x32AD1FF9, 0x32B01FFB, 0x32B21FFC, 0x32B51FFE, 0x32B82000, 0x32BA2001, 0x32BD2003, 0x32C02005, 0x32C32007, 0x32C52008, 0x32C8200A, 0x32CB200C, 0x32CD200D, 0x32D0200F, 0x32D32011, 0x32D62013, 0x32D82014, 0x32DB2016, 0x32DE2018, 0x32E02019, 0x32E3201B, 0x32E6201D, 0x32E9201F, 0x32EB2020, 0x32EE2022, 0x32F12024, 0x32F32025, 0x32F62027, 0x32F92029, 0x32FC202B, 0x32FE202C, 0x3301202E, 0x33042030, 0x33062031, 0x33092033, 0x330C2035, 0x330E2036, 0x33112038, 0x3314203A, 0x3317203C, 0x3319203D, 0x331C203F, 0x331F2041, 0x33212042, 0x33242044, 0x33272046, 0x332A2048, 0x332C2049, 0x332F204B, 0x3332204D, 0x3334204E, 0x33372050, 0x333A2052, 0x333D2054, 0x333F2055, 0x33422057, 0x33452059, 0x3347205A, 0x334A205C, 0x334D205E, 0x33502060, 0x33522061, 0x33552063, 0x33582065, 0x335A2066, 0x335D2068, 0x3360206A, 0x3362206B, 0x3365206D, 0x3368206F, 0x336B2071, 0x336D2072, 0x33702074, 0x33732076, 0x33752077, 0x33782079, 0x337B207B, 0x337E207D, 0x3380207E, 0x33832080, 0x33862082, 0x33882083, 0x338B2085, 0x338E2087, 0x33912089, 0x3393208A, 0x3396208C, 0x3399208E, 0x339B208F, 0x339E2091, 0x33A12093, 0x33A32094, 0x33A62096, 0x33A92098, 0x33AC209A, 0x33AE209B, 0x33B1209D, 0x33B4209F, 0x33B620A0, 0x33B920A2, 0x33BC20A4, 0x33BF20A6, 0x33C120A7, 0x33C420A9, 0x33C720AB, 0x33C920AC, 0x33CC20AE, 0x33CF20B0, 0x33D220B2, 0x33D420B3, 0x33D720B5, 0x33DA20B7, 0x33DC20B8, 0x33DF20BA, 0x33E220BC, 0x33E520BE, 0x33E720BF, 0x33EA20C1, 0x33ED20C3, 0x33EF20C4, 0x33F220C6, 0x33F520C8, 0x33F720C9, 0x33FA20CB, 0x33FD20CD, 0x340020CF, 0x340220D0, 0x340520D2, 0x340820D4, 0x340A20D5, 0x340D20D7, 0x341020D9, 0x341320DB, 0x341520DC, 0x341820DE, 0x341B20E0, 0x341D20E1, 0x342020E3, 0x342320E5, 0x342620E7, 0x342820E8, 0x342B20EA, 0x342E20EC, 0x343020ED, 0x343320EF, 0x343620F1, 0x343920F3, 0x343B20F4, 0x343E20F6, 0x344120F8, 0x344320F9, 0x344620FB, 0x344920FD, 0x344B20FE, 0x344E2100, 0x34512102, 0x34542104, 0x34562105, 0x34592107, 0x345C2109, 0x345E210A, 0x3461210C, 0x3464210E, 0x34672110, 0x34692111, 0x346C2113, 0x346F2115, 0x34712116, 0x34742118, 0x3477211A, 0x347A211C, 0x347C211D, 0x347F211F, 0x34822121, 0x34842122, 0x34872124, 0x348A2126, 0x348D2128, 0x348F2129, 0x3492212B, 0x3495212D, 0x3497212E, 0x349A2130, 0x349D2132, 0x349F2133, 0x34A22135, 0x34A52137, 0x34A82139, 0x34AA213A, 0x34AD213C, 0x34B0213E, 0x34B2213F, 0x34B52141, 0x34B82143, 0x34BB2145, 0x34BD2146, 0x34C02148, 0x34C3214A, 0x34C5214B, 0x34C8214D, 0x34CB214F, 0x34CE2151, 0x34D02152, 0x34D32154, 0x34D62156, 0x34D82157, 0x34DB2159, 0x34DE215B, 0x34E1215D, 0x34E3215E, 0x34E62160, 0x34E92162, 0x34EB2163}; int hflag=0; // selects which c value to histogram k values int hflag1=0; // selects which c value to histogram j values unsigned int indmin=0; // selects (l,m) value unsigned int indmax=14; // Note: Could include different (l,m) values. unsigned int bypass=1; // normally set to 1 unsigned int wflag=1; // normally set to 0 unsigned int infin=0; // normally set to 0 unsigned int ewrite=1; // normally set to 0 unsigned int eowrite=0; // normally set to 0 unsigned int efact,ofact,x,ncyc[20]; int k,max,temp,order,s[500],t,u,savek,oldk,c,olds,cmax,cmin,delta,locmin,locmax; unsigned int g,h,i,m,iters,j,count,first,odds,evens,flag,lodds,levens,jump,jcnt; unsigned int flag0,offset,index,sumtu,total,stu[1000*2],county,countn,countx; unsigned int histo[100],mincnt,hismin[10],savjmp,second,histoj[100],histom[10]; int lastodd,glomax,usave,tmps,cyccnt,mcount,hcount,icount,lcount,oddsum,oldt,oldu; unsigned int jumps[500],mflag,attcnt,savind,newhis[100],oldhis[100],histon[20]; unsigned int histoh[200],histoi[100],histox[100],badcnt,badcntu,primary,jmpcnt,tempi; int glomin,a,badcomp,savet,lastt,evensum,jsum,hsum,compcnt,sum,savec,ksave; unsigned int firstt,savjump,savcnt,tmpcnt,twojmp,lasthop,jmphop,offset1,jmpsum; unsigned int twojmp0,twojmp1,twojmp2,twojmp3,glohop,glojmp,tmpjump,histoy[100]; unsigned int histoz[100],histow[200],histov[200],histos[200],offset2,badtucnt; unsigned int concov[27*3],concove[27*3],histoa[30],histob[30],offset4,offset5; unsigned int patcnt,cyccntu,cyccntb,histor[100],equcnt,histod[400],offset6; unsigned int histoe[100],klcount,kl[50*2],kle[50*2],klecount,klp[50*2],klpcount; unsigned int lamcnt,lamcntc,sumtuc,mintu,maxtu,mintuc,maxtuc; unsigned int outcnt[200],wrap,histof[200],histodd[400],ii; unsigned int EM[4],EN[4],sv[2002],A[32],B[32],C[32],D[32],L[32],S[32],em; unsigned int outkl[1000*2],outklind,cycsav[100*2],cycsavind; double maxminrat,minmaxrat,maxminratc,minmaxratc; double lambda,d,dmin,dmax,del,maxdel,mindel,sumrec,tempf,chain,rat,oldchn; double ratdel,tempg,cap,cam,bp,bm,savchain,maxcmp,mean,std,var,maxdiff; unsigned int flubs,flubx,pcount,chhist[40],jj,histoo[200]; unsigned int maxt,maxu,mint,minu,sumt,sumu,kk,ut[1000],sumtu1; double lambdat,lambdau,lambda1,lambda2,lambda3; unsigned int l1flag,l2flag,l3flag,d1hist[40],d2hist[40],d3hist[40]; int savecp,ksavep,tsave,ttemp; FILE *Outfp; Outfp = fopen("out0ci.dat","w"); flubs=0; flubx=0; maxdiff=0.0; pcount=0; em=32; // number of words for (i=0; i<40; i++) { chhist[i]=0; d1hist[i]=0; d2hist[i]=0; d3hist[i]=0; } if (eowrite==0) { eocount=1; } else { for (i=0; i<20; i++) ncyc[i]=0; } for (x=0; x<eocount; x++) { efact=eofact[2*x]; ofact=eofact[2*x+1]; printf("efact=%d, ofact=%d \n",efact,ofact); fprintf(Outfp,"efact=%d, ofact=%d \n",efact,ofact); for (i=0; i<100; i++) { histo[i]=0; histoj[i]=0; newhis[i]=0; oldhis[i]=0; histoi[i]=0; histox[i]=0; histoy[i]=0; histoz[i]=0; histor[i]=0; histoe[i]=0; } for (i=0; i<200; i++) { histoh[i]=0; histow[i]=0; histov[i]=0; histos[i]=0; histof[i]=0; histoo[i]=0; } for (i=0; i<10; i++) { hismin[i]=0; histom[i]=0; } for (i=0; i<20; i++) histon[i]=0; for (i=0; i<27*3; i++) { concov[i]=0; concove[i]=0; } for (i=0; i<30; i++) { histoa[i]=0; histob[i]=0; } for (i=0; i<400; i++) { histod[i]=0; histodd[i]=0; } for (i=0; i<200; i++) outcnt[i]=0; for (i=0; i<1000; i++) { outkl[2*i]=0; outkl[2*i+1]=0; } outklind=0; badcnt=0; badcntu=0; badtucnt=0; badcomp=0; compcnt=0; cyccntu=0; cyccntb=0; equcnt=0; maxcmp=0.0; primary=0; rat=log(3.0)/log(2.0); ratdel=rat/(rat-1.0); offset=20; offset1=60; offset2=90; offset4=15; offset5=20; offset6=100; index=0; maxdel=-1000000.0; mindel=1000000.0; maxminrat=0.0; minmaxrat=1000000000.0; maxminratc=0.0; minmaxratc=1000000000.0; lamcnt=0; lamcntc=0; county=0; countn=0; countx=0; cyccnt=0; mcount=0; glohop=0; glojmp=0; twojmp=0; twojmp0=0; twojmp1=0; twojmp2=0; twojmp3=0; jmphop=0; for (h=0; h<167; h++) { c=cval[h]; iters=size[h]; if (eowrite==0) printf("c=%d \n",c); for (i=0; i<50; i++) { kl[2*i]=0; kl[2*i+1]=0; } klcount=0; for (i=0; i<50; i++) { kle[2*i]=0; kle[2*i+1]=0; } klecount=0; for (i=0; i<50; i++) { klp[2*i]=0; klp[2*i+1]=0; } klpcount=0; for (i=0; i<100; i++) { cycsav[2*i]=0; cycsav[2*i+1]=0; } cycsavind=0; for (i=0; i<iters; i++) s[i]=sin[i+index]; // // compute order (of loop) // sumtu=0; sumt=0; sumu=0; sumtuc=0; maxtu=0; maxt=0; maxu=0; mintu=1000000000; mint=1000000000; minu=1000000000; kk=0; maxtuc=0; mintuc=1000000000; total=0; olds=0; glomax=0; glomin=1000000000; a=0; mflag=0; attcnt=0; patcnt=0; savind=0; sumrec=0.0; oddsum=0; jmpsum=0; oldt=0; lastt=0; firstt=1; oldchn=1000000000.0; oldu=0; evensum=0; jsum=0; hcount=0; for (i=0; i<iters; i++) { k=s[i]; savek=k; max=k; if (max<0) max=-max; levens=0; while (k==(k/2)*2) { k=k/2; levens=levens+1; } lodds=1; for (j=1; j<100000; j++) { k=3*k+c; if ((k&7)==0) { oldk=savek; savek=k; } temp=k; if (temp<0) temp=-temp; if (temp>max) max=temp; while (k==(k/2)*2) { if (k==s[i]) { levens=levens-1; goto bskip; } k=k/2; levens=levens+1; } levens=levens-1; lodds=lodds+1; } printf("error: i=%d, s[i]=%d \n",i,s[i]); goto zskip; bskip: order=3; while (order<max) order=order*2; while ((oldk&1)==0) oldk=oldk/2; u=oldk; // // find odd natural number divisible by 3 // k=s[i]; max=k; if (max<0) max=-max; while (k!=(k/3)*3) { if (k==(k/2)*2) { if ((k-c)==((k-c)/3)*3) { k=(k-c)/3; temp=k; if (temp<0) temp=-temp; if (temp>max) max=temp; } else { k=k*2; temp=k; if (temp<0) temp=-temp; if (temp>max) max=temp; } } else { k=k*2; temp=k; if (temp<0) temp=-temp; if (temp>max) max=temp; } } // // include even natural numbers to the left of the odd natural number divisible // by 3 // t=k; jump=1; flag0=3; if ((3*t+c)==s[i]) { jump=0; flag0=0; } temp=t-u; m=0; jcnt=0; while ((temp&1)==0) { m=m+1; temp=temp/2; } while (order<max) order=order*2; temp=k; if (temp<0) temp=-temp; while (temp<(order/2)) { temp=temp*2; k=k*2; } // // compute sequence // hsum=0; count=1; first=1; while (k==(k/2)*2) { k=k/2; count=count+1; } evens=count-1; odds=1; for (j=1; j<10000; j++) { k=3*k+c; count=count+1; if (first==0) { if (((k&3)==0)&&((k&7)!=0)) hsum=hsum+1; } flag=0; while (k==(k/2)*2) { if (k==s[i]) { if (first==1) first=0; else goto askip; } k=k/2; count=count+1; flag=flag+1; } if (first==1) { evens=evens+(flag-1); odds=odds+1; if (flag==2) { jcnt=jcnt+1; if ((3*k+c)==s[i]) flag0=1; } } } printf("error \n"); goto zskip; askip: if ((jcnt==1)&&(flag0==1)) jump=1; if ((jcnt>1)&&(flag0==1)) jump=2; if ((jcnt>0)&&(flag0==0)) jump=3; if (flag0==3) jump=3; jumps[i]=jump; attcnt=attcnt+1; // // check order of jump types for primary, secondary, tertiary, etc. // if ((4*s[i])!=olds) { tmpjump=jump; if (jump==3) { printf("error: primary jumped-over attachment point \n"); goto zskip; } } else { if (tmpjump==0) { if (jump!=3) { printf("error: incorrect order \n"); fprintf(Outfp,"error: incorrect order \n"); goto zskip; } } if (tmpjump==3) { if ((jump!=1)&&(jump!=2)) { printf("error: incorrect order \n"); fprintf(Outfp,"error: incorrect order \n"); goto zskip; } } if ((tmpjump==1)||(tmpjump==2)) { if (jump!=0) { printf("error: incorrect order \n"); fprintf(Outfp,"error: incorrect order \n"); goto zskip; } } tmpjump=jump; } // // check hops in multiple-jumps // jmpcnt=0; if (jump==2) { first=0; second=0; flag0=0; k=t; if (((3*k+c)&3)==0) { // check for hop first=1; // hop count lasthop=1; // set last hop flag } else { second=1; // jump count flag0=1; // set first jump flag lasthop=0; } while ((3*k+c)!=s[i]) { k=k+c; tmpcnt=0; while ((k&1)==0) { k=k/2; tmpcnt=tmpcnt+1; } for (j=0; j<tmpcnt; j++) k=k*3; k=(k-c)/2; if ((((3*k+c)&3)==0)&&((3*k+c)!=s[i])) { // check for hop first=first+1; // increment hop count lasthop=1; // set last hop flag } if ((((3*k+c)&3)!=0)&&((3*k+c)!=s[i])) { // check for jump second=second+1; // increment jump count lasthop=0; } jmpcnt=jmpcnt+1; } if ((flag0==0)&&(second>0)&&(lasthop==1)) { // first and last are hops if (wflag==5) { printf("warning: non-adjacent hops, c=%d, s=%d \n",c,s[i]); fprintf(Outfp,"warning: non-adjacent hops, c=%d, s=%d \n",c,s[i]); } jmphop=jmphop+1; } if ((flag0==1)&&(first>0)&&(lasthop==0)) { // first and last are jumps if (wflag==5) { printf("warning: non-adjacent jumps, c=%d, s=%d \n",c,s[i]); fprintf(Outfp,"warning: non-adjacent jumps, c=%d, s=%d \n",c,s[i]); } jmphop=jmphop+1; } glohop=glohop+first; // total number of hops glojmp=glojmp+second; // total number of jumps if (jmpcnt==2) { twojmp=twojmp+1; // total number of two-"jumps" if (first==2) twojmp0=twojmp0+1; if ((first==1)&&(second==1)) { if (lasthop==1) twojmp1=twojmp1+1; else twojmp2=twojmp2+1; } if (second==2) twojmp3=twojmp3+1; } mcount=mcount+1; } // // check chain (t values) // if ((4*s[i])!=olds) { temp=t+c; if (temp<0) temp=-temp; chain=(double)temp; temp=s[i]; if (temp<0) temp=-temp; while ((temp&1)==0) // next u value temp=temp/2; chain=rat*log(chain); chain=exp(chain); if (jump==1) chain=chain*2.0; if (jump==2) chain=chain*(double)(1<<jmpcnt); if (chain<(double)temp) { if ((wflag!=2)&&(eowrite==0)) { printf("error: bad t-u chain, c=%d, t=%d, u=%d, jump=%d, count=%d \n",c,t,temp,jump,jmpcnt); fprintf(Outfp,"error: bad t-u chain, c=%d, t=%d, u=%d, jump=%d, count=%d \n",c,t,temp,jump,jmpcnt); } badtucnt=badtucnt+1; } if (chain<(double)oldt) { if ((wflag!=2)&&(eowrite==0)) { printf("error: bad chain, c=%d \n",c); printf("chain=%e, oldt=%d, t=%d, jump=%d, count=%d, s=%d \n",chain,oldt,t,jump,jmpcnt,s[i]); fprintf(Outfp,"error: bad chain, c=%d \n",c); fprintf(Outfp,"chain=%e, oldt=%d, t=%d, jump=%d, count=%d, s=%d \n",chain,oldt,t,jump,jmpcnt,s[i]); } badcnt=badcnt+1; } oldt=t; if (oldt<0) oldt=-oldt; if (firstt==1) { savchain=chain; savet=t; savjump=jump; savcnt=jmpcnt; firstt=0; } } // // check for powers of 2 // if (((4*s[i])!=olds)&&(jump==2)&&(jmpcnt==2)) { temp=t; temp=temp+c; if (temp<0) temp=-temp; while ((temp&1)==0) temp=temp/2; if ((wflag==3)&&(temp==1)) { printf("power of two: c=%d, u=%d, t=%d, s=%d \n",c,u,t,s[i]); fprintf(Outfp,"power of two: c=%d, u=%d, t=%d, s=%d \n",c,u,t,s[i]); } if (chain<(double)lastt) { printf("error: bad chain, chain=%e, lastt=%d \n",chain,lastt); fprintf(Outfp,"error: bad chain, chain=%e, lastt=%d \n",chain,lastt); goto zskip; } } lastt=t; if (lastt<0) lastt=-lastt; // // count hops up until attachment point // if ((4*s[i])!=olds) { icount=0; k=u; k=3*k+c; while (k!=(4*s[i])) { if ((k&3)==0) { icount=icount+1; k=k/4; } else k=k/2; k=3*k+c; } // lcount=1; k=s[i]; while ((k&1)==0) { lcount=lcount+1; k=k/2; } delta=odds+icount-lcount; if (jump==1) { delta=delta-1; jmpsum=jmpsum+1; } if (jump==2) { delta=delta-jmpcnt; jmpsum=jmpsum+jmpcnt; } if ((delta<-10)&&(wflag==0)) { printf("warning: delta less than -10 \n"); printf("lcount=%d, icount=%d, delta=%d \n",lcount,icount,odds+icount-lcount); fprintf(Outfp,"warning: delta less than -2 \n"); fprintf(Outfp,"lcount=%d, icount=%d, delta=%d \n",lcount,icount,odds+icount-lcount); } delta=delta+offset; if (delta<0) { printf("error: offset not big enough \n"); goto zskip; } if (delta>99) { printf("error: histogram array not big enough \n"); goto zskip; } histoi[delta]=histoi[delta]+1; // delta=(int)m-lcount+icount; if (jump==1) delta=delta-1; if (jump==2) delta=delta-jmpcnt; delta=delta+offset; if (delta<0) { printf("error: offset not big enough \n"); goto zskip; } if (delta>99) { printf("error: histogram array not big enough \n"); goto zskip; } histox[delta]=histox[delta]+1; // if (((c==hflag1)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag1==0)) { delta=(int)m-lcount; delta=delta+offset; if (delta<0) { printf("error: offset not big enough \n"); goto zskip; } if (delta>99) { printf("error: histogram array not big enough \n"); goto zskip; } histoy[delta]=histoy[delta]+1; } // delta=icount; if (jump==1) delta=delta-1; if (jump==2) delta=delta-jmpcnt; delta=delta+offset; if (delta<0) { printf("error: offset not big enough \n"); goto zskip; } if (delta>99) { printf("error: histogram array not big enough \n"); goto zskip; } histoz[delta]=histoz[delta]+1; // delta=odds-lcount; delta=delta+offset; if (delta<0) { printf("error: offset not big enough \n"); goto zskip; } if (delta>99) { printf("error: histogram array not big enough \n"); goto zskip; } histor[delta]=histor[delta]+1; } // k=(int)odds-(int)m; if (wflag==0) { printf("c=%d, s=%d, o=%d, t=%d, u=%d, e=%d, o=%d, e=%d, o=%d, jump=%d, j=%d, d=%d \n",c,s[i],order,t,u,evens,odds,levens,lodds,jump,m,k); fprintf(Outfp,"c=%d, s=%d, o=%d, t=%d, u=%d, e=%d, o=%d, e=%d, o=%d, jump=%d, j=%d, d=%d \n",c,s[i],order,t,u,evens,odds,levens,lodds,jump,m,k); if (evens<odds) { printf("warning: even count less than odd count \n"); fprintf(Outfp,"warning: even count less than odd count \n"); } } // // continued-fraction convergents // for (tempi=0; tempi<27; tempi++) { if ((conv[2*tempi]==(levens+lodds))&&(conv[2*tempi+1]==lodds)) { if ((concov[3*tempi]==0)||(concov[3*tempi]==(unsigned int)c)) concov[3*tempi]=c; else { if ((concov[3*tempi+1]==0)||(concov[3*tempi+1]==(unsigned int)c)) concov[3*tempi+1]=c; else concov[3*tempi+2]=c; } } if (conv[2*tempi+1]>lodds) break; } // for (tempi=0; tempi<27; tempi++) { if ((conv[2*tempi+1]==levens)&&(conv[2*tempi+1]==lodds)) { if ((concove[3*tempi]==0)||(concove[3*tempi]==(unsigned int)c)) concove[3*tempi]=c; else { if ((concove[3*tempi+1]==0)||(concove[3*tempi+1]==(unsigned int)c)) concove[3*tempi+1]=c; else concove[3*tempi+2]=c; } if ((4*s[i])!=olds) { delta=(int)m-lcount; delta=delta+offset4; if (delta<0) { printf("array not big enough, delta=%d \n",delta); goto zskip; } if (delta>29) { printf("array not big enough, delta=%d \n",delta); goto zskip; } histoa[delta]=histoa[delta]+1; } } if (conv[2*tempi+1]>lodds) break; } // // total odds and evens // if ((4*s[i])!=olds) { oddsum=oddsum+odds; evensum=evensum+lcount; jsum=jsum+m; hcount=hcount+icount; patcnt=patcnt+1; } // // compute sum of reciprocals // if ((4*s[i])!=olds) { temp=t; if (temp<0) temp=-temp; sumrec=sumrec+(1.0/(double)temp); temp=u; if (temp<0) temp=-temp; sumrec=sumrec+(1.0/(double)temp); primary=primary+1; } // // check chain (u values) // if ((4*s[i])!=olds) { temp=u; if (temp<0) temp=-temp; if (oldchn<(double)temp) { if ((wflag!=2)&&(eowrite==0)) { printf("error: bad chain, c=%d \n",c); printf("chain=%e, u=%d, old u=%d, jump=%d, s=%d \n",oldchn,u,oldu,jump,s[i]); fprintf(Outfp,"error: bad chain, c=%d \n",c); fprintf(Outfp,"chain=%e, u=%d, old u=%d, jump=%d, s=%d \n",oldchn,u,oldu,jump,s[i]); } badcntu=badcntu+1; } temp=u+c; if (temp<0) temp=-temp; oldchn=(double)temp; oldchn=rat*log(oldchn); oldchn=exp(oldchn); oldu=u; } // // check j values for no-jumps // if (jump==0) { if ((m>10)&&(wflag==0)) { printf("warning: no-jump with j>10 \n"); fprintf(Outfp,"warning: no-jump with j>10 \n"); } if (((c==hflag)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag==0)) { if ((4*s[i])!=olds) { if (m>19) { printf("histogram array not big enough \n"); goto zskip; } histon[m]=histon[m]+1; } } } // // check j values for multiple-jumps // if (jump==2) { if ((m>3)&&(wflag==0)) { printf("warning: multiple-jump with j>3 \n"); fprintf(Outfp,"warning: multiple-jump with j>3 \n"); } if ((4*s[i])!=olds) { if (m>9) { printf("histogram array not big enough \n"); goto zskip; } histom[m]=histom[m]+1; } } // // histogram k values // if (((c==hflag)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag==0)) { if ((jump==1)&&((4*s[i])!=olds)) { delta=k+offset; if (delta<0) { printf("error: offset not big enough \n"); goto zskip; } if (delta>99) { printf("error: histogram array not big enough \n"); goto zskip; } histoj[delta]=histoj[delta]+1; } } // // histogram evens minus odds // if (jump==1) { delta=(int)evens-(int)odds; delta=delta+offset; if (delta<0) { printf("error: offset not big enough \n"); goto zskip; } if (delta>99) { printf("error: histogram array not big enough \n"); goto zskip; } histo[delta]=histo[delta]+1; } // // find minimum t or u // if ((4*s[i])!=olds) { temp=t; if (temp<0) temp=-temp; if (temp<glomin) glomin=temp; temp=u; if (temp<0) temp=-temp; if (temp<glomin) glomin=temp; a=a+1; } // // find local maximum and minimum // k=u; locmin=k; if (locmin<0) locmin=-locmin; locmax=locmin; lastodd=locmax; k=3*k+c; while ((k&7)!=0) { while ((k&1)==0) { k=k/2; } delta=k; if (delta<0) delta=-delta; if (delta<locmin) locmin=delta; if (delta>locmax) locmax=delta; lastodd=delta; k=3*k+c; } if ((4*s[i])!=olds) { // check if primary if ((lastodd!=locmax)&&(jump==2)) { printf("error: no-jump with local maximum at attachment point \n"); printf("locmin=%d, locmax=%d, lastodd=%d \n",locmin,locmax,lastodd); fprintf(Outfp,"error: no-jump with local maximum at attachment point \n"); goto zskip; } if (lastodd!=locmax) { if (jump==0) county=county+1; if (jump==1) { countn=countn+1; if (((c==hflag)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag==0)) { delta=(int)odds-(int)m; delta=delta+offset; if (delta<0) { printf("array not big enough \n"); goto zskip; } if (delta>99) { printf("array not big enough \n"); goto zskip; } newhis[delta]=newhis[delta]+1; } } if (jump==3) countx=countx+1; } } if ((4*s[i])!=olds) { if (locmax>glomax) { glomax=locmax; usave=u; tsave=t; savjmp=jump; } } // // check local minimum // if ((jump==1)&&((4*s[i])!=olds)) { mincnt=0; k=u; delta=k; if (delta<0) delta=-delta; if (delta==locmin) { hismin[0]=hismin[0]+1; goto yskip; } while (delta!=locmin) { k=3*k+c; if ((k&3)!=0) { hismin[9]=hismin[9]+1; delta=(int)odds-(int)m; delta=delta+offset; if (delta<0) { printf("array not big enough \n"); goto zskip; } if (delta>99) { printf("array not big enough \n"); goto zskip; } histoe[delta]=histoe[delta]+1; if (bypass==0) goto pskip; else goto yskip; } k=k/4; delta=k; if (delta<0) delta=-delta; mincnt=mincnt+1; } if (mincnt>8) { printf("error: array not big enough \n"); goto zskip; } hismin[mincnt]=hismin[mincnt]+1; pskip: if (((c==hflag)&&(cflag[index+i]>=indmin)&&(cflag[index+i]<=indmax))||(hflag==0)) { delta=(int)odds-(int)m; delta=delta+offset; if (delta<0) { printf("array not big enough \n"); goto zskip; } if (delta>99) { printf("array not big enough \n"); goto zskip; } oldhis[delta]=oldhis[delta]+1; } } // // check multiple-jumps // yskip: if ((jump==2)&&((4*s[i])!=olds)) { k=u; k=3*k+c; while ((k&7)!=0) { if ((k&3)==0) { printf("error: not one jump from u \n"); fprintf(Outfp,"error: not one jump from u \n"); goto zskip; } k=k/2; k=3*k+c; } } // // check if primary multiple-jumps are preceded by no-jumps // Note: Only last primary multiple-jump checked. // if ((jump==2)&&((4*s[i])!=olds)) { k=u*2; if ((((k-c)/3)*3)!=(k-c)) k=k*2; tmps=k; mflag=1; } // // compute domain // if ((4*s[i])!=olds) { k=t; if (k<0) k=-k; if ((unsigned int)k>maxtu) maxtu=k; if ((unsigned int)k<mintu) mintu=k; sumtu=sumtu+k; sumt=sumt+k; ut[kk]=k; kk=kk+1; if (kk>998) { printf("array not big enough \n"); goto zskip; } stu[2*total]=k; k=u; if (k<0) k=-k; if ((unsigned int)k>maxtu) maxtu=k; if ((unsigned int)k<mintu) mintu=k; sumtu=sumtu+k; sumu=sumu+k; ut[kk]=k; kk=kk+1; stu[2*total+1]=k; // k=t+c; if (k<0) k=-k; if ((unsigned int)k>maxtuc) maxtuc=k; if ((unsigned int)k<mintuc) mintuc=k; sumtuc=sumtuc+k; k=u+c; if (k<0) k=-k; if ((unsigned int)k>maxtuc) maxtuc=k; if ((unsigned int)k<mintuc) mintuc=k; sumtuc=sumtuc+k; total=total+1; if (total>1000) { printf("output array too small \n"); goto zskip; } } // // check for new cycle // if ((cflag[index+i]!=cflag[index+i+1])||(i==(iters-1))) { // // check for K1=K2, but L1!=L2 // for (tempi=0; tempi<klcount; tempi++) { if ((kl[2*tempi]==lodds)&&(kl[2*tempi+1]==levens)) goto qskip; if ((kl[2*tempi]==lodds)&&(kl[2*tempi+1]!=levens)) { if (ewrite==1) { printf("warning o: c=%d, L1=%d, K1=%d, L2=%d, K2=%d \n",c,levens,lodds,kl[2*tempi+1],kl[2*tempi]); fprintf(Outfp,"warning o: c=%d, L1=%d, K1=%d, L2=%d, K2=%d \n",c,levens,lodds,kl[2*tempi+1],kl[2*tempi]); } } } kl[2*klcount]=lodds; kl[2*klcount+1]=levens; klcount=klcount+1; if (klcount==50) { printf("array not big enough \n"); goto zskip; } // // check for L1=L2, but K1!=K2 // qskip: for (tempi=0; tempi<klecount; tempi++) { if ((kle[2*tempi]==lodds)&&(kle[2*tempi+1]==levens)) goto sskip; if ((kle[2*tempi]!=lodds)&&(kle[2*tempi+1]==levens)) { if (ewrite==1) { printf("warning e: c=%d, L1=%d, K1=%d, L2=%d, K2=%d \n",c,levens,lodds,kle[2*tempi+1],kle[2*tempi]); fprintf(Outfp,"warning e: c=%d, L1=%d, K1=%d, L2=%d, K2=%d \n",c,levens,lodds,kle[2*tempi+1],kle[2*tempi]); } } } kle[2*klecount]=lodds; kle[2*klecount+1]=levens; klecount=klecount+1; if (klecount==50) { printf("array not big enough \n"); goto zskip; } // // check for K1+L1=K2+L2, but K1!=K2 // sskip: if ((ewrite==1)&&(i==(iters-1))) { printf("c=%d, cycles=%d \n",c,klcount); fprintf(Outfp,"c=%d, cycles=%d \n",c,klcount); if (klcount<20) { ncyc[klcount]=ncyc[klcount]+1; } else { printf("error: array not big enough \n"); goto zskip; } } for (tempi=0; tempi<klpcount; tempi++) { if ((klp[2*tempi]==lodds)&&(klp[2*tempi+1]==levens)) goto rskip; if ((klp[2*tempi]!=lodds)&&((klp[2*tempi+1]*efact+klp[2*tempi]*ofact)==(levens*efact+lodds*ofact))) { if (eowrite==1) { printf("warning p: c=%d, L1=%d, K1=%d, L2=%d, K2=%d \n",c,levens,lodds,klp[2*tempi+1],klp[2*tempi]); fprintf(Outfp,"warning p: c=%d, L1=%d, K1=%d, L2=%d, K2=%d \n",c,levens,lodds,klp[2*tempi+1],klp[2*tempi]); } } } klp[2*klpcount]=lodds; klp[2*klpcount+1]=levens; klpcount=klpcount+1; if (klpcount==50) { printf("array not big enough \n"); goto zskip; } rskip: for (tempi=0; tempi<cycsavind; tempi++) { if ((cycsav[2*tempi]==levens)&&(cycsav[2*tempi+1]==lodds)) goto rjump; } cycsav[2*cycsavind]=levens; cycsav[2*cycsavind+1]=lodds; cycsavind=cycsavind+1; // // check maximum, minimum, and average // rjump: lambda=(double)sumtu/(double)(total*2); lambdat=(double)sumt/(double)total; lambdau=(double)sumu/(double)total; if (total>1) { sumtu1=0; kk=0; for (g=0; g<total*2; g++) { if ((double)ut[g]<=lambda) { sumtu1=sumtu1+ut[g]; kk=kk+1; } } if (kk==0) { printf("error 1: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total); fprintf(Outfp,"error 1: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total); goto zskip; } l1flag=kk; lambda1=(double)sumtu1/(double)kk; if (kk==1) { lambda2=10000000000.0; lambda3=10000000000.0; goto ejump; } } if (total>2) { sumtu1=0; kk=0; for (g=0; g<total*2; g++) { if ((double)ut[g]<=lambda1) { sumtu1=sumtu1+ut[g]; kk=kk+1; } } if (kk==0) { printf("error 2: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total); fprintf(Outfp,"error 2: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total); goto zskip; } l2flag=kk; lambda2=(double)sumtu1/(double)kk; if (kk==1) { lambda3=10000000000.0; goto ejump; } } if (total>3) { sumtu1=0; kk=0; for (g=0; g<total*2; g++) { if ((double)ut[g]<=lambda2) { sumtu1=sumtu1+ut[g]; kk=kk+1; } } if (kk==0) { printf("error 3: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total); fprintf(Outfp,"error 3: kk=0, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total); goto zskip; } l3flag=kk; lambda3=(double)sumtu1/(double)kk; } // // check M and N for parity vector p // ejump: if (lodds>levens) { for (g=0; g<5000; g++) { if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) { pcount=pcount+1; g=halbhung(levens+lodds,lodds,EM,EN,sv,A,B,C,D,L,S,em); if (g!=0) { printf("error: N can't be computed \n"); fprintf(Outfp,"error: N can't be computed \n"); goto qjump; } d=(double)EN[3]*(double)c/4.0/6.0; if (d>(double)maxtu) { printf("error 1: lambda=%e, max=%d, min=%d, evens=%d, odds=%d, M=%e, N=%e \n",lambda,maxtu,mintu,levens,lodds,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0); fprintf(Outfp,"error 2: lambda=%e, max=%d, min=%d, evens=%d, odds=%d, M=%e, N=%e \n",lambda,maxtu,mintu,levens,lodds,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0); goto zskip; } d=d*2.0; if ((d>(double)maxtu)&&(total!=1)) { printf("error 1: lambda=%e, max=%d, min=%d, evens=%d, odds=%d, M=%e, N=%e \n",lambda,maxtu,mintu,levens,lodds,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0); fprintf(Outfp,"error 2: lambda=%e, max=%d, min=%d, evens=%d, odds=%d, M=%e, N=%e \n",lambda,maxtu,mintu,levens,lodds,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0); goto zskip; } d=(double)EM[3]*(double)c/2.0; if (d<(double)mintu) { printf("error 2: lambda=%e, max=%d, min=%d, evens=%d, odds=%d, M=%e, N=%e \n",lambda,maxtu,mintu,levens,lodds,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0); fprintf(Outfp,"error 3: lambda=%e, max=%d, min=%d, evens=%d, odds=%d, M=%e, N=%e \n",lambda,maxtu,mintu,levens,lodds,(double)(c*EM[3])/4.0,(double)(c*EN[3])/4.0); goto zskip; } break; } if (lodds<(ln[g]&0xffff)) break; } } // // check maxtu/lambda, delta power=a+1 // qjump: d=log(3)/log(2); d=exp((double)(total+1)*log(d)); if (d<((double)maxtu/lambda)) { printf("error: d=%e, max=%d, min=%d, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,total,c,levens,lodds); goto zskip; } // // check maxtu/mintu, a>3, delta power=4*a+2 // if (total>3) { d=log(3)/log(2); d=exp((double)(total*4+2)*log(d)); if (d<((double)maxtu/(double)mintu)) { printf("error: d=%e, max=%d, min=%d, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,total,c,levens,lodds); goto zskip; } } d=log(3)/log(2); d=exp((double)(total+1)*log(d)); if (total>1) { if (d<(lambda/lambda1)) { printf("error: d=%e, max=%d, min=%d, lambda=%e, lambda1=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,lambda1,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda=%e, lambda1=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,lambda1,total,c,levens,lodds); printf("c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l1flag); fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l1flag); } } if (total>2) { if (d<(lambda1/lambda2)) { printf("error: d=%e, max=%d, min=%d, lambda1=%e, lambda2=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda1,lambda2,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda1=%e, lambda2=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda1,lambda2,total,c,levens,lodds); printf("c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l2flag); fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l2flag); } } if (total>3) { if (d<(lambda2/lambda3)) { printf("error: d=%e, max=%d, min=%d, lambda2=%e, lambda3=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda2,lambda3,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda2=%e, lambda3=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda2,lambda3,total,c,levens,lodds); printf("c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l3flag); fprintf(Outfp,"c=%d, e=%d, o=%d, a=%d, kk=%d \n",c,levens,lodds,total,l3flag); } } // // check maxtu/mintu, parity vector p, lambda/lambda1, lambda1/lambda2, etc. // if (lodds>levens) { for (g=0; g<5000; g++) { if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) { d=log(3)/log(2); d=exp((double)(total*4+2)*log(d)); // Note!!! if (d<((double)maxtu/(double)mintu)) { printf("error: d=%e, max=%d, min=%d, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,total,c,levens,lodds); goto zskip; } d=log(3)/log(2); d=exp((double)(total+1)*log(d)); if (total>1) { if (d<(lambda/lambda1)) { printf("error: d=%e, max=%d, min=%d, lambda=%e, lambda1=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,lambda1,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda=%e, lambda1=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,lambda1,total,c,levens,lodds); if (l1flag!=1) goto zskip; else { printf("kkp=1 \n"); fprintf(Outfp,"kkp=1, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total); } } } if (total>2) { if (d<(lambda1/lambda2)) { printf("error: d=%e, max=%d, min=%d, lambda1=%e, lambda2=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda1,lambda2,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda1=%e, lambda2=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda1,lambda2,total,c,levens,lodds); if (l2flag!=1) goto zskip; else { printf("kkp=1 \n"); fprintf(Outfp,"kkp=1, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total); } } } if (total>3) { if (d<(lambda2/lambda3)) { printf("error: d=%e, max=%d, min=%d, lambda2=%e, lambda3=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda2,lambda3,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda2=%e, lambda3=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda2,lambda3,total,c,levens,lodds); if (l3flag!=1) goto zskip; else { printf("kkp=1 \n"); fprintf(Outfp,"kkp=1, c=%d, e=%d, o=%d, a=%d \n",c,levens,lodds,total); } } } } if (lodds<(ln[g]&0xffff)) break; } } // // lambda=average of t, lambda=average of u, delta power=(a+2)/2 // d=log(3)/log(2); d=exp((double)(total+2)/2.0*log(d)); if (d<((double)maxu/lambdau)) { printf("error: d=%e, max=%d, min=%d, lambdau=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxu,minu,lambdau,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambdau=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxu,minu,lambdau,total,c,levens,lodds); goto zskip; } if (d<((double)maxt/lambdat)) { printf("error: d=%e, max=%d, min=%d, lambdat=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxt,mint,lambdat,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambdat=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxt,mint,lambdat,total,c,levens,lodds); goto zskip; } // // power for specified a value // if (total==1) { d=(double)mintu; for (jj=0; jj<40; jj++) { d=d*log(3)/log(2); if (d>(double)maxtu) { if ((jj+1)>39) { printf("array not big enough \n"); goto zskip; } d1hist[jj+1]=d1hist[jj+1]+1; break; } } } if (total==2) { d=(double)mintu; for (jj=0; jj<40; jj++) { d=d*log(3)/log(2); if (d>(double)maxtu) { if ((jj+1)>39) { printf("array not big enough \n"); goto zskip; } d2hist[jj+1]=d2hist[jj+1]+1; break; } } } if (total==3) { d=(double)mintu; for (jj=0; jj<40; jj++) { d=d*log(3)/log(2); if (d>(double)maxtu) { if ((jj+1)>39) { printf("array not big enough \n"); goto zskip; } d3hist[jj+1]=d3hist[jj+1]+1; break; } } } // // histogram of powers for parity vector p, max/min // if (lodds>levens) { // if (euclid(lodds,levens)==1) { for (g=0; g<5000; g++) { if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) { d=(double)mintu; for (jj=0; jj<40; jj++) { d=d*log(3)/log(2); if (d>(double)maxtu) { if ((jj+1+20)<total*2) { printf("error: count=%d, total=%d \n",jj+1,total); goto zskip; } chhist[jj+21-total*2]=chhist[jj+21-total*2]+1; goto xjump; } } } if (lodds<(ln[g]&0xffff)) break; } // } } // // histogram of powers for parity vector p, lambda/min // xjump: d=log(3)/log(2); d=exp((double)(total+3)*log(d)); if (d<((double)lambda/mintu)) { if (lodds>levens) { if (euclid(lodds,levens)==1) { for (g=0; g<5000; g++) { if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) { flubx=flubx+1; d=(double)lambda/d/mintu; if (d>maxdiff) maxdiff=d; printf("error: d=%e, max=%d, min=%d, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,total,c,levens,lodds); fprintf(Outfp,"error: d=%e, max=%d, min=%d, lambda=%e, total=%d, c=%d, e=%d, o=%d \n",d,maxtu,mintu,lambda,total,c,levens,lodds); goto pjump; } if (lodds<(ln[g]&0xffff)) break; } } } flubs=flubs+1; } // // max*min/lambda^2 // pjump: d=(double)maxtu*(double)mintu/lambda/lambda; if (d>1.0) lamcnt=lamcnt+1; if (d>maxminrat) { maxminrat=d; savec=c; ksave=s[i]; } if (d<minmaxrat) { minmaxrat=d; savecp=c; ksavep=s[i]; } d=(double)maxu*(double)minu/lambdau/lambdau; if (d>log(3.0)/log(2.0)) { printf("error u: d=%e \n",d); goto zskip; } d=(double)maxt*(double)mint/lambdat/lambdat; if (d>log(3.0)/log(2.0)) { printf("error t: d=%e \n",d); goto zskip; } // d=exp((double)(levens+lodds)/(double)lodds*log(2.0)); d=d-3.0; tempf=d; if (d<0.0) d=-d; if (((double)c/d)<=(double)mintu) { if (eowrite==0) { printf("error: d=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,mintu,c,levens,lodds,total); fprintf(Outfp,"error: d=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,mintu,c,levens,lodds,total); } } // dmin=1.0-(double)c/(double)mintu; if (dmin<0.0) dmin=-dmin; if (dmin<=d) { if (lodds>levens) { for (g=0; g<5000; g++) { if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) { printf("error: d=%e, dmin=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,dmin,mintu,c,levens,lodds,total); fprintf(Outfp,"error: d=%e, dmin=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,dmin,mintu,c,levens,lodds,total); printf("Kilroy was here.\n"); fprintf(Outfp,"Kilroy was here.\n"); // goto zskip; } if (lodds<(ln[g]&0xffff)) break; } } for (g=0; g<27; g++) { if ((conv[2*g]==(levens+lodds))&&(conv[2*g+1]==lodds)) { printf("error: d=%e, dmin=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,dmin,mintu,c,levens,lodds,total); fprintf(Outfp,"error: d=%e, dmin=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,dmin,mintu,c,levens,lodds,total); goto zskip; } } if ((tempf<0.0)&&(eowrite==0)) { printf("error 1: d=%e, dmin=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,dmin,mintu,c,levens,lodds,total); fprintf(Outfp,"error 1: d=%e, dmin=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,dmin,mintu,c,levens,lodds,total); } if ((total!=1)&&(eowrite==0)) { printf("error 2: d=%e, dmin=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,dmin,mintu,c,levens,lodds,total); fprintf(Outfp,"error 2: d=%e, dmin=%e, mintu=%d, c=%d, e=%d, o=%d, a=%d \n",d,dmin,mintu,c,levens,lodds,total); } } // dmin=1000000.0; dmax=-1000000.0; for (g=0; g<total*2; g++) { d=-log((double)stu[g]/lambda)/lambda; if (d<dmin) dmin=d; if (d>dmax) dmax=d; } del=dmax-dmin; if (del>maxdel) { maxdel=del; cmax=c; } if (del<mindel) { mindel=del; cmin=c; } if (wflag==0) { printf("lambda=%e, min=%e, max=%e, del=%e \n",lambda,dmin,dmax,del); fprintf(Outfp,"lambda=%e, min=%e, max=%e, del=%e \n",lambda,dmin,dmax,del); } lambda=(double)sumtuc/(double)(total*2); d=(double)maxtuc*(double)mintuc/lambda/lambda; if (d>1) lamcntc=lamcntc+1; if (d>maxminratc) maxminratc=d; if (d<minmaxratc) minmaxratc=d; sumtu=0; sumt=0; sumu=0; sumtuc=0; maxtu=0; maxt=0; maxu=0; mintu=1000000000; mint=1000000000; minu=1000000000; kk=0; maxtuc=0; mintuc=1000000000; total=0; olds=0; cyccnt=cyccnt+1; // sumrec=sumrec*(double)c; tempf=(double)(levens+lodds)*log(2)-(double)(lodds)*log(3); if ((wflag==1)&&(eowrite==0)) { printf("c=%d, e=%d, o=%d, sum=%e, tempf=%e, osum=%d, esum=%d, jsum=%d, hsum=%d \n",c,levens,lodds,sumrec,tempf,oddsum,evensum,jsum,hcount); fprintf(Outfp,"c=%d, e=%d, o=%d, sum=%e, tempf=%e, osum=%d, esum=%d, jsum=%d, hsum=%d \n",c,levens,lodds,sumrec,tempf,oddsum,evensum,jsum,hcount); } if (tempf<0.0) tempf=-tempf; if (tempf>(sumrec*3.0)) { printf("error: delta greater than sum of reciprocals \n"); fprintf(Outfp,"error: delta greater than sum of reciprocals \n"); goto zskip; } sumrec=0.0; // if (savchain<oldt) { if ((wflag!=2)&&(eowrite==0)) { printf("error: bad chain (wrap-around), c=%d \n",c); printf("chain=%e, oldt=%d, t=%d, jump=%d, count=%d, s=%d \n",savchain,oldt,savet,savjump,savcnt,s[i]); fprintf(Outfp,"error: bad chain (wrap-around), c=%d \n",c); fprintf(Outfp,"chain=%e, oldt=%d, t=%d, jump=%d, count=%d, s=%d \n",savchain,oldt,savet,savjump,savcnt,s[i]); } badcnt=badcnt+1; } oldt=0; lastt=0; firstt=1; oldchn=1000000000.0; oldu=0; // delta=oddsum-jmpsum+hcount-evensum+offset1; if (delta<0) { printf("error: offset not big enough \n"); goto zskip; } if (delta>199) { printf("error: histogram array not big enough \n"); goto zskip; } histoh[delta]=histoh[delta]+1; if (wflag==0) { if ((oddsum+hcount+2)<evensum) { printf("warning: oddsum=%d, hcount=%d, evensum=%d \n",oddsum,hcount,evensum); fprintf(Outfp,"warning: oddsum=%d, hcount=%d, evensum=%d \n",oddsum,hcount,oddsum); } } // delta=hcount-jmpsum+offset1; if (delta<0) { printf("error: offset not big enough \n"); goto zskip; } if (delta>199) { printf("error: histogram array not big enough \n"); goto zskip; } histow[delta]=histow[delta]+1; // delta=jsum-evensum+offset2; if (delta<0) { printf("error: offset not big enough, jsum=%d, delta=%d \n",jsum,delta); goto zskip; } if (delta>199) { printf("error: histogram array not big enough \n"); goto zskip; } histov[delta]=histov[delta]+1; // for (tempi=0; tempi<27; tempi++) { if ((conv[2*tempi+1]==levens)&&(conv[2*tempi+1]==lodds)) { delta=jsum-evensum+offset5; if (delta<0) { printf("array not big enough, delta b=%d \n",delta); goto zskip; } if (delta>29) { printf("array not big enough, delta b=%d \n",delta); goto zskip; } histob[delta]=histob[delta]+1; cyccntb=cyccntb+1; if ((3.0*log(c))<patcnt) { printf("not enough attachment points, c=%d, count=%d \n",c,patcnt); goto zskip; } } if (conv[2*tempi+1]>lodds) break; } // delta=oddsum-evensum+offset1; if (delta<0) { printf("error: offset not big enough, jsum=%d, delta=%d \n",jsum,delta); goto zskip; } if (delta>199) { printf("error: histogram array not big enough \n"); goto zskip; } histos[delta]=histos[delta]+1; if (lodds==levens) histof[delta]=histof[delta]+1; // // check limit // if (oddsum>jsum) { tempi=oddsum-jsum; tempf=1.0; for (j=0; j<tempi; j++) tempf=tempf*2.0; tempf=(rat-1.0)*log(tempf); tempf=exp(tempf); tempg=1.0; for (j=0; j<(unsigned int)evensum; j++) tempg=tempg*2.0; tempf=tempf/tempg; if (tempf>1.0) { if (eowrite==0) printf("warning: tempf=%e, tempg=%e, oddsum=%d, jsum=%d, evensum=%d \n",tempf,tempg,oddsum,jsum,evensum); compcnt=compcnt+1; if (tempf>maxcmp) maxcmp=tempf; } } // if (hsum!=hcount) { printf("mis-matched sums \n"); goto zskip; } delta=patcnt-hcount+offset2; if (delta<0) { printf("error: offset not big enough, jsum=%d, delta=%d \n",patcnt,hcount); goto zskip; } if (delta>199) { printf("error: offset not big enough, jsum=%d, delta=%d \n",patcnt,hcount); goto zskip; } histoo[delta]=histoo[delta]+1; oddsum=0; evensum=0; jsum=0; jmpsum=0; hcount=0; // // check primary multiple jumps // if (mflag!=0) { for (j=0; j<attcnt; j++) { if (s[j+savind]==tmps) { if ((jumps[j+savind]!=0)&&(jumps[j+savind]!=3)) { printf("error: one-jump not found \n"); goto zskip; } goto vskip; } } printf("error: no match \n"); goto zskip; } // // check number of attachment points // vskip: if ((3.0*log(c))<patcnt) { if (wflag==0) { printf("not enough attachment points, c=%d, count=%d \n",c,patcnt); fprintf(Outfp,"not enough attachment points, c=%d, count=%d \n",c,patcnt); } if (levens==lodds) equcnt=equcnt+1; } delta=(int)(3.0*log(c))-patcnt+offset6; if (delta<0) { printf("array not big enough (histod): delta=%d \n",delta); goto zskip; } if (delta>399) { printf("array not big enough (histod): delta=%d \n",delta); goto zskip; } // if ((c==1843)&&(levens==90)&&(lodds=117)) // temporary!!! // if ((c==1967)&&(levens==14)&&(lodds==8)) histod[delta]=histod[delta]+1; for (ii=0; ii<5000; ii++) { if (((levens+lodds)==(ln[ii]>>16))&&(lodds==(ln[ii]&0xffff))) { histodd[delta]=histodd[delta]+1; goto iiskip; } if (lodds<(ln[ii]&0xffff)) goto iiskip; } printf("error: ln array not big enough \n"); goto zskip; // iiskip: attcnt=0; patcnt=0; mflag=0; savind=i+1; // // compute inequality // if (infin==0) { bp=1.0+(double)c/(double)glomin; bm=1.0-(double)c/(double)glomin; if (bm<0.0) bm=-bm; } else { bp=1.0; bm=1.0; } tempf=exp((double)a*log(rat))-1.0; tempg=(double)a/tempf; tempg=ratdel-tempg; cap=exp(tempg*log(bp)); cam=exp(tempg*log(bm)); cap=3.0*(double)c*(double)a*cap; cam=3.0*(double)c*(double)a*cam; tempg=(rat-1.0)/tempf; tempg=-tempg*(double)lodds; tempg=exp(tempg*log(2.0)); cap=cap*tempg; cam=cam*tempg; tempf=(double)(levens+lodds)*log(2)-(double)lodds*log(3); if (tempf<0.0) tempf=-tempf; if ((tempf>cap)||(tempf>cam)) { if (eowrite==0) { printf("error: c=%d, e=%d, o=%d, a=%d, cap=%e, cam=%e, tempf=%e \n",c,levens,lodds,a,cap,cam,tempf); fprintf(Outfp,"error: c=%d, e=%d, o=%d, a=%d, cap=%e, cam=%e, tempf=%e \n",c,levens,lodds,a,cap,cam,tempf); } badcomp=badcomp+1; } glomin=1000000000; a=0; // // check global maximum // ttemp=tsave; if (ttemp<0) ttemp=-ttemp; k=usave; locmax=k; if (locmax<0) locmax=-locmax; lastodd=locmax; k=3*k+c; while ((k&7)!=0) { while ((k&1)==0) { k=k/2; } delta=k; if (delta<0) delta=-delta; if (delta>locmax) { locmax=delta; usave=k; } lastodd=delta; k=3*k+c; } if (lastodd!=locmax) { if (ttemp>locmax) { printf("error: t is greater than global maximum, u=%d, t=%d, max=%d, jump=%d \n",usave,tsave,locmax,savjmp); goto zskip; } k=usave; k=3*k+c; while ((k&7)!=0) { k=k/2; if ((k&1)==0) { k=k/2; delta=k; if (delta<0) delta=-delta; if (delta==lastodd) { if (savjmp==0) goto wskip; else { printf("error: not a no-jump attachment point \n"); fprintf(Outfp,"error: not a no-jump attachment point \n"); goto zskip; } } } k=3*k+c; } if (savjmp!=1) { printf("error: not a one-jump attachment point \n"); fprintf(Outfp,"error: not a one-jump attachment point \n"); goto zskip; } wskip: delta=0; } glomax=0; } else olds=s[i]; } index=index+iters; if (wflag==0) { printf("\n"); fprintf(Outfp,"\n"); } for (tempi=0; tempi<cycsavind; tempi++) { outkl[2*outklind]=cycsav[2*tempi]; outkl[2*outklind+1]=cycsav[2*tempi+1]; outklind=outklind+1; } outcnt[h]=cycsavind; } ewrite=0; } printf("\n"); fprintf(Outfp,"\n"); if (eowrite!=0) { printf("histogram of number of cycles \n"); fprintf(Outfp,"histogram of number of cycles \n"); for (i=0; i<20; i++) { printf("i=%d, count=%d \n",i,ncyc[i]); fprintf(Outfp,"i=%d, count=%d \n",i,ncyc[i]); } printf("\n"); fprintf(Outfp,"\n"); } printf("maxdel=%e, c=%d, mindel=%e, c=%d \n",maxdel,cmax,mindel,cmin); fprintf(Outfp,"maxdel=%e, c=%d, mindel=%e, c=%d \n",maxdel,cmax,mindel,cmin); printf("\n"); fprintf(Outfp,"\n"); // // output histogram of evens minus odds // printf("histogram of number of evens minus odds in extended sequences \n"); fprintf(Outfp,"histogram of number evens minus odds in extended sequences \n"); flag=99; for (i=99; i>0; i--) { if (histo[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histo[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset,histo[i]); printf("i=%d, h[i]=%d \n",i-offset,histo[i]); } // // output histogram of k values (for primary one-jump attachment points) // printf("\n"); fprintf(Outfp,"\n"); printf("histogram of k values for primary one-jump attachment points \n"); fprintf(Outfp,"histogram of k values for primary one-jump attachment points \n"); printf("c=%d \n",hflag); fprintf(Outfp,"c=%d \n",hflag); flag=99; for (i=99; i>0; i--) { if (histoj[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histoj[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset,histoj[i]); printf("i=%d, h[i]=%d \n",i-offset,histoj[i]); } // // output histogram of hops // printf("\n"); fprintf(Outfp,"\n"); printf("number of hops before local minimum is reached \n"); fprintf(Outfp,"number of hops before local minimum is reached \n"); for (i=0; i<10; i++) { printf("i=%d, h=%d \n",i,hismin[i]); fprintf(Outfp,"i=%d, h=%d \n",i,hismin[i]); } // // output histogram of j values for primary no-jumps // printf("\n"); fprintf(Outfp,"\n"); printf("j values for primary no-jumps \n"); fprintf(Outfp,"j values for primary no-jumps \n"); for (i=0; i<20; i++) { printf("i=%d, h=%d \n",i,histon[i]); fprintf(Outfp,"i=%d, h=%d \n",i,histon[i]); } // // // output histogram of j values for primary multiple-jumps // printf("\n"); fprintf(Outfp,"\n"); printf("j values for primary multiple-jumps \n"); fprintf(Outfp,"j values for primary multiple-jumps \n"); for (i=0; i<10; i++) { printf("i=%d, h=%d \n",i,histom[i]); fprintf(Outfp,"i=%d, h=%d \n",i,histom[i]); } // // last odd counts // printf("\n"); fprintf(Outfp,"\n"); printf("no-jump count=%d, one-jump count=%d, jumped-over count=%d \n",county,countn,countx); fprintf(Outfp,"no-jump count=%d, one-jump count=%d, jumped-over count=%d \n",county,countn,countx); // // output histogram of k values (for primary one-jump attachment points) // printf("primary one-jump attachment points, last odd not equal to locmax \n"); fprintf(Outfp,"primary one-jump attachment points, last odd not equal to locmax \n"); printf("c=%d \n",hflag); fprintf(Outfp,"c=%d \n",hflag); flag=99; for (i=99; i>0; i--) { if (newhis[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((newhis[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset,newhis[i]); printf("i=%d, h[i]=%d \n",i-offset,newhis[i]); } // // output histogram of k values (for primary one-jump attachment points) // printf("\n"); fprintf(Outfp,"\n"); printf("primary one-jump attachment points, element several hops away from u equal to locmin (oldhis) \n"); fprintf(Outfp,"primary one-jump attachment points, element several hops away from u equal to locmin (oldhis) \n"); printf("c=%d \n",hflag); fprintf(Outfp,"c=%d \n",hflag); flag=99; for (i=99; i>0; i--) { if (oldhis[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((oldhis[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset,oldhis[i]); printf("i=%d, h[i]=%d \n",i-offset,oldhis[i]); } printf("\n"); fprintf(Outfp,"\n"); // // output histogram of k values (for primary one-jump attachment points) // printf("primary one-jump attachment points, u (or element several hops away from u) not equal to locmin (histoe) \n"); fprintf(Outfp,"primary one-jump attachment points, u (or element several hops away from u) not equal to locmin (histoe) \n"); flag=99; for (i=99; i>0; i--) { if (histoe[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histoe[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset,histoe[i]); printf("i=%d, h[i]=%d \n",i-offset,histoe[i]); } printf("\n"); fprintf(Outfp,"\n"); // // output histogram of odd sum plus hops minus number of evens // printf("odd sum minus jumps plus hops minus even sum \n"); fprintf(Outfp,"odd sum minus jumps plus hops minus even sum (global, histoh) \n"); flag=199; for (i=199; i>0; i--) { if (histoh[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histoh[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset1,histoh[i]); printf("i=%d, h[i]=%d \n",i-offset1,histoh[i]); } printf("\n"); fprintf(Outfp,"\n"); // // output histogram of odd sum plus hops minus number of evens // printf("number of odds minus jumps plus hops minus number of evens (local) \n"); fprintf(Outfp,"number of odds minus jumps plus hops minus number of evens (local, histoi) \n"); flag=99; for (i=99; i>0; i--) { if (histoi[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histoi[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset,histoi[i]); printf("i=%d, h[i]=%d \n",i-offset,histoi[i]); } printf("\n"); fprintf(Outfp,"\n"); // // output histogram of j minus number of evens plus number of hops // printf("j minus number of evens plus number of hops minus jumps \n"); fprintf(Outfp,"j minus number of evens plus number of hops minus jumps (local, histox) \n"); flag=99; for (i=99; i>0; i--) { if (histox[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histox[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset,histox[i]); printf("i=%d, h[i]=%d \n",i-offset,histox[i]); } printf("\n"); fprintf(Outfp,"\n"); // // output histogram of j minus number of evens (local) // printf("j minus number of evens (local) \n"); fprintf(Outfp,"j minus number of evens (local, histoy) \n"); flag=99; for (i=99; i>0; i--) { if (histoy[i]==0) continue; else { flag=i; break; } } first=0; sum=0; tempi=0; for (i=0; i<=(int)flag; i++) { if ((histoy[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset,histoy[i]); printf("i=%d, h[i]=%d \n",i-offset,histoy[i]); sum=sum+histoy[i]*(i-offset); tempi=tempi+histoy[i]; } mean=(double)sum/(double)tempi; first=0; var=0.0; for (i=0; i<=(int)flag; i++) { if ((histoy[i]==0)&&(first==0)) continue; first=1; tempf=(double)i-(double)offset-mean; var=var+tempf*tempf*(double)histoy[i]; } var=var/(double)(tempi-1); std=sqrt(var); printf("mean=%e, standard deviation=%e \n",mean,std); fprintf(Outfp,"mean=%e, standard deviation=%e \n",mean,std); // // output histogram of j minus number of evens // printf("\n"); fprintf(Outfp,"\n"); printf("j minus number of evens (global) \n"); fprintf(Outfp,"j minus number of evens (global, histov) \n"); flag=199; for (i=199; i>0; i--) { if (histov[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histov[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset2,histov[i]); printf("i=%d, h[i]=%d \n",i-offset2,histov[i]); } // // output histogram of hops minus number of jumps // printf("\n"); fprintf(Outfp,"\n"); printf("hops minus number of jumps (local) \n"); fprintf(Outfp,"hops minus number of jumps (local, histoz) \n"); flag=99; for (i=99; i>0; i--) { if (histoz[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histoz[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset,histoz[i]); printf("i=%d, h[i]=%d \n",i-offset,histoz[i]); } // // output histogram of hops minus number of jumps // printf("\n"); fprintf(Outfp,"\n"); printf("hops minus number of jumps \n"); fprintf(Outfp,"hops minus number of jumps (global, histow) \n"); flag=199; for (i=199; i>0; i--) { if (histow[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histow[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset1,histow[i]); printf("i=%d, h[i]=%d \n",i-offset1,histow[i]); } printf("\n"); fprintf(Outfp,"\n"); // // output histogram of odds minus evens (global) // printf("sum of odds minus sum of evens (global) \n"); fprintf(Outfp,"sum of odds minus sum of evens (global, histos) \n"); flag=199; for (i=199; i>0; i--) { if (histos[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histos[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset1,histos[i]); printf("i=%d, h[i]=%d \n",i-offset1,histos[i]); } printf("\n"); fprintf(Outfp,"\n"); // // output histogram of odds minus evens (global, L=K) // printf("sum of odds minus sum of evens (global, L=K) \n"); fprintf(Outfp,"sum of odds minus sum of evens (global, L=K, histof) \n"); flag=199; for (i=199; i>0; i--) { if (histof[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histof[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset1,histof[i]); printf("i=%d, h[i]=%d \n",i-offset1,histof[i]); } printf("\n"); fprintf(Outfp,"\n"); // // output histogram of odds minus evens (local) // printf("odds minus evens (local) \n"); fprintf(Outfp,"odds minus evens (local, histor) \n"); flag=99; for (i=99; i>0; i--) { if (histor[i]==0) continue; else { flag=i; break; } } first=0; for (i=0; i<=(int)flag; i++) { if ((histor[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset,histor[i]); printf("i=%d, h[i]=%d \n",i-offset,histor[i]); } // // output histogram of j minus evens (continued-fraction convergents) // printf("\n"); fprintf(Outfp,"\n"); printf("j minus evens (convergents, evens equal odds) \n"); fprintf(Outfp,"j minus evens (convergents, evens equal odds, local, histoa) \n"); flag=29; for (i=29; i>0; i--) { if (histoa[i]==0) flag=flag-1; else break; } sum=0; tempi=0; first=0; for (i=0; i<=(int)flag; i++) { if ((histoa[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset4,histoa[i]); printf("i=%d, h[i]=%d \n",i-offset4,histoa[i]); sum=sum+histoa[i]*(i-offset4); tempi=tempi+histoa[i]; } mean=(double)sum/(double)tempi; printf("n=%d, sum=%d, mean=%e \n",tempi,sum,mean); fprintf(Outfp,"n=%d,sum=%d, mean=%e \n",tempi,sum,mean); // // output histogram of j minus evens (continued-fraction convergents) // printf("\n"); fprintf(Outfp,"\n"); printf("j minus evens (convergents, evens equal odds, global) \n"); fprintf(Outfp,"j minus evens (convergents, evens equal odds, global, histob) \n"); flag=29; for (i=29; i>0; i--) { if (histob[i]==0) flag=flag-1; else break; } first=0; for (i=0; i<=(int)flag; i++) { if ((histob[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset5,histob[i]); printf("i=%d, h[i]=%d \n",i-offset5,histob[i]); } // // output histogram // printf("\n"); fprintf(Outfp,"\n"); printf("3*log(c)-a \n"); fprintf(Outfp,"3*log(c)-a \n" ); flag=399; for (i=399; i>0; i--) { if (histod[i]==0) flag=flag-1; else break; } first=0; for (i=0; i<=(int)flag; i++) { if ((histod[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset6,histod[i]); printf("i=%d, h[i]=%d \n",i-offset6,histod[i]); } // // output histogram // printf("\n"); fprintf(Outfp,"\n"); printf("3*log(c)-a ((L,K) in table) \n"); fprintf(Outfp,"3*log(c)-a ((L,K) in table)\n" ); flag=399; for (i=399; i>0; i--) { if (histodd[i]==0) flag=flag-1; else break; } first=0; for (i=0; i<=(int)flag; i++) { if ((histodd[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset6,histodd[i]); printf("i=%d, h[i]=%d \n",i-offset6,histodd[i]); } // // output histogram // printf("\n"); fprintf(Outfp,"\n"); printf("number of primary attachment points minus number of hops \n"); fprintf(Outfp,"number of primary attachment points minus number of hops \n"); flag=199; for (i=199; i>0; i--) { if (histoo[i]==0) flag=flag-1; else break; } first=0; for (i=0; i<=(int)flag; i++) { if ((histoo[i]==0)&&(first==0)) continue; first=1; fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset2,histoo[i]); printf("i=%d, h[i]=%d \n",i-offset2,histoo[i]); } printf("\n"); fprintf(Outfp,"\n"); printf("cycle count=%d, multiple-jump count=%d, two-jump count=%d, non-adjacent count=%d \n",cyccnt,mcount,twojmp,jmphop); printf("total jumps (in multiple-jumps)=%d, total hops (in multiple-jumps)=%d \n",glojmp,glohop); printf("hop/hop=%d, jump/hop=%d, hop/jump=%d, jump/jump=%d \n",twojmp0,twojmp1,twojmp2,twojmp3); fprintf(Outfp,"cycle count=%d, multiple-jump count=%d, two-jump count=%d, non=adjacent count=%d \n",cyccnt,mcount,twojmp,jmphop); fprintf(Outfp,"total jumps (in multiple-jumps)=%d, total hops (in multiple-jumps)=%d \n",glojmp,glohop); fprintf(Outfp,"hop/hop=%d, jump/hop=%d, hop/jump=%d, jump/jump=%d \n",twojmp0,twojmp1,twojmp2,twojmp3); printf("primary attachment points=%d \n",primary); fprintf(Outfp,"primary attachment points=%d \n",primary); printf("bad t chains=%d, bad u chains=%d, bad t-u chains=%d \n",badcnt,badcntu,badtucnt); fprintf(Outfp,"bad t chains=%d, bad u chains=%d, bad t-u chains=%d \n",badcnt,badcntu,badtucnt); printf("bad comparisons=%d, other comparisons=%d, maximum=%e \n",badcomp,compcnt,maxcmp); fprintf(Outfp,"bad comparisons=%d, other comparisons=%d, maximum=%e \n",badcomp,compcnt,maxcmp); printf("cycle count=%d, cycle count=%d (convergents)\n",cyccntu,cyccntb); fprintf(Outfp,"cycle count=%d, cycle count=%d (convergents)\n",cyccntu,cyccntb); printf("evens equal odds, bad comparison count=%d \n",equcnt); fprintf(Outfp,"evens equal odds, bad comparison count=%d \n",equcnt); printf("maximum ratio=%e, minimum ratio=%e, count=%d, c=%d, k=%d \n",maxminrat,minmaxrat,lamcnt,savec,ksave); fprintf(Outfp,"maximum ratio=%e, minimum ratio=%e, count=%d, c=%d, k=%d \n",maxminrat,minmaxrat,lamcnt,savec,ksave); printf("maximum ratio=%e, minimum ratio=%e, count=%d \n",maxminratc,minmaxratc,lamcntc); fprintf(Outfp,"maximum ratio=%e, minimum ratio=%e, count=%d \n",maxminratc,minmaxratc,lamcntc); printf("flubs=%d, maximum ratio=%e, flubs=%d, pcount=%d \n",flubx,maxdiff,flubs,pcount); fprintf(Outfp,"flubs=%d, maximum ratio=%e, flubs=%d, pcount=%d \n",flubx,maxdiff,flubs,pcount); printf("\n"); fprintf(Outfp,"\n"); printf("histogram of chain counts \n"); fprintf(Outfp,"histogram of chain counts \n"); for (i=0; i<40; i++) { printf("i=%d, count=%d \n",i,chhist[i]); fprintf(Outfp,"i=%d, count=%d \n",i,chhist[i]); } printf("\n"); fprintf(Outfp,"\n"); printf("powers for specified a value \n"); fprintf(Outfp,"powers for specified a value \n"); for (i=0; i<40; i++) { printf("i=%d, counts=%d, %d, %d \n",i,d1hist[i],d2hist[i],d3hist[i]); fprintf(Outfp,"i=%d, counts=%d, %d, %d \n",i,d1hist[i],d2hist[i],d3hist[i]); } printf("\n"); fprintf(Outfp,"\n"); for (i=0; i<27; i++) { printf("i=%d, c=%d, c=%d, c=%d \n",i,concov[3*i],concov[3*i+1],concov[3*i+2]); fprintf(Outfp,"i=%d, c=%d, c=%d, c=%d \n",i,concov[3*i],concov[3*i+1],concov[3*i+2]); } printf("\n"); fprintf(Outfp,"\n"); for (i=0; i<27; i++) { printf("i=%d, c=%d, c=%d, c=%d \n",i,concove[3*i],concove[3*i+1],concove[3*i+2]); fprintf(Outfp,"i=%d, c=%d, c=%d, c=%d \n",i,concove[3*i],concove[3*i+1],concove[3*i+2]); } printf("\n"); fprintf(Outfp,"\n"); printf("count=%d \n",outklind); fprintf(Outfp,"count=%d \n",outklind); wrap=0; for (i=0; i<outklind; i++) { printf("%d,%d,",outkl[2*i],outkl[2*i+1]); fprintf(Outfp,"%d,%d,",outkl[2*i],outkl[2*i+1]); wrap=wrap+1; if (wrap==10) { wrap=0; printf("\n"); fprintf(Outfp,"\n"); } } printf("\n"); fprintf(Outfp,"\n"); wrap=0; for (i=0; i<200; i++) { printf("%d,",outcnt[i]); fprintf(Outfp,"%d,",outcnt[i]); wrap=wrap+1; if (wrap==20) { wrap=0; printf("\n"); fprintf(Outfp,"\n"); } } zskip: fclose(Outfp); return(0); }