﻿ /*******************************
```/*****************************************************************************/
/*									     */
/*  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[4075+982]={-68,
2,38,1562,1496,374,1436,1334,
10,
8,2,62,26,
4,1048,262,358,844,682,454,574,502,
-130,8,2,62,140,50,
-374,-230,10,28,
-7330,-19330,-8134,-11878,-7486,-9436,-14686,-12364,-9052,-12526,-23704,
-5926,20,14,1244,392,98,110,
-1502,-452,-242,88,22,28,34,
-226,8,2,98,44,36902,1707830,1441016,360254,577232,144308,20306,7622,194366,
788552,197138,73934,41606,79082,18794,
-380,34,106,58,52,
104,26,68,
76,58,46,
38,128,32,8,2,
28,16,4,
494,200,50,98,20,38,26,44,260,206,146,170,
814,400,100,178,
206,350,230,
64,16,4,28,244,82,634,
104,26,92,32,8,2,38,578,362,1064,266,740,434,596,
16,4,24958,5974,3850,2878,1258,586,
332,134,116,38,62,
1060,340,184,46,34,
248,62,116,13874,22472,5618,48488,12122,18692,7970,17042,41360,10340,22724,
58,40,10,22,202,94,166,328,82,958,1216,304,76,100,46,
-14254,-5326,-1978,-3874,-18448,-4612,74,284,128,32,8,2,20,
136,34,268,70,46,88,22,28,142,460,106,172,52,64,16,4,1864,466,1060,658,
218,1052,314,566,1646,638,260,
142,112,28,214,2146,826,1174,2194,844,364,736,184,46,
266,122,68,
58,1018,748,220,64,16,4,400,100,118,
-1426,416,104,26,74,254,2288,572,122,128,32,8,2,68,236,182,92,
-2222,-1250,-1010,-5516,106,64,16,4,34,52,

224,56,14,98,62,200,50,44,116,152,38,74,92,
52,160,40,10,70,58,286,214,106,124,184,46,
68,86,80,20,230,194,176,44,554,1862,9104,2276,512,128,32,8,2,
2170,658,274,130,76,
-13138,-13678,-5668,-5098,-3076,50,1064,266,128,32,8,2,
-422,196,124,52,1036,442,964,286,136,34,
-622,110,92,218,296,74,116,3698,4922,2162,2978,2654,3350,1286,512,128,32,8,2,
80,20,38,44,1196,254,
-55928,-13982,-7166,-4340,-4178,-5042,-10244,790,520,130,238,670,562,202,106,
70,184,46,304,76,40,10,34,124,196,628,148,58,52,
32,8,2,926,752,188,3218,1238,734,764,572,136328,34082,12812,42584,10646,42764,
61538,23108,4364,8852,3002,29462,
94,82,220,274,382,154,166,1030,418,622,598,256,64,16,4,
-133108,-70342,-21766,-155020,-146716,-41182,-43018,-60694,-108628,-756598,
-638224,-159556,-29884,-31750,-134566,-170044,104,26,266,380,236,1694,668,
158,92,50,110,74,218,542,326,338,272,68,
142,358,460,352,88,22,298,1942,2728,682,250,226,118,
128,32,8,2,692,164,1916,1178,476,3212,776,194,206,13418,5066,1934,2726,2972,
3806,3374,80000,20000,5000,1250,
-5366,-7886,-6374,-7022,-7034,-35102,-19658,-5468,-10316,-21602,-8066,-2990,
-9182,-5078,-13556,-4982,-5942,-7238,-8858,-14546,-5420,-17624,-4406,-5294,
-6446,-4694,-10154,-16472,-4118,-6062,-12098,-4502,-8876,-11612,-7724,
-17240,-4310,-10328,-2582,-8492,-7994,-5798,-7418,-5414,706,484,202,538,
916,862,358,1510,490,868,220,76,142,88,22,
350,698,482,24476,18032,4508,33224,8306,7178,2384,596,1148,224,56,14,392,
98,1022,536,134,86,68,116,122,158,
-1454,-482,-5486,-3758,64,16,4,328,82,166,184,46,94,802,226,616,154,
194,110,29450,8348,1868,608,152,38,4826,5798,4412,1334,
370,502,226,538,730,2854,1108,406,190,856,214,118,82,1018,
152,38,602,692,476,128,32,8,2,98,
52,76,544,136,34,
86,152,38,122,134,176,44,800,200,50,464,116,62,158,1286,824,206,314,
1012,1498,1324,508,136,34,238,130,172,184,46,58,4738,2116,886,658,472,118,
1822,724,352,88,22,
140,68,212,164,374,182,110,104,26,266,254,686,542,380,
154,100,88,22,118,172,1630,1576,394,190,250,136,34,766,
92,134,434,206,224,56,14,116,164,74,188,
1222,502,232,58,142,664,166,106,358,178,412,286,202,292,
374,320,80,20,2420,1466,5354,4730,6350,2426,3434,3110,1184,296,74,
-39218,-12266,-136562,-57482,-54242,-30398,-11354,-165956,-46562,-26078,
-9734,-173798,328,82,76,460,352,88,22,8050,3064,766,544,136,34,58,1732,
370,184,46,220,310,760,190,
-29092,-18034,-75544,-18886,-7036,452,2882,3794,1148,704,176,44,128,32,8,2,
406,196,172,106,514,1000,250,604,160,40,10,
110,938,488,122,188,8450,54458,30752,7688,1922,9746,19466,12572,4994,22868,
-51896,-12974,-36938,-50438,-18866,-26246,-9794,-34994,-73766,-27614,-7682,
-13826,-145046,-54344,-13586,-11234,-24212,-31118,-33266,-29054,112,28,
220,322,1060,646,484,256,64,16,4,160,40,10,52,58,70,418,202,124,754,13714,
6790,3940,1006,1078,1456,364,1390,1402,574,1726,
3182,1484,860,2372,494,350,320,80,20,116,914,392,98,86,608,152,38,266,170,
134,2336,584,146,104,26,
220,118,94,154,208,52,

128,32,8,2,362,7796,3530,4880,1220,470,614,338,776,194,236,122,
344,86,254,146,
1288,322,172,316,214,424,106,286,268,586,376,94,
128,32,8,2,92,3338,1304,326,314,170,116,74,80,20,56,14,
260,350,3176,794,818,854,1880,470,
592,148,484,268,130,1474,4768,1192,298,502,292,214,
1418,932,2444,512,128,32,8,2,188,662,302,518,248,62,
-6494,-4766,-1814,-626,-1850,-1490,-1634,-2174,-1394,1714,2980,514,1066,454,2200,550,
388,472,118,202,130,136,34,334,3172,460,244,100,
362,320,80,20,
82,334,1258,574,250,280,70,610,2332,694,316,142,262,154,226,
80,20,278,458,656,164,188,92,74,332,146,224,56,14,62,
292,112,28,94,196,178,124,184,46,304,76,232,58,130,106,148,
62,530,428,266,158,410,212,98,386,374,356,152,38,896,224,56,
14,698,320,80,20,4622,8312,2078,2030,7352,1838,3614,3326,14018,4652,1454,
11912,2978,8996,2222,7538,7052,5270,3110,6026,2318,5756,6746,2588,3302,3932,4892,
3938,4316,
406,352,88,22,76,1336,334,184,46,262,544,136,34,166,
182,128,32,8,2,488,122,218,272,68,5618,5024,1256,314,326,1094,
470,236,104,26,164,212,2432,608,152,38,74,3566,3188,1046,452,
298,172,622,2080,520,130,142,406,430,766,1792,448,112,28,250,154,
118,1054,14428,4840,1210,514,
206,398,344,86,83996,17894,22508,9602,3662,1352,338,188,4238,1964,2672,668,
88,22,70,700,526,256,64,16,4,274,3706,2956,616,154,160,40,10,
3886,2320,580,538,112,28,814,862,
338,500,8990,3434,4856,1214,518,446,230,728,182,22028,4874,22838,57830,55562,
179576,44894,16898,9662,3686,6314,
562,274,166,724,382,544,136,34,76,1048,262,3154,1246,1750,1396,88240,
22060,10966,7228,4342,3964,1018,334,346,208,52,118,400,100,82,94,64,
16,4,
176,44,194,680,170,128,32,8,2,2936,734,2732,
802,1342,568,142,118,1618,1072,268,178,262,892,232,58,964,484,298,
856,214,340,430,226,
548,1088,272,68,4736,1184,296,74,206,182,134,116,386,638,686,308,
254,584,146,902,404,278,170,260,422,224,56,14,
214,286,556,322,376,94,394,7348,1444,706,538,268,19654,8482,5794,3136,
784,196,
3146,7952,1988,440,110,230,3578,1124,278,554,1976,494,446,1202,518,878,
662,1880,470,716,1364,1688,422,986,566,1148,734,638,746,842,908,1004,
388,796,688,172,100,364,136,34,958,
2414,974,434,416,104,26,956,248,62,92,86,866,1064,266,482,536,
134,158,128,32,8,2,
2980,628,1036,766,604,802,370,208,52,262,550,664,166,358,5986,2314,
772,214,3142,
1196,512,128,32,8,2,296,74,98,200,50,272,68,152,38,218,
146,164,131444,24716,20582,6734,20636,30842,11636,2252,578,818,
160,40,10,952,238,3262,1294,556,202,7042,4138,5812,2788,1258,1696,424,
106,8458,16990,6442,8728,2182,11362,6568,1642,
248,62,206,332,134,122,2840,710,338,626,914,1112,278,176,44,80,
20,3518,908,242,1070,926,386,2060,458,
2200,550,490,256,64,16,4,580,208,52,82,460,310,
884,452,158,272,68,86,704,176,44,
5086,2248,562,5896,1474,1594,3862,1522,5704,1426,2404,4348,3214,1618,2458,1762,
1978,2782,1954,2302,3268,2788,2494,
620,218,434,398,224,56,14,80,20,290,350,206,152,38,3284,3152,
788,1106,

1012,274,178,142,268,1066,1492,1510,23542,11506,4390,10624,2656,664,166,3130,
232,58,148,304,76,1672,418,
266,176,44,662,824,206,536,134,374,968,242,644,224,56,14,
86,2912,728,182,296,74,104,26,
166,670,328,82,238,1264,316,136,34,13090,4384,1096,274,346,994,
640,160,40,10,1300,820,9688,2422,66550,28354,151168,37792,9448,2362,11182,4270,1678,
706,2722,1732,586,
-66382,-532300,-168010,-62926,-118786,-70222,-250162,-78766,-166876,-298258,-62734,-222460,-176668,-111166,-633616,-158404,
-237022,-199618,-83932,-104830,-279484,-117538,-279322,-104668,-331486,-222514,-62446,-278998,-156742,-65902,-469726,-395962,
-148408,-37102,-104038,-104290,-220678,-186754,-139612,-87406,-370852,-77998,-92902,-496240,-124060,-311218,-87394,-331144,
-82786,-92542,-130606,-246922,-92518,-86758,-521170,-164554,-61630,-68782,-274948,-274840,-68710,-488950,-412162,-246640,
-61660,-109150,-91726,-153826,-145186,-325654,-182986,-68542,-153292,-51118,-458818,-193282,-91222,-128482,-192586,-72142,
-228292,-143782,-90574,-607048,-151762,-113926,-681622,-383218,-107644,-84814,-42478,-1928212,-361462,-203128,-50782,-604456,
-151114,-56590,-70990,-112558,-89662,-239242,-89638,-213046,-119644,-126214,-199876,-140974,-168028,-158470,-168190,-106078,
-89134,-237202,-423340,-118870,-66670,-111586,-397420,-111580,-353572,-140326,-74158,-235474,-55534,-156526,-1066036,-199804,
-105802,-39598,-98350,-185686,-104254,-392938,-147274,-55150,-73582,-350584,-87646,-261880,-65470,-109870,-207556,-416356,
-58414,-122830,-184444,-232486,-312262,-131512,-32878,-260044,-122722,-259882,-97378,-146002,-463192,-115798,-64942,-162940,
-244006,-115420,-289528,-72382,-345346,-103108,-242692,-106726,-253240,-63310,-200590,-253078,-142162,-190204,-567682,-286018,
-120382,-127672,-31918,-106204,-159100,-299410,-52846,-502072,-125518,-168394,-63070,-178006,-99934,-83950,-561850,-210616,
-52654,-175966,-148102,-102958,-194434,-137302,-77038,-217762,-434842,-162988,-45646,-434032,-108508,-90466,-322348,-151810,
-1295368,-323842,-129028,-151756,-80446,-226510,-214456,-53614,-169420,-301354,-112930,-125566,-79294,-78286,-348982,-196108,
-130012,-206242,-231100,-97126,-777634,-491596,-174328,-43582,-194116,-127582,-107278,-135142,-361714,-101596,-169366,-95074,
-158290,-222622,-187468,-165580,-467080,-116770,-130054,-181150,-152476,-160510,-101218,-133198,-188746,-70702,-99502,-158236,
-132322,-124774,-209500,-197836,-747232,-186808,-46702,-206404,-171430,-108070,-200644,-112390,-217372,-136924,-142204,-95782,
-131074,-161116,-113854,-116878,-147292,-152638,-108130,722,2396,2252,500,5312,1328,332,140,104,
26,932,1910,794,1166,464,116,248,62,308,
-2093642,-1177478,-441476,-185876,-52082,-219950,-61724,82,160,40,10,664,166,2152,538,280,
70,460,322,7342,9928,2482,29134,42334,40798,39340,11260,5122,20464,5116,2530,16012,
5482,2134,1396,340,142,3124,6040,1510,862,1432,358,376,94,1558,1072,268,
700,946,502,478,88,22,208,52,
854,902,25154,9512,2378,1928,482,260,128,32,8,2,80,20,2924,1610,
1226,1286,
1258,760,190,9682,8548,6178,6430,1948,700,238,664,166,142,592,148,
1202,878,410,962,638,320,80,20,392,98,
1228,904,226,166,526,742,1012,508,346,
542,848,212,122,128,32,8,2,704,176,44,218,164,950,740,248,
62,1346,866,2630,1676,590,4250,
334,208,52,394,1288,322,388,316,142,136,34,226,880,220,124,106,
6598,4708,1006,460,
596,1034,812,236,128,32,8,2,14822,5642,3158,1268,566,296,74,272,
68,1646,998,458,434,764,254,218,332,146,
292,2308,472,118,940,934,736,184,46,574,1798,1222,898,400,100,
376,94,3112,778,454,466,502,364,1492,1384,346,214,418,
9590,12830,7430,6674,2588,1454,2318,2006,7484,
796,262,184,46,208,52,472,118,130,1138,6106,7600,1900,442,1441828,1734034,
3293086,2084458,1172722,1113778,1410322,2008990,1271866,11032066,59645188,28308838,10615900,1119844,709348,
452,344,86,176,44,158,146,320,80,20,806,4394,6266,14312,3578,2660,
4808,1202,1526,3350,1094,776,194,326,92,104,26,434,1190,2054,15500,3584,
896,224,56,14,
196,124,550,1330,586,1486,1054,2224,556,574,430,460,1000,250,712,178,
154,334,406,2026,2842,952,238,352,88,22,412,
650,332,314,206,488,122,134,296,74,116,110,512,128,32,8,2,
4718,4400,1100,530,3080,770,638,5534,10340,1964,668,614,566,1802,764,
256,64,16,4,94,124,112,28,1222,436,2104,526,286,196,165994,105448,
26362,307582,115432,28858,84022,346948,110248,27562,426382,159982,60082,34018,146758,31162,68026,74506,
63286,61018,57706,36922,120514,73654,106378,90178,82402,150586,545386,345532,64876,182032,45508,99394,
91636,131974,42154,235654,56308,399436,56326,180688,45172,66082,60898,65074,36826,128068,
350,4172,872,218,1160,290,1526,662,338,770,1076,1808,452,968,242,1322,
1256,314,1832,458,482,674,836,764,1052,
94,508,802,2164,496,124,640,160,40,10,994,1210,544,136,34,382,
1696,424,106,130,490,274,316,562,226,724,1018,472,118,292,262,370,
868,280,70,388,
416,104,26,254,2612,7148,2678,4826,7814,12188,3656,914,434,176,44,452,
164,122,194,
718,1810,1564,1720,430,514,1396,622,538,532,376,94,232,58,262,190,
214,172,124,178,586,448,112,28,
-1126,524,236,386,1766,1340,344,86,1070,494,278,2798,1142,818,692,1880,
470,5282,1964,5354,4958,1952,488,122,908,290,1466,2468,926,440,110,134,
200,50,260,
394,274,196,130,142,328,82,124,268,556,83986,31588,6016,1504,376,94,
286,880,220,454,826,2338,970,436,430,1960,490,592,148,184,46,
530,314,212,134,1652,404,170,158,140,116684,24884,4760,1190,674,626,350,
4064,1016,254,662,608,152,38,932,296,74,122,
3820,622,328,82,1714,1588,1120,280,70,244,820,796,
164,524,194,1460,650,920,230,182,596,18398,5342,1670,722,1064,266,
2144,536,134,146,578,2360,590,
-24074,-10946,-88766,-27656,-6914,-45026,-56204,-10442,-61172,-16964,178,424,106,136,34,
3502,3412,736,184,46,496,124,8326,4924,3898,1558,934,766,5596,2818,628,214,
13292,20306,7712,1928,482,278,1142,4052,740,236,1496,374,3086,296,74,458,
4706,1862,1622,20654,6842,4616,1154,530,326,650,362,272,68,110,
556,202,358,232,58,346,418,1480,370,2884,3958,1582,616,154,454,268,
148,286,292,832,208,52,
266,1088,272,68,1544,386,464,116,518,1868,752,188,134,278,314,734,
374,1328,332,428,
490,1840,460,16744,4186,1768,442,298,2110,1450,2434,1012,316,352,88,22,

3092,680,170,164,398,812,3098,1262,1256,314,218,182,374,446,1802,776,
194,230,380,2714,1118,6176,1544,386,284,596,212,140,290,320,80,20,
104,26,110,
466,514,2188,484,388,658,622,334,226,8236,88372,216514,137548,14740,7786,7048,
1762,1414,574,316,160,40,10,
-31996,-72010,-26902,-14878,-12070,-72388,-24760,-6190,668,272,68,512,128,32,8,2,
800,200,50,890,398,290,728,182,170,350,5264,1316,2018,2186,1484,380,
3968,992,248,62,542,998,476,530,2348,2258,112670,71954,137942,51830,19538,57752,
14438,5516,1136,284,218,
5992,1498,664,166,364,358,436,184,46,310,430,2806,1834,790,700,
688,172,304,76,5884,2968,742,1510,
872,218,242,194,176,44,3806,1844,440,110,320,80,20,7124,1958,3644,
4778,2390,
3178,982,472,118,148,598,328,82,562,1192,298,424,106,1102,1912,
478,316,226,2398,856,214,184,46,
308,1046,2822,1814,1550,686,362,1478,554,2126,902,878,434,506,2342,842,
1208,302,218,950,2018,2246,716,284,158,164,2090,5114,11090,6500,
214,1126,1450,592,148,808,202,286,424,106,268,502,1648,412,27424,6856,
1714,748,2098,892,514,298,
6632,1658,728,182,368,92,746,386,548,1046,854,1226,566,584,146,1772,
764,1196,602,332,
292,1096,274,2722,1798,2320,580,430,268,772,484,652,1192,298,1912,478,
286,214,
-7870,-6706,-3550,338,1166,16070,6134,2408,602,608,152,38,122,554,800,200,
50,1850,1310,896,224,56,14,908,278,212,242,716,1004,296,74,134,
158,1376,344,86,140,410,500,584,146,518,302,1040,260,662,356,824,
206,680,170,572,314,446,350,404,422,266,476,7484,2606,1490,2948,6170,
3740,33242,18968,4742,1886,
364,388,244,154,166,2416,604,622,14296,3574,1846,1090,496,124,958,2092,
1036,562,2080,520,130,226,298,220,4654,10972,6220,2020,1336,334,796,850,
26524,11704,2926,5548,3604,784,196,2884,940,1588,406,832,208,52,118,6598,
3982,3874,3196,2902,
194,182,1118,902,1280,320,80,20,650,374,1130,2588,860,1388,1766,1616,
404,248,62,308,698,968,242,200,50,128,32,8,2,110,28982,37568,
9392,2348,29306,
478,2224,556,214,190,988,358,244,520,130,280,70,136,34,550,316,
7144,1786,1936,484,1198,1414,640,160,40,10,502,298,442,370,1360,340,
586,604,1312,328,82,748,250,82450,237070,66868,422722,24779422,35283502,8373418,4710322,96710014,
62038126,14722498,13975732,4422592,1105648,276412,99460,72208,18052,
152,38,1106,1160,290,440,110,434,758,416,104,26,548,674,656,164,
182,1520,380,944,236,
1258,934,2086,3544,886,1276,526,574,562,322,232,58,1438,1906,826,1048,
262,3058,112,28,286,772,256,64,16,4,
788,260,2570,1076,314,230,410,266,212,152,38,302,
-2966,-8852,1822,796,262,316,172,13072,3268,1702,676,472,118,
37598,16274,212276,45104,11276,2228,1688,422,272,68,1532,2594,7832,1958,848,212,
344,86,146,914,4052,1424,356,1838,716,248,62,974,3296,824,206,
1144,286,784,196,2080,520,130,466,658,952,238,3052,178,250,208,52,
124,1360,340,5320,1330,574,1630,1918,1006,32212,6154,2422,1648,412,
1106,530,314,290,224,56,14,296,74,452,200,50,134,
2806,1168,292,2644,4246,1708,436,412,8320,2080,520,130,5722,3508,1276,382,
310,232,58,322,1348,
-15101950,-16125466,-7652398,-4304182,-2907388,-58615924,-8242660,-1545382,-7421692,-8459902,-10161586,-3810478,-2143102,-6804958,-2870506,-2723494,
-11629606,-33114694,-41909836,-44752366,-25172914,-9439726,-5309554,-1990966,-3187174,-19324522,-23213602,-8704984,-2176246,-1161190,-10045180,-36193990,
-45807070,-4236934,-5088262,-16297474,-6111436,-5799550,-26446810,-5578354,-2091766,-7838680,-1959670,-7057318,-67818010,-32186164,-5091430,-9664222,
-4076758,-3439210,-10578532,-1983358,-27121702,-77230858,-24435892,-1932598,-3914758,-53062966,-35856730,-6056668,-1703146,-1615414,-7757158,-14724940,
-2578486,-10448950,-25102858,-11307532,-8048632,-2012158,-3623158,-3655678,-28124284,-273938872,-68484718,-38522362,-10834210,-4062712,-1015678,-10366330,
-2915326,-7875796,-9457726,-8519878,-10782022,-13645048,-3411262,-2329510,-33569590,-47795836,-11341594,-21818812,-4602070,-3882442,-1637482,-3651916,
-120005092,-22500838,-30408628,-3206890,-3042796,-9064984,-2266246,-148916218,-41882482,-15705814,-13251226,-3144070,-2983582,-3159166,-4496422,-12801838,
-7200742,-23065240,-5766310,-105191464,-26297866,-9360130,-3509932,-1480198,5234,3236,1202,968,242,428,782,410,
2318,986,170,698,1832,458,5246,2084,878,446,284,1322,1670,674,620,554,
1022,500,
226,202,262,778,424,106,4540,1570,706,382,508,436,496,124,328,82,
148,
-1330,398,2900,662,668,7160,1790,2072,518,956,842,434,392,98,470,560,
140,8876,2792,698,380,722,410,272,68,794,416,104,26,128,32,8,
2,1262,2558,2720,680,170,182,
-13724,-8054,-29762,-11042,-4022,-13886,-7514,-10124,-8534,-9836,-13346,-4886,-17282,-6362,-12428,214,
268,484,784,196,352,88,22,232,58,4588,3124,1882,2152,538,1018,1186,
964,568,142,172,
2420,980,794,746,614,350,308,386,2312,578,9602,19808,4952,1238,584,146,
692,494,5390,2708,1604,1988,6410,16406,6272,1568,392,98,278,224,56,14,
440,110,5228,1100,326,242,3932,2906,1934,1250,2036,872,218,422,254,902,
458,926,470,296,74,632,158,6686,2090,1226,1412,3494,1430,656,164,638,
274,3616,904,226,382,8116,1642,736,184,46,610,1240,310,430,934,826,
3040,760,190,508,2068,700,1420,2218,952,238,772,1732,454,556,562,706,
868,922,466,
-13132,-14458,-8596,-22204,-4042,-17374,-6394,-9082,-5194,-9094,2678,174614,187736,46934,60386,22766,
7586,2966,5876,2192,548,224,56,14,248,62,338,242,212,158,392,98,
608,152,38,368,92,476,458,404,962,482,302,188,356,878,1112,278,
1124,332,716,464,116,782,2498,1058,518,662,2354,1004,2552,638,1754,12434,
4784,1196,1742,296,74,6548,6386,2516,566,11102,
47506,61114,150250,84820,24160,6040,1510,688,172,154,11512,2878,2548,1576,394,526,
3766,1534,4252,730,658,1822,1210,8140,1648,412,670,724,508,
-4282,-4012,-8158,2306,1604,758,428,2156,518,1118,542,326,13016,3254,1130,3764,
1436,392,98,362,248,62,146,1982,866,794,13646,5240,1310,614,704,176,
44,956,302,236,
-10088,-2522,-5876,-5714,-2906,-5300,-7172,-3194,-4418,124,694,10600,2650,844,
12058,4366,2764,3310,2170,826,448,112,28,316,802,424,106,1414,3448,862,
718,712,178,190,1180,640,160,40,10,4096,1024,256,64,16,4,
188,22094,19232,4808,1202,1604,974,1412,416,104,26,134,386,326,494,5462,
5672,1418,656,164,488,122,170,632,158,3032,758,1244,1298,998,872,218,
206,764,1520,380,1250,1082,530,674,4490,1808,452,1682,1160,290,
574,340,736,184,46,142,178,412,202,1096,274,466,664,166,610,
616,154,2398,1024,256,64,16,4,1636,772,1588,43432,10858,9754,333484,159604,259234,
69898,50620,9616,2404,988,310,562,628,1012,1654,1150,556,18484,561202,315988,133900,
19048,4762,27778,176020,42322,24118,6196,88324,20122,101662,38248,9562,19798,13210,40210,22930,
82222,30958,11734,18826,58012,11002,14938,30004,72502,23404,75202,22324,34378,23092,53332,20986,
27574,18646,43126,42856,10714,12442,28642,12730,79576,19894,36052,15802,24010,15682,36322,28690,
16450,37780,14170,28546,29842,17098,15034,22858,31786,27412,41764,12058,62296,15574,45070,17026,
31606,13786,49444,14218,21634,19030,20002,20020,20866,86704,21676,28750,10906,17674,84166,23890,
13750,24340,28276,29734,44908,28804,37390,14146,22966,30100,23830,

-75622,-70654,-121762,-90334,224,56,14,134,176,44,4028,2084,95882,54248,13562,4688,
1172,644,1292,368,92,152,38,140,320,80,20,374,266,464,116,386,
818,48956,12140,2402,2624,656,164,1814,806,428,206,278,230,212,5162,3218,
7988,2366,1454,1022,
922,472,118,382,784,196,418,634,364,532,226,676,316,
128,32,8,2,320,80,20,9020,3530,1940,1202,578,344,86,1676,
7562,8534,265466,215408,53852,15464,3866,1310,1256,314,668,506,428,716,2558,2648,
662,3206,11774,3848,962,488,122,
136,34,2836,1576,394,928,232,58,352,88,22,1900,484,736,184,46,
520,130,8998,3502,7156,2332,844,286,304,76,142,604,1648,412,550,334,
1006,1222,586,1702,766,1378,2782,
782,422,344,86,506,9584,2396,578,614,398,278,584,146,404,
134,326,3242,2108,524,668,254,224,56,14,
3976,994,502,11104,2776,694,3022,574,646,7882,7234,2842,26836,4000,1000,250,
1516,7396,6730,5182,3238,3346,1384,346,1942,3508,2092,2374,5938,2356,886,4036,
1030,4804,4210,1708,1978,2740,
5588,1178,572,860,2534,8366,17600,4400,1100,1040,260,1508,440,110,3020,
562,2614,964,598,766,418,3748,4558,1840,460,550,706,724,3100,712,178,
4270,1732,814,436,
-9592,-2398,-3310,284,938,2072,518,326,254,302,1010,1478,686,662,380,164,
1064,266,500,470,308,416,104,26,344,86,338,6662,2630,1118,2450,2120,
530,35336,8834,9320,2330,1640,410,560,140,158,
232,58,154,190,1810,1204,358,532,7390,26998,11770,4546,1510,1180,1126,964,
880,220,610,784,196,622,
548,236,1232,308,
238,1462,682,718,436,2758,1168,292,130588,18598,7108,3634,5686,2266,
20842,12058,9718,3778,6646,2626,2272,568,142,274,2284,562,1798,808,202,448,112,28,
4444,778,772,3742,3832,958,14434,12814,3838,2104,526,382,646,376,94,
194,446,302,248,62,158,152,38,1472,368,92,
6952,1738,15700,3802,1306,604,508,496,124,16132,3160,790,784,196,172,1522,
706,400,100,154,280,70,3010,1264,316,6628,1378,652,
1226,596,248,62,3008,752,188,236,1334,1568,392,98,266,
880,220,178,442,9568,2392,598,748,13942,7414,5572,3040,760,190,208,52,
1144,286,244,1384,346,5032,1258,1420,466,604,250,2278,32788,14482,8488,2122,
2440,610,29608,7402,5308,1132,
980,620,254,1838,758,422,296,74,386,362,548,1466,2108,944,236,182,
206,650,710,404,458,602,14058854,5272208,1318052,2678786,2260880,565220,538334,1165022,38388152,9597038,
2699408,674852,428174,730898,926162,990362,8605196,1613612,302690,25077608,6269402,2645300,628532,2170322,1392794,1886984,
471746,398690,1922462,811538,1028222,1133846,425330,2306888,576722,4166324,879230,1254212,942308,1134974,1820882,5837354,
3283856,820964,585956,
2284,988,1912,478,1060,148,166,3490,4786,1588,436,220,2032,508,3328,832,
208,52,502,628,256,64,16,4,
752,188,440,110,410,152,38,3002,1088,272,68,530,338,266,602,476,
482,320,80,20,872,218,368,92,374,
1138,1624,406,292,730,760,190,298,838,454,310,256,64,16,4,
398,290,536,134,284,194,25184,6296,1574,986,3728,932,614,482,608,152,
38,1310,632,158,200,50,380,212,758,830,452,500,1460,3242,3404,1892,
884,1418,2450,1730,5306,4448,1112,278,1082,5792,1448,362,974,506,1784,446,
308,5186,7310,2882,3998,1640,410,9560,2390,6764,1670,716,698,5348,1856,464,
116,2288,572,248,62,164,
5002,1654,2572,1756,1306,5752,1438,1162,574,676,268,784,196,178,208,52,
5914,3736,934,10342,7912,1978,1762,802,442,916,376,94,406,19414,43912,10978,
4258,1738,736,184,46,334,1594,1918,1432,358,808,202,304,76,1144,286,
514,
476,1988,5426,10448,2612,632,158,704,176,44,368,92,1214,1700,488,122,
188,1046,944,236,422,1016,254,890,
304,76,850,1222,1282,1078,2158,952,238,232,58,688,172,274,526,340,
1174,580,520,130,430,2968,742,5164,976,244,1996,4576,1144,286,250,
386,9554,8744,2186,1754,1346,3482,2318,1268,716,278,248,62,662,392,98,
1292,1916,1562,1238,608,152,38,158,296,74,
1504,376,94,1588,442,310,4504,1126,994,532,244,190,5260,1840,460,490,
328,82,856,214,1264,316,1372,262,508,5638,3532,1354,652,544,136,34,
604,940,868,706,364,2344,586,
356,212,284,29234,11108,2228,1640,410,1598,1262,950,43976,10994,4268,3056,764,
578,362,
754,5176,1294,610,934,496,124,1612,448,112,28,340,460,232,58,
9548,2546,1496,374,362,2366,1034,10466,6254,2492,614,740,578,692,1574,1196,
274,250,328,82,178,214,880,220,430,610,376,94,814,826,490,
1258,1744,436,1186,592,148,3616,904,226,232,58,4930,1996,5902,3688,922,970,
4282,1462,1156,364,
188,6188,6548,1376,344,86,842,464,116,170,212,2174,3956,890,482,
11732,2348,2444,1058,566,1796,512,128,32,8,2,260,296,74,176,44,1958,
1472,368,92,878,1232,308,206,
8086,21208,5302,2776,694,832,208,52,2236,568,142,202,2062,922,3712,928,
232,58,1282,9544,2386,1714,1336,334,274,526,346,
1388,410,4844,1058,1604,6626,6302,4952,1238,614,380,1118,4046,1400,350,
1928,482};

unsigned char cflag[4075+982+1]={
0, 0, 1, 2, 2, 2, 3, 3, 0, 0, 0, 1, 1, 0, 1, 1, 1, 2, 3, 4, 5,
6, 0, 1, 1, 2, 2, 2, 0, 0, 1, 1, 0, 1, 1, 2, 2, 3, 4, 4, 5, 6,
6, 6, 7, 8, 9, 9, 9, 9, 0, 0, 0, 1, 1, 1, 2, 0, 1, 1, 2, 2, 3,
3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 0, 1, 1, 1, 1, 0, 0,
1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2,
3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6,
0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 1, 2, 2,
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, 3, 3, 0, 0, 1, 1, 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, 1, 1, 2, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 2,
2,3,3,
0, 0, 0, 1, 1, 2, 2, 2, 3, 4, 4, 5, 6, 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, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,
1, 2, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 3, 3, 4, 4, 5, 5, 0, 0, 0, 0, 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, 0, 0, 0,
1, 1, 1, 1, 1, 2, 2, 2, 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, 0, 0, 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,
6, 6, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4,
4,0,1,2,3,4,5,5,5,6,7,7,7,8,8,9,10,11,11,12,13,
13,14,14,14,15,16,17,18,18,19,20,20,21,22,23,23,23,24,24,25,26,
27,28,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,0,0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2,
2, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 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,
1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 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, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1,
2, 2, 3, 4, 5, 6, 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, 2, 2,
2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 0, 0, 0, 0, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 1, 1, 1, 1, 2,
2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 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, 1, 1, 1,
0,0,0,0,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,1,1,1,2,2,3,3,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,0,0,
0,0,1,2,3,4,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,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,
1,1,2,2,3,3,4,4,5,5,6,6,7,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,
4,4,4,5,5,6,7,7,8,9,9,10,10,11,12,12,13,14,15,16,17,
0,0,0,0,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,1,1,1,1,1,1,2,2,2,2,2,2,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,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,
0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,3,3,3,3,4,
4,5,5,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,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,0,0,0,0,
0,0,0,0,0,1,1,2,0,0,0,0,0,1,1,1,1,1,2,2,2,
2,3,3,4,4,5,6,6,0,0,0,0,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,1,1,1,1,1,2,2,2,2,2,2,0,0,0,0,0,0,1,1,1,
1,2,2,2,3,3,4,4,5,5,5,6,7,7,8,9,10,11,12,13,14,
15,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,
3,3,4,4,4,5,5,6,6,6,6,6,6,6,6,6,6,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,
0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,3,3,3,4,
4,4,5,5,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,1,1,1,2,2,3,3,3,4,5,6,7,8,
9,10,11,12,13,14,15,0,0,0,0,0,0,0,0,0,1,1,1,1,1,
2,2,2,2,
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,1,1,1,1,1,1,1,2,2,2,2,
2,2,2,2,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,
3,3,4,4,4,4,5,5,5,5,5,5,5,5,5,5,6,6,6,0,0,
0,0,1,2,2,3,3,3,3,4,5,5,6,6,7,7,7,8,9,9,10,
10,10,11,11,12,12,12,13,13,13,13,13,14,14,15,16,17,17,18,19,20,
20,21,21,22,22,23,24,24,24,25,25,25,25,26,27,28,28,28,29,29,29,
30,30,31,31,32,32,32,33,34,34,34,34,35,36,36,37,38,38,39,39,40,
41,41,41,41,42,42,42,42,42,43,43,43,43,43,44,45,45,46,46,47,48,
48,49,49,50,50,50,51,52,52,52,53,54,54,55,56,57,57,58,58,58,58,
58,58,59,59,59,60,60,60,61,61,61,62,62,63,63,63,63,64,65,66,66,
66,66,67,67,68,68,69,70,70,70,71,72,72,73,73,74,74,75,76,77,77,
77,78,78,79,80,80,80,80,80,81,82,83,84,84,84,84,84,85,85,85,86,
86,86,87,87,88,88,89,89,89,90,90,90,91,91,92,92,93,94,94,94,95,
96,97,97,97,98,99,99,100,101,102,103,103,104,104,105,105,106,106,106,106,107,
108,108,108,109,109,110,110,111,112,112,113,114,114,115,116,116,117,117,118,118,118,
119,119,120,120,121,121,122,122,122,123,124,124,125,126,127,127,128,129,130,131,131,
132,132,133,133,134,134,134,134,134,134,134,134,134,134,135,135,135,135,135,135,135,
135,135,0,0,0,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,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,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,
1,2,2,2,3,3,3,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,1,1,1,1,1,1,1,
1,1,2,2,2,2,2,2,2,2,2,0,0,0,0,1,1,1,1,1,2,
2,2,2,2,2,3,3,3,3,4,4,4,5,5,6,6,6,7,0,0,0,
0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,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,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,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,2,2,2,3,3,3,3,3,
3,4,4,0,0,0,0,1,1,1,1,2,2,2,2,2,2,3,3,3,4,
4,4,4,5,5,5,6,6,6,6,7,7,7,8,8,8,9,9,9,10,10,
10,11,11,11,11,11,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,
18,19,0,0,0,0,1,1,2,2,2,3,3,4,4,5,5,5,6,6,7,
7,7,8,8,9,10,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,
2,2,2,2,2,3,3,4,4,5,5,6,6,6,6,7,7,8,8,8,9,
0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,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,1,1,1,1,1,1,1,1,1,1,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,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,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,1,1,2,2,
2,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,0,0,1,1,1,2,2,2,3,3,4,4,4,4,4,5,5,5,5,
5,5,5,6,6,6,6,6,6,6,6,6,6,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,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,
3,3,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,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,0,0,0,0,0,0,0,0,0,0,0,
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,4,4,4,4,4,5,5,5,5,5,5,
5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,
1,1,1,1,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,
1,1,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,1,1,1,1,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,1,1,1,1,1,2,2,2,2,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,1,1,1,1,1,
1,1,1,1,1,2,2,2,2,3,3,3,3,3,3,4,4,4,5,5,6,
6,6,7,7,7,7,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,
14,15,16,16,17,18,19,19,20,21,21,21,22,22,22,23,23,23,23,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,2,2,2,2,2,2,2,2,
2,2,2,3,3,3,3,3,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,2,2,2,2,
2,0,0,0,0,0,1,1,1,2,2,3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,4,4,4,5,5,5,6,6,7,7,7,8,8,9,9,
9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,
0,0,1,1,1,1,1,1,2,2,2,3,3,3,4,4,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,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,3,3,3,3,0,0,0,0,0,0,0,
0,0,0,0,0,1,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,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,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,6,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,
8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,
11,11,11,11,11,12,12,12,12,12,12,13,13,13,13,13,13,13,13,14,14,
14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,16,16,
16,16,16,16,16,16,16,17,17,17,17,17,17,17,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,0,0,1,1,1,2,2,3,4,4,5,5,6,6,
7,8,8,8,8,8,8,8,8,9,9,9,9,9,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,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,0,0,0,0,1,1,1,1,1,1,1,2,2,3,3,3,4,4,4,
5,5,6,6,7,7,7,7,8,8,8,9,10,11,12,12,0,1,1,2,2,
3,3,4,4,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,
7,8,8,9,9,9,10,10,10,11,11,12,12,12,12,12,12,13,13,14,14,
14,14,14,14,15,15,16,16,16,16,17,17,17,17,17,18,18,18,18,18,19,
19,20,20,20,20,20,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,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,0,0,1,2,2,3,4,5,6,7,7,7,7,
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
7,7,7,7,7,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,1,1,1,1,2,2,2,2,
2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,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,3,3,3,3,
3,3,4,4,4,4,4,4,5,5,5,5,5,6,6,6,7,7,7,7,8,
8,8,8,9,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,17,17,
18,18,19,20,20,21,21,22,23,23,24,24,25,25,26,26,27,27,28,28,29,
29,30,30,31,31,32,33,34,35,36,37,37,38,38,39,40,40,40,41,42,43,
44,45,46,46,47,48,49,
0,0,0,0,1,1,1,2,2,2,3,3,3,3,3,3,3,3,3,3,3,
4,4,4,5,5,5,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,0,0,0,0,1,1,2,2,2,3,3,
4,4,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,0,0,
0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,2,
2,2,2,2,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,1,1,1,1,1,1,1,1,1,1,0,0,
0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,3,3,3,3,3,
3,4,4,5,5,6,6,7,7,8,8,9,9,10,11,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,0,0,1,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,0,0,0,0,0,0,0,0,1,1,1,1,1,
1,1,1,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,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,
0,0,0,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,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,
2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,
5,5,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,
9,9,9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,1,1,1,1,
1,1,1,1,2,2,2,2,2,2,0,0,0,0,0,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,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,0,0,0,0,0,0,
0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,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,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,2,2,2,2,2,2,3,3,3,3,3,3,4,4,5,5,5,
6,6,6,6,6,6,6,6,6,7,7,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,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,
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,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,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,2,2,2,2,3,3,3,3,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,0,
0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,
255};

int cval[200]={1,5,7,11,13,17,19,23,25,29,31,35,37,41,43,47,49,53,55,59,61,
65,67,71,73,77,79,83,85,89,91,95,97,101,103,107,109,113,115,
119,121,125,127,131,133,137,139,143,145,149,151,155,157,161,
163,167,169,173,175,179,181,185,187,191,193,197,199,203,205,
209,211,215,217,221,223,227,229,233,235,239,241,245,247,251,
253,257,259,263,265,269,271,275,277,281,283,287,289,293,295,
299,301,305,307,311,313,317,319,323,325,329,331,335,337,341,
343,347,349,353,355,359,361,365,367,371,373,377,379,383,385,
389,391,395,397,401,403,407,409,413,415,419,421,425,427,431,
433,437,439,443,445,449,451,455,457,461,463,467,469,473,475,
479,481,485,487,491,493,497,499,503,505,509,511,515,517,521,
523,527,529,533,535,539,541,545,547,551,553,557,559,563,565,
569,571,575,577,581,583,587,589,593,595,599};

unsigned int size[200]={1,7,1,4,9,6,4,18,7,20,5,3,3,5,3,12,4,3,7,14,8,5,5,14,
15,13,20,7,13,3,10,17,10,
13,12,17,5,12,10,25,29,23,15,34,13,24,59,25,17,12,14,10,5,18,23,14,14,11,14,
15,34,16,11,15,52,25,6,
20,12,24,12,14,28,4,15,15,16,50,14,31,22,16,25,22,34,12,21,28,18,32,9,22,19,
28,25,25,13,9,23,18,23,23,36,298,56,18,15,10,9,23,20,26,28,9,29,36,27,31,62,
25,36,19,24,35,31,27,12,22,32,30,22,20,16,
35,23,53,23,18,23,30,22,20,18,69,52,35,57,21,26,12,13,31,30,13,21,146,17,
39,36,64,35,74,29,36,45,46,139,
52,13,38,39,24,38,15,20,42,22,4,47,11,28,13,38,67,24,25,15,70,49,24,31,26,
39,18,15,16,36,39,27,17};

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,
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,
0x02AB01AF,
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,
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,
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,
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,
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,
0x0A9806AF,
0x0A9B06B1,
0x0A9D06B2,
0x0AA006B4,
0x0AA306B6,
0x0AA606B8,
0x0AA806B9,
0x0AAB06BB,
0x0AAE06BD,
0x0AB006BE,
0x0AB306C0,
0x0AB606C2,
0x0AB906C4,
0x0ABB06C5,
0x0ABE06C7,
0x0AC106C9,
0x0AC306CA,
0x0AC606CC,
0x0AC906CE,
0x0ACB06CF,
0x0ACE06D1,
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,
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,
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,
0x10EF0AAF,
0x10F20AB1,
0x10F40AB2,
0x10F70AB4,
0x10FA0AB6,
0x10FD0AB8,
0x10FF0AB9,
0x11020ABB,
0x11050ABD,
0x11070ABE,
0x110A0AC0,
0x110D0AC2,
0x11100AC4,
0x11120AC5,
0x11150AC7,
0x11180AC9,
0x111A0ACA,
0x111D0ACC,
0x11200ACE,
0x11220ACF,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
0x1D9D12AF,
0x1DA012B1,
0x1DA212B2,
0x1DA512B4,
0x1DA812B6,
0x1DAB12B8,
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,
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,
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,
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,
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,
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,
0x2A4B1AAF,
0x2A4E1AB1,
0x2A501AB2,
0x2A531AB4,
0x2A561AB6,
0x2A591AB8,
0x2A5B1AB9,
0x2A5E1ABB,
0x2A611ABD,
0x2A631ABE,
0x2A661AC0,
0x2A691AC2,
0x2A6C1AC4,
0x2A6E1AC5,
0x2A711AC7,
0x2A741AC9,
0x2A761ACA,
0x2A791ACC,
0x2A7C1ACE,
0x2A7E1ACF,
0x2A9A1AE1,
0x2A9C1AE2,
0x2A9F1AE4,
0x2AA21AE6,
0x2AA41AE7,
0x2AA71AE9,
0x2AAA1AEB,
0x2AAF1AEE,
0x2AB21AF0,
0x2AB51AF2,
0x2AB71AF3,
0x2ABA1AF5,
0x2ABD1AF7,
0x2AC01AF9,
0x2AC21AFA,
0x2AC51AFC,
0x2AC81AFE,
0x2ACA1AFF,
0x2ACD1B01,
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,
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,
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,
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,
0x30A21EAF,
0x30A51EB1,
0x30A71EB2,
0x30AA1EB4,
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,
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,
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=6;	 // selects (l,m) value
unsigned int indmax=6;	 // 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 firstt,savcnt,savjump,jmphop,twojmp,tmpcnt,lasthop,glohop,glojmp;
unsigned int twojmp0,twojmp1,twojmp2,twojmp3,tmpjump,jmpsum,offset1,histoy[100];
unsigned int concov[27*3],histot[30],histou[30],offset4,histoa[30],histob[30];
unsigned int concove[27*3],patcnt,cyccntu,cyccntb,histor[100],equcnt,histoc[400];
unsigned int histod[400],offset6,histoe[100],sumtuc,maxtuc,mintuc,maxtu,mintu;
unsigned int lamcnt,lamcntc,onecnt,kl[50*2],klcount,kle[50*2],klecount;
unsigned int klp[50*2],klpcount,histof[100],ii,histodd[400];
int savec,ksave,savecp,ksavep,tsave,utemp,ttemp;
unsigned int outcnt[200],wrap,EM[4],EN[4],sv[2002],A[16],B[16],C[16],D[16],L[16],S[16],em;
unsigned int outkl[1000*2],outklind,cycsav[100*2],cycsavind;
double lambda,d,dmin,dmax,del,maxdel,mindel,sumrec,tempf,chain,rat,oldchn,bp,bm;
double ratdel,tempg,cap,cam,savchain,tmpchain,maxcmp,mean,std,var,maxminrat;
double minmaxrat,maxminratc,minmaxratc,maxdiff;
unsigned int flubs,flubx,pcount,chhist[40],jj,onehist[40],d2hist[40];
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],d3hist[40],histoo[200];
FILE *Outfp;
Outfp = fopen("out0ce.dat","w");
flubs=0;
flubx=0;
maxdiff=0;
pcount=0;
em=16;	// number of words
for (i=0; i<40; i++) {
chhist[i]=0;
onehist[i]=0;
}
for (i=0; i<40; i++) {
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];
if (eowrite==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;
histoh[i]=0;
histoi[i]=0;
histox[i]=0;
histoy[i]=0;
histoz[i]=0;
histow[i]=0;
histov[i]=0;
histos[i]=0;
histor[i]=0;
histoe[i]=0;
histof[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++) {
histot[i]=0;
histou[i]=0;
histoa[i]=0;
histob[i]=0;
}
for (i=0; i<400; i++) {
histoc[i]=0;
histod[i]=0;
histodd[i]=0;
}
for (i=0; i<200; i++) {
outcnt[i]=0;
histoo[i]=0;
}
for (i=0; i<1000; i++) {
outkl[2*i]=0;
outkl[2*i+1]=0;
}
outklind=0;
onecnt=0;
compcnt=0;
cyccntu=0;
cyccntb=0;
equcnt=0;
maxcmp=0.0;
primary=0;
offset=20;
offset1=30;
offset2=50;
offset4=15;
offset5=20;
offset6=100;
index=0;
maxdel=-1000000.0;
mindel=1000000.0;
rat=log(3.0)/log(2.0);
ratdel=rat/(rat-1.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;
twojmp=0;
twojmp0=0;
twojmp1=0;
twojmp2=0;
twojmp3=0;
jmphop=0;
glohop=0;
glojmp=0;
for (h=0; h<200; h++) {
c=cval[h];
// if (c>100)
//    break;
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;
lalat=1000000000;
firstt=1;
oldchn=1000000000.0;
oldu=0;
jsum=0;
evensum=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
}
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;
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 points \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);
tmpchain=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);
}
}
if (chain<(double)oldt) {
if ((wflag!=2)&&(eowrite==0)) {
printf("chain=%e, oldt=%d, t=%d, jump=%d, count=%d, s=%d \n",chain,oldt,t,jump,jmpcnt,s[i]);
fprintf(Outfp,"chain=%e, oldt=%d, t=%d, jump=%d, count=%d, s=%d \n",chain,oldt,t,jump,jmpcnt,s[i]);
}
}
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 (tmpchain<(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;
}
if (wflag==4) {
if (tmpchain>(double)lalat) {
printf("warning: chain=%e, t=%d, last t=%d, last last t=%d \n",chain,t,lastt,lalat);
fprintf(Outfp,"warning: chain=%e, t=%d, last t=%d, last last t=%d \n",chain,t,lastt,lalat);
}
}
}
if (lastt!=0)
lalat=lastt;
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, g=%d, d=%d \n",c,s[i],order,t,u,evens,odds,levens,lodds,jump,m,lcount,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, g=%d, d=%d \n",c,s[i],order,t,u,evens,odds,levens,lodds,jump,m,lcount,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 ((4*s[i])!=olds) {
delta=(int)m-lcount;
delta=delta+offset4;
if (delta<0) {
printf("array not big enough \n");
goto zskip;
}
if (delta>29) {
printf("array not big enough \n");
goto zskip;
}
histot[delta]=histot[delta]+1;
}
}
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, evens, and m values
//
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("chain=%e, u=%d, old u=%d, jump=%d, s=%d \n",oldchn,u,oldu,jump,s[i]);
fprintf(Outfp,"chain=%e, u=%d, old u=%d, jump=%d, s=%d \n",oldchn,u,oldu,jump,s[i]);
}
}
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+(int)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;
if ((unsigned int)k>maxt)
maxt=k;
if ((unsigned int)k<mint)
mint=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;
if ((unsigned int)k>maxu)
maxu=k;
if ((unsigned int)k<minu)
minu=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 (associated cycles [old definition])
//
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 (associated cycles [old definition])
//
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 (associated cycles [old definition])
//
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+0
//
if (total>3) {
d=log(3)/log(2);
d=exp((double)(total*4+0)*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;
}
}
if (total>1) {
d=log(3)/log(2);
d=exp((double)(total+1)*log(d));
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) {
d=log(3)/log(2);
d=exp((double)(total+1)*log(d));
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) {
d=log(3)/log(2);
d=exp((double)(total+1)*log(d));
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+1)*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;
}
if (total>1) {
d=log(3)/log(2);
d=exp((double)(total+1)*log(d));
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) {
d=log(3)/log(2);
d=exp((double)(total+1)*log(d));
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) {
d=log(3)/log(2);
d=exp((double)(total+1)*log(d));
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;
if (total==1)
onehist[jj+21-total*2]=onehist[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;
}
//
//  c/X0 > 2^((K+L)/K)-3
//
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);
}
}
//
//  |1-c/X0| > 2^((K+L)/k)-3 (parity vector p, continued-fraction conv., etc.
//
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);
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);
}
else
onecnt=onecnt+1;
}
//
//  compute domain
//
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);
}
//
//  domain for funky average (useless??)
//
lambda=(double)sumtuc/(double)(total*2);
d=(double)maxtuc*(double)mintuc/lambda/lambda;
if (d>1.0) {
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;
//
//  3*sum(1/|u|+1/|t|) > |del|
//
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, jmpsum=%d \n",c,levens,lodds,sumrec,tempf,oddsum,evensum,jsum,hcount,jmpsum);
fprintf(Outfp,"c=%d, e=%d, o=%d, sum=%e, tempf=%e, osum=%d, esum=%d, jsum=%d, hsum=%d, jmpsum=%d \n",c,levens,lodds,sumrec,tempf,oddsum,evensum,jsum,hcount,jmpsum);
}
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]);
}
}
oldt=0;
lastt=0;
lalat=1000000000;
firstt=1;
oldchn=1000000000.0;
oldu=0;
//
//  histogram h
//
delta=oddsum-jmpsum+hcount-evensum+offset1;
if (delta<0) {
printf("error: offset not big enough, delta=%d \n",delta);
goto zskip;
}
if (delta>99) {
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,evensum);
}
}
//
//  histogram w
//
delta=hcount-jmpsum+offset;
if (delta<0) {
printf("error: offset not big enough, delta=%d \n",delta);
goto zskip;
}
if (delta>99) {
printf("error: histogram array not big enough \n");
goto zskip;
}
histow[delta]=histow[delta]+1;
//
//  histogram v
//
delta=jsum-evensum+offset2;
if (delta<0) {
printf("error: offset not big enough, jsum=%d, delta=%d \n",jsum,delta);
goto zskip;
}
if (delta>99) {
printf("error: histogram array not big enough \n");
goto zskip;
}
histov[delta]=histov[delta]+1;
//
//  histogram u
//
for (tempi=0; tempi<27; tempi++) {
if ((conv[2*tempi]==(levens+lodds))&&(conv[2*tempi+1]==lodds)) {
delta=jsum-evensum+offset4;
if (delta<0) {
printf("array not big enough \n");
goto zskip;
}
if (delta>29) {
printf("array not big enough \n");
goto zskip;
}
histou[delta]=histou[delta]+1;
cyccntu=cyccntu+1;
if (((3.0*log(c))<patcnt)&&(c!=1)) {
printf("not enough attachment points, c=%d, count=%d \n",c,attcnt);
goto zskip;
}
}
if (conv[2*tempi+1]>lodds)
break;
}
//
//  histogram b
//
for (tempi=0; tempi<27; tempi++) {
if ((conv[2*tempi+1]==levens)&&(conv[2*tempi+1]==lodds)) {
delta=jsum-evensum;
delta=delta+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,attcnt);
goto zskip;
}
}
if (conv[2*tempi+1]>lodds)
break;
}
//
// histogram s
//
delta=oddsum-evensum+offset1;
if (delta<0) {
printf("error: offset not big enough, jsum=%d, delta=%d \n",jsum,delta);
goto zskip;
}
if (delta>99) {
printf("error: histogram array not big enough \n");
goto zskip;
}
histos[delta]=histos[delta]+1;
if (levens==lodds)
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;
j=(unsigned int)(tempf*10.0);
histoc[j]=histoc[j]+1;
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;
}
}
//
// compare cycle hop counts
//
if (hcount!=hsum) {
printf("error: 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;
jmpsum=0;
jsum=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)) {
goto zskip;
}
goto vskip;
}
}
printf("error: no match \n");
goto zskip;
}
vskip:
//
//  check number of primary attachment points
//
if (((3.0*log(c))<patcnt)&&(c!=1)) {
if (wflag==0) {
printf("too few primary attachment points, c=%d, count=%d \n",c,patcnt);
fprintf(Outfp,"too few primary 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==481)&&(levens==12)&&(lodds==18))  // temporary!!!
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;   // d^a-1
tempg=(double)a/tempf; 	      // a/(d^a-1)
tempg=ratdel-tempg;		      // d/(d-1) - a/(d^a-1)
cap=exp(tempg*log(bp));	      // ca=b^(d/d-1) - a/(d^a-1))
cam=exp(tempg*log(bm));
cap=3.0*(double)c*(double)a*cap;     // 3*c*a*ca
cam=3.0*(double)c*(double)a*cam;
tempg=(rat-1.0)/tempf; 	      // (d-1)/(d^a-1)
tempg=-tempg*(double)lodds;	      // -(d-1)/(d^a-1)*K
tempg=exp(tempg*log(2.0));	      // 2^(-(d-1)/(d^a-1)*K)
cap=cap*tempg; 		      // 3*c*a*ca*2^(-(d-1)/(d^a-1)*K)
cam=cam*tempg;
tempf=(double)(levens+lodds)*log(2)-(double)lodds*log(3);
if (tempf<0.0)
tempf=-tempf;
//	 for (g=0; g<5000; g++) {
//	    if (((levens+lodds)==(ln[g]>>16))&&(lodds==(ln[g]&0xffff))) {
//	       if ((tempf<cam)&&(a!=1)) {
//		  printf("Kilroy was here!  tempf=%e, cam=%e, c=%d, a=%d, min=%d, e=%d, o=%d \n",tempf,cam,c,a,glomin,levens,lodds);
//		  goto zskip;
//		  }
//	       }
//	    if (lodds<(ln[g]&0xffff))
//	       break;
//	    }
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);
}
}
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;
utemp=k;
}
lastodd=delta;
k=3*k+c;
}
if (lastodd!=locmax) {
k=utemp;
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) {
k=usave;	     // new!!!
if (k<0)
k=-k;
//			if ((ttemp>locmax)&&(locmax!=k)) {	  // new!!!
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;
}
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;
}
k=usave;
if (k<0)
k=-k;
//	    if ((ttemp<locmax)&&(locmax!=k)) {	      // new!!!
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;
}
wskip:	    delta=0;
}
else {  // new!!!
k=usave;
if (k<0)
k=-k;
//	    if ((ttemp<locmax)&&(locmax!=k)) {
//	    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;
//	       }
}
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)
flag=flag-1;
else
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)
flag=flag-1;
else
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)
flag=flag-1;
else
break;
}
if (flag==0)
goto nskip;
first=0;
for (i=0; i<=(int)flag; i++) {
if ((newhis[i]==0)&&(first==0))
continue;
first=1;
printf("i=%d, h[i]=%d \n",i-offset,newhis[i]);
fprintf(Outfp,"i=%d, h[i]=%d \n",i-offset,newhis[i]);
}
//
// output histogram of k values (for primary one-jump attachment points)
//
nskip:
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)
flag=flag-1;
else
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)
flag=flag-1;
else
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 odds minus jumps plus hops minus evens
//
printf("sum of odds minus number of jumps plus number of hops minus sum of evens (global) \n");
fprintf(Outfp,"sum of odds minus number of jumps plus number of hops minus sum of evens (global, histoh) \n");
flag=99;
for (i=99; i>0; i--) {
if (histoh[i]==0)
flag=flag-1;
else
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 odds minus jumps plus hops minus evens
//
printf("number of odds minus number of jumps plus number of hops minus number of evens (local) \n");
fprintf(Outfp,"number of odds minus number of jumps plus number of hops minus number of evens (local, histoi) \n");
flag=99;
for (i=99; i>0; i--) {
if (histoi[i]==0)
flag=flag-1;
else
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 minus number of jumps
//
printf("j minus number of evens plus number of hops minus number of jumps (local) \n");
fprintf(Outfp,"j minus number of evens plus number of hops minus number of jumps (local, histox) \n");
flag=99;
for (i=99; i>0; i--) {
if (histox[i]==0)
flag=flag-1;
else
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)
flag=flag-1;
else
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);
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of j minus number of evens (global)
//
printf("j minus number of evens (global) \n");
fprintf(Outfp,"j minus number of evens (global, histov) \n");
flag=99;
for (i=99; i>0; i--) {
if (histov[i]==0)
flag=flag-1;
else
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]);
}
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of number of hops minus number of jumps (local)
//
printf("number of hops minus number of jumps (local) \n");
fprintf(Outfp,"number of hops minus number of jumps (local, histoz) \n");
flag=99;
for (i=99; i>0; i--) {
if (histoz[i]==0)
flag=flag-1;
else
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]);
}
printf("\n");
fprintf(Outfp,"\n");
//
// output histogram of number of hops minus number of jumps (global)
//
printf("number of hops minus number of jumps (global) \n");
fprintf(Outfp,"number of hops minus number of jumps (global, histow) \n");
flag=99;
for (i=99; i>0; i--) {
if (histow[i]==0)
flag=flag-1;
else
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-offset,histow[i]);
printf("i=%d, h[i]=%d \n",i-offset,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=99;
for (i=99; i>0; i--) {
if (histos[i]==0)
flag=flag-1;
else
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]);
}
//
// output histogram of odds minus evens (global) (L=K)
//
printf("\n");
fprintf(Outfp,"\n");
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=99;
for (i=99; i>0; i--) {
if (histof[i]==0)
flag=flag-1;
else
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]);
}
//
// output histogram of odds minus evens (local)
//
printf("\n");
fprintf(Outfp,"\n");
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)
flag=flag-1;
else
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) \n");
fprintf(Outfp,"j minus evens (convergents, local, histot) \n");
flag=29;
for (i=29; i>0; i--) {
if (histot[i]==0)
flag=flag-1;
else
break;
}
sum=0;
tempi=0;
first=0;
for (i=0; i<=(int)flag; i++) {
if ((histot[i]==0)&&(first==0))
continue;
first=1;
fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset4,histot[i]);
printf("i=%d, h[i]=%d \n",i-offset4,histot[i]);
sum=sum+histot[i]*(i-offset4);
tempi=tempi+histot[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, global) \n");
fprintf(Outfp,"j minus evens (convergents, global, histou) \n");
flag=29;
for (i=29; i>0; i--) {
if (histou[i]==0)
flag=flag-1;
else
break;
}
first=0;
for (i=0; i<=(int)flag; i++) {
if ((histou[i]==0)&&(first==0))
continue;
first=1;
fprintf(Outfp,"i=%d, h[i]=%d, \n",i-offset4,histou[i]);
printf("i=%d, h[i]=%d \n",i-offset4,histou[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("residue \n");
fprintf(Outfp,"residue \n"                                                      );
flag=399;
for (i=399; i>0; i--) {
if (histoc[i]==0)
flag=flag-1;
else
break;
}
first=0;
for (i=0; i<=(int)flag; i++) {
if ((histoc[i]==0)&&(first==0))
continue;
first=1;
fprintf(Outfp,"i=%d, h[i]=%d, \n",i,histoc[i]);
printf("i=%d, h[i]=%d \n",i,histoc[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("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, c=%d, k=%d \n",maxminrat,minmaxrat,lamcnt,savec,ksave,savecp,ksavep);
fprintf(Outfp,"maximum ratio=%e, minimum ratio=%e, count=%d, c=%d, k=%d, c=%d, k=%d \n",maxminrat,minmaxrat,lamcnt,savec,ksave,savecp,ksavep);
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");
for (i=0; i<40; i++) {
printf("i=%d, count=%d \n",i,onehist[i]);
fprintf(Outfp,"i=%d, count=%d \n",i,onehist[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");
printf("count=%d \n",onecnt);
fprintf(Outfp,"count=%d \n",onecnt);
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 \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 \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);
}
```