/* this has a lot of declaration for lookup tables in addition
to definition. To be used only once (in fun7.c) because of the
declarations */
#define INT32  int
#define UINT32 unsigned int
#define UINT16 unsigned short int
#define CTM_STAT_SERVO	0x8000
#define CTM_STAT_SETRST	0x2000
#define CTM_STAT_AUTO	0x1000
#define CTM_STAT_ERROR	0x0800
#define CTM_STAT_SOFT_LIMITS	0x0700
#define CTM_STAT_HARD_LIMITS	0x00E0
#define	CT_OUT_OF_RANGE	0x0004
#define	CT_SAT_RANGE	0x0008
 INT32  ring_lo[13] = {9, 11, 1, 0, 2, 4, 3, 5, 7, 6, 8, 10, 12};
 INT32  ring_hi[13] = {3, 2, 4, 6, 5, 7, 9, 8, 10, 0, 11, 1, 12}; 
 INT32  X_coord[13] = {-1, -3, -2, 0, 0, 2, 1, 3, 2, 0, 0, -2, 0};
 /* change sign of all y's, 3/20/2002 */
 INT32  Y_coord[13] = {0, 0, -2, -1, -3, -2, 0, 0, 2, 1, 3, 2, 0};
 //INT32  Y_coord[13] = {0, 0, 2, 1, 3, 2, 0, 0, -2, -1, -3, -2, 0};

/* the various design matrices used, some history here and possible
fallbacks */
//  INT32  fit_matrix_0[5*5*13] = {
//   -8675, -2015, -2644, -217, 479, 1619, 9820, 2799, 1619, -217, 479, -2644, -403,
//   0, 0, 1197, 8083, 4041, 1197, 0, 0, -1197, -8083, -4041, -1197, 0,
//   -3581, 4015, -32, -1860, -46, 601, 2454, 1159, 601, -1860, -46, -32, -1372,
//   0, 0, -5089, 3143, 1571, 1160, 0, 0, -1160, -3143, -1571, 5089, 0,
//   -2494, -1123, 1444, -650, 2099, 245, -1147, 26, 245, -650, 2099, 1444, -1537,
// 
//   -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0, 0, -1197, 0,
//   217, -479, 2644, 8675, 2015, 2644, 217, -479, -1619, -9820, -2799, -1619, 403,
//   -650, 2099, 1444, -2494, -1123, 1444, -650, 2099, 245, -1147, 26, 245, -1537,
//   3143, 1571, -5089, 0, 0, 5089, -3143, -1571, -1160, 0, 0, 1160, 0,
//   -1860, -46, -32, -3581, 4015, -32, -1860, -46, 601, 2454, 1159, 601, -1372,
// 
//   -9820, -2799, -1619, 217, -479, 2644, 8675, 2015, 2644, 217, -479, -1619, 403,
//   0, 0, 1197, 8083, 4041, 1197, 0, 0, -1197, -8083, -4041, -1197, 0,
//   2454, 1159, 601, -1860, -46, -32, -3581, 4015, -32, -1860, -46, 601, -1372,
//   0, 0, -1160, -3143, -1571, 5089, 0, 0, -5089, 3143, 1571, 1160, 0,
//   -1147, 26, 245, -650, 2099, 1444, -2494, -1123, 1444, -650, 2099, 245, -1537,
// 
//   -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0, 0, -1197, 0,
//   -217, 479, 1619, 9820, 2799, 1619, -217, 479, -2644, -8675, -2015, -2644, -403,
//   -650, 2099, 245, -1147, 26, 245, -650, 2099, 1444, -2494, -1123, 1444, -1537,
//   -3143, -1571, -1160, 0, 0, 1160, 3143, 1571, -5089, 0, 0, 5089, 0,
//   -1860, -46, 601, 2454, 1159, 601, -1860, -46, -32, -3581, 4015, -32, -1372,
// 
//   -6521, -3260, -2173, 0, 0, 2173, 6521, 3260, 2173, 0, 0, -2173, 0,
//   0, 0, 2173, 6521, 3260, 2173, 0, 0, -2173, -6521, -3260, -2173, 0,
//   -579, 2179, 745, -2303, -406, 745, -579, 2179, 745, -2303, -406, 745, -762,
//   0, 0, -3125, 0, 0, 3125, 0, 0, -3125, 0, 0, 3125, 0,
//   -2303, -406, 745, -579, 2179, 745, -2303, -406, 745, -579, 2179, 745, -762
//   };
 /* change the weights to match the change in sign for y's */
 INT32  fit_matrix_0[5*5*13] = {
  -8675, -2015, -2644, -217, 479, 1619, 9820, 2799, 1619, -217, 479, -2644, -403,
 0, 0, -1197, -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0,
 -3581, 4015, -32, -1860, -46, 601, 2454, 1159, 601, -1860, -46, -32, -1372,
 0, 0, 5089, -3143, -1571, -1160, 0, 0, 1160, 3143, 1571, -5089, 0,
 -2494, -1123, 1444, -650, 2099, 245, -1147, 26, 245, -650, 2099, 1444, -1537,

 -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0, 0, -1197, 0,
 -217, 479, -2644, -8675, -2015, -2644, -217, 479, 1619, 9820, 2799, 1619, -403,
 -650, 2099, 1444, -2494, -1123, 1444, -650, 2099, 245, -1147, 26, 245, -1537,
 -3143, -1571, 5089, 0, 0, -5089, 3143, 1571, 1160, 0, 0, -1160, 0,
 -1860, -46, -32, -3581, 4015, -32, -1860, -46, 601, 2454, 1159, 601, -1372,

 -9820, -2799, -1619, 217, -479, 2644, 8675, 2015, 2644, 217, -479, -1619, 403,
 0, 0, -1197, -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0,
 2454, 1159, 601, -1860, -46, -32, -3581, 4015, -32, -1860, -46, 601, -1372,
 0, 0, 1160, 3143, 1571, -5089, 0, 0, 5089, -3143, -1571, -1160, 0,
 -1147, 26, 245, -650, 2099, 1444, -2494, -1123, 1444, -650, 2099, 245, -1537,

 -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0, 0, -1197, 0,
 217, -479, -1619, -9820, -2799, -1619, 217, -479, 2644, 8675, 2015, 2644, 403,
 -650, 2099, 245, -1147, 26, 245, -650, 2099, 1444, -2494, -1123, 1444, -1537,
 3143, 1571, 1160, 0, 0, -1160, -3143, -1571, 5089, 0, 0, -5089, 0,
 -1860, -46, 601, 2454, 1159, 601, -1860, -46, -32, -3581, 4015, -32, -1372,

 -6521, -3260, -2173, 0, 0, 2173, 6521, 3260, 2173, 0, 0, -2173, 0,
 0, 0, -2173, -6521, -3260, -2173, 0, 0, 2173, 6521, 3260, 2173, 0,
 -579, 2179, 745, -2303, -406, 745, -579, 2179, 745, -2303, -406, 745, -762,
 0, 0, 3125, 0, 0, -3125, 0, 0, 3125, 0, 0, -3125, 0,
 -2303, -406, 745, -579, 2179, 745, -2303, -406, 745, -579, 2179, 745, -762,
  };
 INT32  fit_matrix_1[5*5*13] = {
 -9710, -4224, -703, -136, -206, 1273, 10790, 2972, 1976, -1261, -769, 0, 0,
 410, 1008, -2076, -8176, -3725, -1039, -476, -77, 1036, 8502, 4613, 0, 0,
 -4032, 4054, -3, -2276, -14, 605, 2189, 1168, 608, -2282, -17, 0, 0,
 -1743, -4288, 8823, -2751, -2915, -1832, 2025, 329, 1844, 1365, -857, 0, 0,
 -2492, 166, 390, -1230, 2525, 445, -2033, -59, 54, -605, 2838, 0, 0,

 -9057, -4782, -602, 966, -203, 613, 8996, 4244, 1216, -1058, -331, 0, 0,
 978, 1493, -3444, -10114, -1726, -1848, -1575, 216, 1596, 11173, 3251, 0, 0,
 -912, 2294, 1341, -3197, -1026, 1588, -1309, 2095, 247, -1227, 105, 0, 0,
 -4087, -2289, 5666, 936, -196, -5655, 4027, 1767, 1178, -1025, -321, 0, 0,
 -1784, 364, -314, -4517, 4167, 283, -2740, -113, 597, 2721, 1335, 0, 0,

 -11173, -3251, -1596, 1575, -216, 1848, 10114, 1726, 3444, -978, -1493, 0, 0,
 1058, 331, -1216, -8996, -4244, -613, -966, 203, 602, 9057, 4782, 0, 0,
 2721, 1335, 597, -2740, -113, 283, -4517, 4167, -314, -1784, 364, 0, 0,
 -1025, -321, 1178, 4027, 1767, -5655, 936, -196, 5666, -4087, -2289, 0, 0,
 -1227, 105, 247, -1309, 2095, 1588, -3197, -1026, 1341, -912, 2294, 0, 0,

 -8502, -4613, -1036, 476, 77, 1039, 8176, 3725, 2076, -410, -1008, 0, 0,
 1261, 769, -1976, -10790, -2972, -1273, 136, 206, 703, 9710, 4224, 0, 0,
 -605, 2838, 54, -2033, -59, 445, -1230, 2525, 390, -2492, 166, 0, 0,
 1365, -857, 1844, 2025, 329, -1832, -2751, -2915, 8823, -1743, -4288, 0, 0,
 -2282, -17, 608, 2189, 1168, 605, -2276, -14, -3, -4032, 4054, 0, 0,

 -7817, -4442, -1516, 1130, 31, 1314, 7652, 3292, 2831, -1295, -1181, 0, 0,
 1295, 1181, -2831, -7652, -3292, -1314, -1130, -31, 1516, 7817, 4442, 0, 0,
 -345, 2605, 526, -2911, -401, 1053, -1187, 2184, 526, -2069, 19, 0, 0,
 -1862, -1698, 4070, 1625, 44, -4359, 1625, 44, 4070, -1862, -1698, 0, 0,
 -2069, 19, 526, -1187, 2184, 1053, -2911, -401, 526, -345, 2605, 0, 0
 };
 INT32  fit_matrix_2[5*5*13] = {
 -9383, -4359, -520, 1143, -841, 1236, 11395, 3037, 1757, -3463, 0, 0, 0,
 -1546, 1818, -3169, -15851, 78, -819, -4102, -462, 2349, 21705, 0, 0, 0,
 -4025, 4051, 0, -2248, -28, 604, 2203, 1169, 604, -2331, 0, 0, 0,
 -1380, -4438, 9026, -1325, -3622, -1872, 2698, 401, 1600, -1087, 0, 0, 0,
 -3695, 664, -281, -5952, 4865, 580, -4263, -295, 862, 7517, 0, 0, 0,

 -9079, -4856, -442, 1600, -557, 657, 9159, 4262, 1100, -1844, 0, 0, 0,
 1194, 2215, -5009, -16323, 1744, -2280, -3171, 31, 2729, 18870, 0, 0, 0,
 -905, 2317, 1290, -3398, -913, 1574, -1360, 2089, 284, -977, 0, 0, 0,
 -4108, -2360, 5820, 1550, -540, -5612, 4185, 1786, 1066, -1786, 0, 0, 0,
 -1695, 661, -957, -7068, 5593, 105, -3395, -189, 1062, 5882, 0, 0, 0,

 -11335, -3395, -1448, 3704, -660, 788, 11501, 2676, 2236, -4068, 0, 0, 0,
 1575, 794, -1690, -15817, -2821, 2781, -5409, -2840, 4472, 18955, 0, 0, 0,
 2760, 1370, 561, -3260, -5, 542, -4856, 3935, -19, -1029, 0, 0, 0,
 -1272, -542, 1405, 7292, 1086, -7280, 3063, 1260, 3813, -8825, 0, 0, 0,
 -979, 327, 20, -4580, 2778, 3217, -5329, -2486, 3197, 3834, 0, 0, 0,

 -7936, -4781, -858, 1275, -342, 624, 9691, 4031, 1482, -3186, 0, 0, 0,
 -1106, 1474, -2721, -14137, -1213, 465, -6206, -1075, 3187, 21334, 0, 0, 0,
 -698, 2865, 25, -2164, 10, 513, -1480, 2475, 488, -2034, 0, 0, 0,
 3769, -1572, 2600, 5422, -1455, -3597, 3686, -1614, 6301, -13541, 0, 0, 0,
 -4555, 659, -106, -1021, 2856, 2274, -8363, -1245, 2380, 7121, 0, 0, 0,

 -7739, -4633, -1177, 2686, -678, 935, 8879, 3675, 2113, -4060, 0, 0, 0,
 1002, 1900, -4104, -13499, -623, 112, -5744, -1473, 4216, 18212, 0, 0, 0,
 -346, 2608, 520, -2936, -390, 1059, -1207, 2178, 538, -2024, 0, 0, 0,
 -1750, -1973, 4557, 3861, -975, -4905, 3389, 596, 3037, -5837, 0, 0, 0,
 -2240, 440, -220, -4616, 3749, 1889, -5617, -1247, 2110, 5751, 0, 0, 0,
 };
 INT32  fit_matrix_3[5*5*13] = {
 -9516, -2791, -1725, -319, 158, 1502, 10337, 2953, 1798, -1174, -268, -953, 0,
 350, 565, -1759, -8119, -3838, -1110, -336, -71, 1091, 8475, 4458, 294, 0,
 -4092, 3610, 313, -2220, -127, 534, 2330, 1174, 664, -2309, -172, 295, 0,
 -1171, -57, 5805, -3291, -1837, -1155, 687, 271, 1318, 1623, 620, -2812, 0,
 -2639, -918, 1164, -1091, 2248, 271, -1689, -44, 189, -671, 2459, 721, 0,

 -8515, -4256, -896, 365, -163, 1050, 8369, 4185, 1184, -640, -175, -508, 0,
 408, 940, -3136, -9482, -1768, -2307, -916, 277, 1629, 10734, 3087, 534, 0,
 -1080, 2131, 1431, -3011, -1038, 1453, -1115, 2114, 257, -1356, 57, 157, 0,
 -3562, -1779, 5381, 353, -157, -5232, 3420, 1711, 1147, -620, -170, -492, 0,
 -2003, 151, -195, -4274, 4151, 106, -2486, -90, 610, 2552, 1272, 205, 0,

 -10074, -2873, -1573, 624, -407, 2394, 8954, 2159, 2806, -345, -891, -774, 0,
 438, 118, -1228, -8459, -4136, -921, -312, -41, 962, 8700, 4443, 436, 0,
 2269, 1179, 588, -2349, -35, 58, -4040, 3989, -52, -2044, 117, 318, 0,
 -367, -95, 1191, 3458, 1653, -5329, 242, 62, 5284, -3708, -1930, -462, 0,
 -1363, 58, 244, -1191, 2119, 1521, -3054, -1079, 1420, -991, 2219, 95, 0,

 -8256, -4073, -1147, 55, 25, 1178, 8021, 4065, 1413, -306, -369, -608, 0,
 809, -223, -1772, -10016, -2877, -1529, 420, -418, 1921, 9518, 3049, 1118, 0,
 -1004, 1962, 234, -1350, 24, 219, -980, 1974, 1464, -2661, -870, 986, 0,
 2411, 1438, 1373, 236, 108, -1239, -3407, -1470, 6007, -1300, -1570, -2586, 0,
 -2300, -57, 617, 2221, 1171, 595, -2265, -39, 45, -4040, 4006, 45, 0,

 -6984, -3432, -1918, 186, -28, 1996, 6752, 3435, 2338, -781, -512, -1050, 0,
 594, 331, -2493, -6857, -3241, -1888, -372, -151, 1931, 7384, 3879, 884, 0,
 -764, 2096, 728, -2435, -371, 709, -733, 2112, 774, -2328, -318, 529, 0,
 -665, -247, 3492, 267, -41, -3380, 331, 250, 3361, -1122, -736, -1510, 0,
 -2314, -278, 644, -908, 2201, 852, -2646, -444, 671, -496, 2408, 309, 0,
 };
 INT32  fit_matrix_4[5*5*13] = {
 -7531, -3632, -651, 1179, -334, 1175, 10942, 2766, 1827, 137, -856, 0, -5021,
 318, 983, -2078, -8231, -3720, -1035, -482, -68, 1042, 8443, 4617, 0, 212,
 -3127, 4300, 17, -1730, -67, 564, 2253, 1082, 546, -1701, -53, 0, -2085,
 -1352, -4181, 8832, -2515, -2938, -1849, 2052, 292, 1817, 1617, -872, 0, -901,
 -1933, 318, 403, -892, 2492, 420, -1994, -112, 16, -246, 2815, 0, -1288,

 -6920, -4260, -478, 2097, -447, 629, 9462, 3930, 1107, -183, -324, 0, -4613,
 747, 1436, -3457, -10236, -1700, -1849, -1625, 249, 1607, 11079, 3250, 0, 498,
 -697, 2346, 1353, -3083, -1050, 1590, -1262, 2064, 236, -1139, 106, 0, -464,
 -3122, -2053, 5722, 1446, -307, -5648, 4237, 1626, 1129, -630, -318, 0, -2081,
 -1363, 467, -289, -4295, 4119, 286, -2648, -175, 576, 2893, 1336, 0, -908,

 -7596, -2609, -1294, 3253, -389, 1488, 10386, 1820, 2782, 1181, -1425, 0, -7596,
 719, 271, -1244, -9155, -4227, -579, -992, 194, 665, 8852, 4776, 0, 719,
 1850, 1179, 524, -3148, -71, 370, -4584, 4144, -153, -2310, 348, 0, 1850,
 -697, -262, 1205, 4181, 1751, -5688, 961, -188, 5605, -3888, -2283, 0, -697,
 -834, 176, 280, -1124, 2076, 1549, -3167, -1015, 1268, -675, 2301, 0, -834,

 -6516, -4106, -952, 1137, 43, 961, 8683, 3493, 1913, 800, -1113, 0, -4344,
 967, 694, -1988, -10888, -2967, -1261, 61, 241, 727, 9530, 4240, 0, 644,
 -464, 2874, 60, -1986, -61, 439, -1194, 2509, 379, -2406, 158, 0, -309,
 1046, -938, 1830, 1918, 335, -1819, -2833, -2878, 8849, -1938, -4271, 0, 697,
 -1749, 118, 631, 2367, 1158, 584, -2140, -76, -47, -3707, 4025, 0, -1166,

 -7531, -3632, -651, 1179, -334, 1175, 10942, 2766, 1827, 137, -856, 0, -5021,
 318, 983, -2078, -8231, -3720, -1035, -482, -68, 1042, 8443, 4617, 0, 212,
 -3127, 4300, 17, -1730, -67, 564, 2253, 1082, 546, -1701, -53, 0, -2085,
 -1352, -4181, 8832, -2515, -2938, -1849, 2052, 292, 1817, 1617, -872, 0, -901,
 -1933, 318, 403, -892, 2492, 420, -1994, -112, 16, -246, 2815, 0, -1288,
 };
 INT32  fit_matrix_5[5*5*13] = {
 -7388, -2272, -1630, 979, 17, 1396, 10506, 2751, 1659, 193, -375, -911, -4925,
 271, 546, -1763, -8167, -3833, -1106, -342, -64, 1096, 8424, 4462, 293, 181,
 -3177, 3833, 354, -1661, -188, 488, 2403, 1087, 604, -1720, -218, 313, -2118,
 -909, 6, 5817, -3131, -1854, -1168, 707, 246, 1301, 1792, 606, -2807, -606,
 -2048, -774, 1191, -731, 2209, 242, -1643, -100, 150, -292, 2429, 733, -1365,

 -6539, -3805, -754, 1482, -397, 1030, 8860, 3894, 1084, 152, -181, -467, -4359,
 313, 918, -3142, -9536, -1757, -2306, -940, 291, 1634, 10696, 3087, 532, 209,
 -829, 2188, 1449, -2869, -1068, 1451, -1053, 2077, 244, -1256, 56, 162, -553,
 -2735, -1591, 5441, 821, -255, -5240, 3625, 1589, 1105, -288, -172, -475, -1823,
 -1538, 257, -162, -4011, 4096, 101, -2371, -158, 586, 2738, 1271, 215, -1025,

 -6971, -2345, -1300, 2319, -535, 1974, 9394, 2175, 2303, 1533, -928, -647, -6971,
 303, 95, -1240, -8533, -4130, -903, -331, -41, 984, 8618, 4445, 431, 303,
 1570, 1061, 526, -2731, -6, 153, -4140, 3986, 60, -2467, 125, 289, 1570,
 -254, -76, 1201, 3520, 1648, -5344, 258, 62, 5266, -3639, -1931, -458, -254,
 -943, 130, 281, -962, 2102, 1464, -2994, -1077, 1352, -736, 2214, 112, -943,

 -6347, -3635, -1053, 742, -2, 1088, 8532, 3804, 1323, 862, -537, -545, -4231,
 622, -266, -1781, -10084, -2874, -1520, 370, -392, 1930, 9404, 3065, 1112, 415,
 -771, 2015, 245, -1267, 21, 208, -918, 1942, 1453, -2519, -890, 994, -514,
 1853, 1310, 1346, 35, 116, -1213, -3556, -1394, 6033, -1641, -1521, -2604, 1235,
 -1768, 64, 643, 2412, 1164, 569, -2122, -112, 21, -3714, 3959, 62, -1179,

 -7388, -2272, -1630, 979, 17, 1396, 10506, 2751, 1659, 193, -375, -911, -4925,
 271, 546, -1763, -8167, -3833, -1106, -342, -64, 1096, 8424, 4462, 293, 181,
 -3177, 3833, 354, -1661, -188, 488, 2403, 1087, 604, -1720, -218, 313, -2118,
 -909, 6, 5817, -3131, -1854, -1168, 707, 246, 1301, 1792, 606, -2807, -606,
 -2048, -774, 1191, -731, 2209, 242, -1643, -100, 150, -292, 2429, 733, -1365,
 };
 INT32  fit_matrix_6[5*5*13] = {
 -7897, -1383, -2199, 1395, 237, 1372, 10544, 2618, 1624, 473, -223, -1298, -5264,
 394, 332, -1626, -8267, -3886, -1100, -351, -32, 1105, 8357, 4425, 386, 262,
 -2318, 2334, 1312, -2362, -560, 528, 2339, 1311, 663, -2192, -475, 965, -1545,
 -908, 3, 5819, -3132, -1855, -1168, 707, 247, 1301, 1791, 606, -2806, -605,
 -2222, -471, 997, -589, 2284, 234, -1630, -145, 138, -196, 2481, 601, -1481,

 -8954, -1688, -2208, 3111, 596, 81, 11070, 3260, 1195, 494, -258, -729, -5969,
 896, 407, -2792, -9929, -1997, -2077, -1473, 444, 1607, 10613, 3106, 595, 597,
 559, 970, 2285, -3806, -1639, 1996, -2324, 2441, 181, -1452, 100, 313, 372,
 -3745, -705, 4833, 1502, 159, -5637, 4549, 1324, 1152, -145, -205, -584, -2496,
 -1374, 114, -64, -4122, 4029, 165, -2521, -115, 579, 2715, 1276, 232, -916,

 -8903, -768, -1677, 3153, -553, 2195, 11687, 901, 2608, 2155, -1052, -843, -8903,
 382, 31, -1225, -8567, -4130, -912, -424, 10, 971, 8593, 4450, 439, 382,
 2444, 347, 697, -3108, 1, 53, -5177, 4562, -77, -2748, 181, 378, 2444,
 -317, -24, 1189, 3547, 1648, -5337, 332, 21, 5276, -3619, -1935, -464, -317,
 -836, 42, 302, -1008, 2103, 1452, -3121, -1007, 1335, -771, 2221, 123, -836,

 -8555, -1542, -1509, 1240, 4, 1211, 10361, 3290, 567, 1904, 163, -1435, -5703,
 460, -112, -1815, -10047, -2874, -1511, 504, -430, 1874, 9480, 3117, 1047, 307,
 451, 855, 498, -1543, 17, 139, -1932, 2228, 1873, -3097, -1279, 1487, 301,
 2649, 555, 1510, -144, 114, -1257, -4216, -1209, 6305, -2017, -1773, -2284, 1766,
 -1729, 27, 651, 2404, 1164, 567, -2155, -103, 34, -3733, 3947, 78, -1153,

 -7897, -1383, -2199, 1395, 237, 1372, 10544, 2618, 1624, 473, -223, -1298, -5264,
 394, 332, -1626, -8267, -3886, -1100, -351, -32, 1105, 8357, 4425, 386, 262,
 -2318, 2334, 1312, -2362, -560, 528, 2339, 1311, 663, -2192, -475, 965, -1545,
 -908, 3, 5819, -3132, -1855, -1168, 707, 247, 1301, 1791, 606, -2806, -605,
 -2222, -471, 997, -589, 2284, 234, -1630, -145, 138, -196, 2481, 601, -1481,
 };
 INT32  fit_matrix_7[5*5*13] = {
 -13831, -613, -592, 537, -97, 697, 19144, 1035, 512, 729, -87, -518, -6915,
 -236, -78, -640, -19165, -974, -724, -44, -69, 668, 19902, 978, 502, -118,
 1735, 1360, 892, -5905, 35, 389, 4237, 1485, 939, -6982, -18, 961, 867,
 2163, 669, 2882, -2920, 118, -2273, -701, 526, 2832, -1556, 186, -3007, 1081,
 -5480, 50, 837, 4559, 1630, 596, -7024, -26, 784, 4500, 1627, 683, -2740,

 -13831, -613, -592, 537, -97, 697, 19144, 1035, 512, 729, -87, -518, -6915,
 -236, -78, -640, -19165, -974, -724, -44, -69, 668, 19902, 978, 502, -118,
 1735, 1360, 892, -5905, 35, 389, 4237, 1485, 939, -6982, -18, 961, 867,
 2163, 669, 2882, -2920, 118, -2273, -701, 526, 2832, -1556, 186, -3007, 1081,
 -5480, 50, 837, 4559, 1630, 596, -7024, -26, 784, 4500, 1627, 683, -2740,

 -13831, -613, -592, 537, -97, 697, 19144, 1035, 512, 729, -87, -518, -6915,
 -236, -78, -640, -19165, -974, -724, -44, -69, 668, 19902, 978, 502, -118,
 1735, 1360, 892, -5905, 35, 389, 4237, 1485, 939, -6982, -18, 961, 867,
 2163, 669, 2882, -2920, 118, -2273, -701, 526, 2832, -1556, 186, -3007, 1081,
 -5480, 50, 837, 4559, 1630, 596, -7024, -26, 784, 4500, 1627, 683, -2740,

 -13831, -613, -592, 537, -97, 697, 19144, 1035, 512, 729, -87, -518, -6915,
 -236, -78, -640, -19165, -974, -724, -44, -69, 668, 19902, 978, 502, -118,
 1735, 1360, 892, -5905, 35, 389, 4237, 1485, 939, -6982, -18, 961, 867,
 2163, 669, 2882, -2920, 118, -2273, -701, 526, 2832, -1556, 186, -3007, 1081,
 -5480, 50, 837, 4559, 1630, 596, -7024, -26, 784, 4500, 1627, 683, -2740,

 -13831, -613, -592, 537, -97, 697, 19144, 1035, 512, 729, -87, -518, -6915,
 -236, -78, -640, -19165, -974, -724, -44, -69, 668, 19902, 978, 502, -118,
 1735, 1360, 892, -5905, 35, 389, 4237, 1485, 939, -6982, -18, 961, 867,
 2163, 669, 2882, -2920, 118, -2273, -701, 526, 2832, -1556, 186, -3007, 1081,
 -5480, 50, 837, 4559, 1630, 596, -7024, -26, 784, 4500, 1627, 683, -2740,
 };
 INT32  fit_matrix_8[5*5*13] = {
 -8675, -2015, -2644, -217, 479, 1619, 9820, 2799, 1619, -217, 479, -2644, -403,
 0, 0, -1197, -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0,
 -3581, 4015, -32, -1860, -46, 601, 2454, 1159, 601, -1860, -46, -32, -1372,
 0, 0, 5089, -3143, -1571, -1160, 0, 0, 1160, 3143, 1571, -5089, 0,
 -2494, -1123, 1444, -650, 2099, 245, -1147, 26, 245, -650, 2099, 1444, -1537,

 -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0, 0, -1197, 0,
 -217, 479, -2644, -8675, -2015, -2644, -217, 479, 1619, 9820, 2799, 1619, -403,
 -650, 2099, 1444, -2494, -1123, 1444, -650, 2099, 245, -1147, 26, 245, -1537,
 -3143, -1571, 5089, 0, 0, -5089, 3143, 1571, 1160, 0, 0, -1160, 0,
 -1860, -46, -32, -3581, 4015, -32, -1860, -46, 601, 2454, 1159, 601, -1372,

 -9820, -2799, -1619, 217, -479, 2644, 8675, 2015, 2644, 217, -479, -1619, 403,
 0, 0, -1197, -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0,
 2454, 1159, 601, -1860, -46, -32, -3581, 4015, -32, -1860, -46, 601, -1372,
 0, 0, 1160, 3143, 1571, -5089, 0, 0, 5089, -3143, -1571, -1160, 0,
 -1147, 26, 245, -650, 2099, 1444, -2494, -1123, 1444, -650, 2099, 245, -1537,

 -8083, -4041, -1197, 0, 0, 1197, 8083, 4041, 1197, 0, 0, -1197, 0,
 217, -479, -1619, -9820, -2799, -1619, 217, -479, 2644, 8675, 2015, 2644, 403,
 -650, 2099, 245, -1147, 26, 245, -650, 2099, 1444, -2494, -1123, 1444, -1537,
 3143, 1571, 1160, 0, 0, -1160, -3143, -1571, 5089, 0, 0, -5089, 0,
 -1860, -46, 601, 2454, 1159, 601, -1860, -46, -32, -3581, 4015, -32, -1372,

 -6521, -3260, -2173, 0, 0, 2173, 6521, 3260, 2173, 0, 0, -2173, 0,
 0, 0, -2173, -6521, -3260, -2173, 0, 0, 2173, 6521, 3260, 2173, 0,
 -579, 2179, 745, -2303, -406, 745, -579, 2179, 745, -2303, -406, 745, -762,
 0, 0, 3125, 0, 0, -3125, 0, 0, 3125, 0, 0, -3125, 0,
 -2303, -406, 745, -579, 2179, 745, -2303, -406, 745, -579, 2179, 745, -762,
  };
 INT32  *fit_matrix = fit_matrix_0;

/* definitions and lookup tables for the tunable filter s/w, this is mostly
a copy of tfTune.h in the flight s/w package */

typedef struct {
 /* based (loosely) on the lnlst structure in the old SOUP tf program, we
 don't need the name and wavelenght here so they are omitted. The slope
 is expressed as a ratio of 2 int's rather than a double since we are
 avoiding FP ops */
	int filterPos;
	int tfrefpos[8];	/* the reference motor positions */
	int slope1, slope2;	/* temperature slope */
	int sacfi;
	int meters2ma;
	int tRef[8];
	} LineList;
#define stp_per_rev 168		/* number of step per revolution  */
#define	NTEMPS 8		/* number of thermistors used for elements */
#define	NELEMS 8		/* number of elements in this TF */
#define NUM_TEMPS  35	// taken from MCmon.cpp, better to have in a common h file
#define MAX_TSAMP   5	// ditto
/* the lookup tables */
UINT16 highTable[2648] = {
39995,39975,39955,39936,39916,39897,39877,39858,39838,39819,
39799,39780,39760,39741,39721,39702,39682,39663,39644,39624,
39605,39586,39567,39547,39528,39509,39490,39470,39451,39432,
39413,39394,39374,39355,39336,39317,39298,39279,39260,39241,
39222,39203,39184,39165,39146,39127,39108,39089,39070,39052,
39033,39014,38995,38976,38957,38939,38920,38901,38882,38864,
38845,38826,38808,38789,38770,38752,38733,38714,38696,38677,
38659,38640,38622,38603,38585,38566,38548,38529,38511,38492,
38474,38455,38437,38419,38400,38382,38364,38345,38327,38309,
38290,38272,38254,38236,38217,38199,38181,38163,38145,38126,
38108,38090,38072,38054,38036,38018,38000,37982,37964,37946,
37928,37910,37892,37874,37856,37838,37820,37802,37784,37766,
37748,37730,37712,37695,37677,37659,37641,37623,37605,37588,
37570,37552,37534,37517,37499,37481,37464,37446,37428,37411,
37393,37375,37358,37340,37323,37305,37287,37270,37252,37235,
37217,37200,37182,37165,37147,37130,37112,37095,37078,37060,
37043,37025,37008,36991,36973,36956,36939,36921,36904,36887,
36869,36852,36835,36818,36800,36783,36766,36749,36731,36714,
36697,36680,36663,36646,36629,36611,36594,36577,36560,36543,
36526,36509,36492,36475,36458,36441,36424,36407,36390,36373,
36356,36339,36322,36305,36288,36271,36254,36238,36221,36204,
36187,36170,36153,36136,36120,36103,36086,36069,36053,36036,
36019,36002,35986,35969,35952,35935,35919,35902,35885,35869,
35852,35835,35819,35802,35786,35769,35752,35736,35719,35703,
35686,35670,35653,35636,35620,35603,35587,35571,35554,35538,
35521,35505,35488,35472,35455,35439,35423,35406,35390,35373,
35357,35341,35324,35308,35292,35275,35259,35243,35226,35210,
35194,35178,35161,35145,35129,35113,35096,35080,35064,35048,
35032,35016,34999,34983,34967,34951,34935,34919,34903,34886,
34870,34854,34838,34822,34806,34790,34774,34758,34742,34726,
34710,34694,34678,34662,34646,34630,34614,34598,34582,34566,
34550,34534,34518,34502,34487,34471,34455,34439,34423,34407,
34391,34376,34360,34344,34328,34312,34296,34281,34265,34249,
34233,34218,34202,34186,34170,34155,34139,34123,34107,34092,
34076,34060,34045,34029,34013,33998,33982,33966,33951,33935,
33920,33904,33888,33873,33857,33842,33826,33810,33795,33779,
33764,33748,33733,33717,33702,33686,33671,33655,33640,33624,
33609,33593,33578,33562,33547,33532,33516,33501,33485,33470,
33455,33439,33424,33408,33393,33378,33362,33347,33332,33316,
33301,33286,33270,33255,33240,33224,33209,33194,33179,33163,
33148,33133,33118,33102,33087,33072,33057,33041,33026,33011,
32996,32981,32965,32950,32935,32920,32905,32890,32874,32859,
32844,32829,32814,32799,32784,32769,32754,32738,32723,32708,
32693,32678,32663,32648,32633,32618,32603,32588,32573,32558,
32543,32528,32513,32498,32483,32468,32453,32438,32423,32408,
32393,32378,32363,32348,32334,32319,32304,32289,32274,32259,
32244,32229,32214,32200,32185,32170,32155,32140,32125,32111,
32096,32081,32066,32051,32036,32022,32007,31992,31977,31963,
31948,31933,31918,31904,31889,31874,31859,31845,31830,31815,
31800,31786,31771,31756,31742,31727,31712,31698,31683,31668,
31654,31639,31624,31610,31595,31580,31566,31551,31537,31522,
31507,31493,31478,31464,31449,31434,31420,31405,31391,31376,
31362,31347,31333,31318,31304,31289,31275,31260,31246,31231,
31217,31202,31188,31173,31159,31144,31130,31115,31101,31086,
31072,31057,31043,31029,31014,31000,30985,30971,30957,30942,
30928,30913,30899,30885,30870,30856,30841,30827,30813,30798,
30784,30770,30755,30741,30727,30712,30698,30684,30670,30655,
30641,30627,30612,30598,30584,30570,30555,30541,30527,30513,
30498,30484,30470,30456,30441,30427,30413,30399,30384,30370,
30356,30342,30328,30314,30299,30285,30271,30257,30243,30229,
30214,30200,30186,30172,30158,30144,30130,30115,30101,30087,
30073,30059,30045,30031,30017,30003,29989,29975,29960,29946,
29932,29918,29904,29890,29876,29862,29848,29834,29820,29806,
29792,29778,29764,29750,29736,29722,29708,29694,29680,29666,
29652,29638,29624,29610,29596,29582,29568,29554,29541,29527,
29513,29499,29485,29471,29457,29443,29429,29415,29401,29388,
29374,29360,29346,29332,29318,29304,29290,29277,29263,29249,
29235,29221,29207,29194,29180,29166,29152,29138,29125,29111,
29097,29083,29069,29056,29042,29028,29014,29000,28987,28973,
28959,28945,28932,28918,28904,28890,28877,28863,28849,28836,
28822,28808,28794,28781,28767,28753,28740,28726,28712,28699,
28685,28671,28658,28644,28630,28617,28603,28589,28576,28562,
28549,28535,28521,28508,28494,28480,28467,28453,28440,28426,
28412,28399,28385,28372,28358,28345,28331,28317,28304,28290,
28277,28263,28250,28236,28223,28209,28196,28182,28169,28155,
28142,28128,28115,28101,28088,28074,28061,28047,28034,28020,
28007,27993,27980,27966,27953,27939,27926,27913,27899,27886,
27872,27859,27845,27832,27819,27805,27792,27778,27765,27752,
27738,27725,27711,27698,27685,27671,27658,27645,27631,27618,
27605,27591,27578,27565,27551,27538,27525,27511,27498,27485,
27471,27458,27445,27431,27418,27405,27392,27378,27365,27352,
27338,27325,27312,27299,27285,27272,27259,27246,27232,27219,
27206,27193,27180,27166,27153,27140,27127,27113,27100,27087,
27074,27061,27048,27034,27021,27008,26995,26982,26969,26955,
26942,26929,26916,26903,26890,26877,26863,26850,26837,26824,
26811,26798,26785,26772,26759,26745,26732,26719,26706,26693,
26680,26667,26654,26641,26628,26615,26602,26589,26576,26563,
26550,26537,26523,26510,26497,26484,26471,26458,26445,26432,
26419,26406,26393,26380,26368,26355,26342,26329,26316,26303,
26290,26277,26264,26251,26238,26225,26212,26199,26186,26173,
26160,26148,26135,26122,26109,26096,26083,26070,26057,26044,
26032,26019,26006,25993,25980,25967,25954,25942,25929,25916,
25903,25890,25877,25865,25852,25839,25826,25813,25801,25788,
25775,25762,25749,25737,25724,25711,25698,25685,25673,25660,
25647,25634,25622,25609,25596,25584,25571,25558,25545,25533,
25520,25507,25494,25482,25469,25456,25444,25431,25418,25406,
25393,25380,25368,25355,25342,25330,25317,25304,25292,25279,
25267,25254,25241,25229,25216,25203,25191,25178,25166,25153,
25140,25128,25115,25103,25090,25078,25065,25052,25040,25027,
25015,25002,24990,24977,24965,24952,24940,24927,24915,24902,
24890,24877,24865,24852,24840,24827,24815,24802,24790,24777,
24765,24752,24740,24727,24715,24702,24690,24678,24665,24653,
24640,24628,24615,24603,24591,24578,24566,24553,24541,24529,
24516,24504,24492,24479,24467,24454,24442,24430,24417,24405,
24393,24380,24368,24356,24343,24331,24319,24306,24294,24282,
24270,24257,24245,24233,24220,24208,24196,24184,24171,24159,
24147,24135,24122,24110,24098,24086,24073,24061,24049,24037,
24025,24012,24000,23988,23976,23964,23951,23939,23927,23915,
23903,23891,23878,23866,23854,23842,23830,23818,23806,23793,
23781,23769,23757,23745,23733,23721,23709,23697,23685,23672,
23660,23648,23636,23624,23612,23600,23588,23576,23564,23552,
23540,23528,23516,23504,23492,23480,23468,23456,23444,23432,
23420,23408,23396,23384,23372,23360,23348,23336,23324,23312,
23300,23288,23276,23264,23252,23241,23229,23217,23205,23193,
23181,23169,23157,23145,23134,23122,23110,23098,23086,23074,
23062,23051,23039,23027,23015,23003,22991,22980,22968,22956,
22944,22932,22921,22909,22897,22885,22873,22862,22850,22838,
22826,22815,22803,22791,22779,22768,22756,22744,22733,22721,
22709,22697,22686,22674,22662,22651,22639,22627,22616,22604,
22592,22581,22569,22557,22546,22534,22522,22511,22499,22488,
22476,22464,22453,22441,22430,22418,22406,22395,22383,22372,
22360,22349,22337,22325,22314,22302,22291,22279,22268,22256,
22245,22233,22222,22210,22199,22187,22176,22164,22153,22141,
22130,22118,22107,22096,22084,22073,22061,22050,22038,22027,
22016,22004,21993,21981,21970,21959,21947,21936,21924,21913,
21902,21890,21879,21868,21856,21845,21834,21822,21811,21800,
21788,21777,21766,21754,21743,21732,21720,21709,21698,21687,
21675,21664,21653,21642,21630,21619,21608,21597,21585,21574,
21563,21552,21541,21529,21518,21507,21496,21485,21473,21462,
21451,21440,21429,21418,21407,21395,21384,21373,21362,21351,
21340,21329,21318,21306,21295,21284,21273,21262,21251,21240,
21229,21218,21207,21196,21185,21174,21163,21152,21141,21130,
21119,21108,21097,21086,21075,21064,21053,21042,21031,21020,
21009,20998,20987,20976,20965,20954,20943,20932,20921,20910,
20900,20889,20878,20867,20856,20845,20834,20823,20813,20802,
20791,20780,20769,20758,20748,20737,20726,20715,20704,20693,
20683,20672,20661,20650,20640,20629,20618,20607,20596,20586,
20575,20564,20554,20543,20532,20521,20511,20500,20489,20479,
20468,20457,20447,20436,20425,20415,20404,20393,20383,20372,
20361,20351,20340,20329,20319,20308,20298,20287,20276,20266,
20255,20245,20234,20224,20213,20202,20192,20181,20171,20160,
20150,20139,20129,20118,20108,20097,20087,20076,20066,20055,
20045,20034,20024,20013,20003,19993,19982,19972,19961,19951,
19940,19930,19920,19909,19899,19888,19878,19868,19857,19847,
19837,19826,19816,19806,19795,19785,19775,19764,19754,19744,
19733,19723,19713,19702,19692,19682,19672,19661,19651,19641,
19631,19620,19610,19600,19590,19579,19569,19559,19549,19539,
19528,19518,19508,19498,19488,19478,19467,19457,19447,19437,
19427,19417,19407,19396,19386,19376,19366,19356,19346,19336,
19326,19316,19306,19296,19285,19275,19265,19255,19245,19235,
19225,19215,19205,19195,19185,19175,19165,19155,19145,19135,
19125,19115,19105,19095,19086,19076,19066,19056,19046,19036,
19026,19016,19006,18996,18986,18976,18967,18957,18947,18937,
18927,18917,18907,18898,18888,18878,18868,18858,18849,18839,
18829,18819,18809,18800,18790,18780,18770,18761,18751,18741,
18731,18722,18712,18702,18692,18683,18673,18663,18654,18644,
18634,18624,18615,18605,18595,18586,18576,18567,18557,18547,
18538,18528,18518,18509,18499,18490,18480,18470,18461,18451,
18442,18432,18423,18413,18403,18394,18384,18375,18365,18356,
18346,18337,18327,18318,18308,18299,18289,18280,18270,18261,
18251,18242,18233,18223,18214,18204,18195,18185,18176,18167,
18157,18148,18138,18129,18120,18110,18101,18091,18082,18073,
18063,18054,18045,18035,18026,18017,18007,17998,17989,17980,
17970,17961,17952,17942,17933,17924,17915,17905,17896,17887,
17878,17868,17859,17850,17841,17832,17822,17813,17804,17795,
17786,17776,17767,17758,17749,17740,17731,17721,17712,17703,
17694,17685,17676,17667,17658,17649,17639,17630,17621,17612,
17603,17594,17585,17576,17567,17558,17549,17540,17531,17522,
17513,17504,17495,17486,17477,17468,17459,17450,17441,17432,
17423,17414,17405,17396,17387,17378,17369,17360,17351,17343,
17334,17325,17316,17307,17298,17289,17280,17271,17263,17254,
17245,17236,17227,17218,17210,17201,17192,17183,17174,17165,
17157,17148,17139,17130,17121,17113,17104,17095,17086,17078,
17069,17060,17051,17043,17034,17025,17017,17008,16999,16990,
16982,16973,16964,16956,16947,16938,16930,16921,16912,16904,
16895,16886,16878,16869,16861,16852,16843,16835,16826,16818,
16809,16800,16792,16783,16775,16766,16758,16749,16740,16732,
16723,16715,16706,16698,16689,16681,16672,16664,16655,16647,
16638,16630,16621,16613,16604,16596,16587,16579,16570,16562,
16554,16545,16537,16528,16520,16511,16503,16495,16486,16478,
16469,16461,16453,16444,16436,16428,16419,16411,16403,16394,
16386,16378,16369,16361,16353,16344,16336,16328,16319,16311,
16303,16294,16286,16278,16270,16261,16253,16245,16236,16228,
16220,16212,16204,16195,16187,16179,16171,16162,16154,16146,
16138,16130,16121,16113,16105,16097,16089,16080,16072,16064,
16056,16048,16040,16032,16023,16015,16007,15999,15991,15983,
15975,15967,15958,15950,15942,15934,15926,15918,15910,15902,
15894,15886,15878,15870,15862,15853,15845,15837,15829,15821,
15813,15805,15797,15789,15781,15773,15765,15757,15749,15741,
15733,15725,15717,15709,15701,15693,15685,15677,15670,15662,
15654,15646,15638,15630,15622,15614,15606,15598,15590,15582,
15574,15567,15559,15551,15543,15535,15527,15519,15511,15503,
15496,15488,15480,15472,15464,15456,15448,15441,15433,15425,
15417,15409,15401,15394,15386,15378,15370,15362,15355,15347,
15339,15331,15323,15316,15308,15300,15292,15285,15277,15269,
15261,15253,15246,15238,15230,15222,15215,15207,15199,15192,
15184,15176,15168,15161,15153,15145,15138,15130,15122,15114,
15107,15099,15091,15084,15076,15068,15061,15053,15045,15038,
15030,15022,15015,15007,14999,14992,14984,14976,14969,14961,
14953,14946,14938,14931,14923,14915,14908,14900,14892,14885,
14877,14870,14862,14854,14847,14839,14832,14824,14817,14809,
14801,14794,14786,14779,14771,14763,14756,14748,14741,14733,
14726,14718,14711,14703,14695,14688,14680,14673,14665,14658,
14650,14643,14635,14628,14620,14613,14605,14598,14590,14583,
14575,14568,14560,14553,14545,14538,14530,14523,14515,14508,
14500,14493,14485,14478,14470,14463,14455,14448,14440,14433,
14425,14418,14410,14403,14395,14388,14380,14373,14366,14358,
14351,14343,14336,14328,14321,14313,14306,14298,14291,14284,
14276,14269,14261,14254,14246,14239,14231,14224,14217,14209,
14202,14194,14187,14179,14172,14165,14157,14150,14142,14135,
14128,14120,14113,14105,14098,14090,14083,14076,14068,14061,
14053,14046,14039,14031,14024,14016,14009,14002,13994,13987,
13979,13972,13965,13957,13950,13942,13935,13928,13920,13913,
13905,13898,13891,13883,13876,13868,13861,13854,13846,13839,
13831,13824,13817,13809,13802,13794,13787,13780,13772,13765,
13757,13750,13743,13735,13728,13720,13713,13706,13698,13691,
13683,13676,13669,13661,13654,13646,13639,13632,13624,13617,
13609,13602,13595,13587,13580,13572,13565,13558,13550,13543,
13535,13528,13520,13513,13506,13498,13491,13483,13476,13469,
13461,13454,13446,13439,13431,13424,13417,13409,13402,13394,
13387,13379,13372,13365,13357,13350,13342,13335,13327,13320,
13312,13305,13298,13290,13283,13275,13268,13260,13253,13245,
13238,13230,13223,13216,13208,13201,13193,13186,13178,13171,
13163,13156,13148,13141,13133,13126,13118,13111,13103,13096,
13088,13081,13073,13066,13058,13051,13043,13036,13028,13021,
13013,13006,12998,12991,12983,12975,12968,12960,12953,12945,
12938,12930,12923,12915,12907,12900,12892,12885,12877,12870,
12862,12854,12847,12839,12832,12824,12816,12809,12801,12794,
12786,12778,12771,12763,12755,12748,12740,12732,12725,12717,
12709,12702,12694,12686,12679,12671,12663,12656,12648,12640,
12633,12625,12617,12610,12602,12594,12586,12579,12571,12563,
12555,12548,12540,12532,12524,12517,12509,12501,12493,12486,
12478,12470,12462,12454,12447,12439,12431,12423,12415,12408,
12400,12392,12384,12376,12368,12360,12353,12345,12337,12329,
12321,12313,12305,12297,12289,12281,12274,12266,12258,12250,
12242,12234,12226,12218,12210,12202,12194,12186,12178,12170,
12162,12154,12146,12138,12130,12122,12114,12106,12098,12090,
12082,12074,12065,12057,12049,12041,12033,12025,12017,12009,
12001,11992,11984,11976,11968,11960,11952,11943,11935,11927,
11919,11911,11902,11894,11886,11878,11869,11861,11853,11845,
11836,11828,11820,11812,11803,11795,11787,11778,11770,11762,
11753,11745,11736,11728,11720,11711,11703,11694,11686,11678,
11669,11661,11652,11644,11635,11627,11618,11610,11601,11593,
11584,11576,11567,11559,11550,11542,11533,11524,11516,11507,
11499,11490,11481,11473,11464,11455,11447,11438,11429,11421,
11412,11403,11394,11386,11377,11368,11359,11351,11342,11333,
11324,11315,11307,11298,11289,11280,11271,11262,11253,11245,
11236,11227,11218,11209,11200,11191,11182,11173,11164,11155,
11146,11137,11128,11119,11110,11101,11092,11083,11073,11064,
11055,11046,11037,11028,11019,11009,11000,10991,10982,10973,
10963,10954,10945,10935,10926,10917,10908,10898,10889,10880,
10870,10861,10851,10842,10833,10823,10814,10804,10795,10785,
10776,10766,10757,10747,10738,10728,10719,10709,10700,10690,
10680,10671,10661,10651,10642,10632,10622,10613,10603,10593,
10583,10574,10564,10554,10544,10534,10525,10515,10505,10495,
10485,10475,10465,10455,10445,10435,10426,10416,10406,10396,
10385,10375,10365,10355,10345,10335,10325,10315,10305,10295,
10284,10274,10264,10254,10243,10233,10223,10213,10202,10192,
10182,10171,10161,10151,10140,10130,10119,10109,10098,10088,
10077,10067,10056,10046,10035,10025,10014,10004, 9993, 9982,
 9972, 9961, 9950, 9940, 9929, 9918, 9907, 9897, 9886, 9875,
 9864, 9853, 9842, 9831, 9821, 9810, 9799, 9788, 9777, 9766,
 9755, 9744, 9733, 9722, 9711, 9700, 9688, 9677, 9666, 9655,
 9644, 9633, 9621, 9610, 9599, 9588, 9576, 9565, 9554, 9542,
 9531, 9520, 9508, 9497, 9485, 9474, 9462, 9451
};

UINT16 lowTable[2800] = {
39977,39946,39914,39883,39852,39820,39789,39758,39727,39696,
39665,39634,39603,39572,39541,39510,39479,39448,39417,39386,
39356,39325,39294,39264,39233,39202,39172,39141,39111,39080,
39050,39019,38989,38959,38928,38898,38868,38837,38807,38777,
38747,38717,38687,38657,38627,38597,38567,38537,38507,38477,
38447,38417,38388,38358,38328,38298,38269,38239,38209,38180,
38150,38121,38091,38062,38032,38003,37974,37944,37915,37886,
37856,37827,37798,37769,37740,37711,37682,37652,37623,37594,
37566,37537,37508,37479,37450,37421,37392,37364,37335,37306,
37277,37249,37220,37192,37163,37135,37106,37078,37049,37021,
36992,36964,36936,36907,36879,36851,36823,36794,36766,36738,
36710,36682,36654,36626,36598,36570,36542,36514,36486,36458,
36430,36403,36375,36347,36319,36292,36264,36236,36209,36181,
36154,36126,36099,36071,36044,36016,35989,35962,35934,35907,
35880,35852,35825,35798,35771,35744,35717,35689,35662,35635,
35608,35581,35554,35527,35501,35474,35447,35420,35393,35366,
35340,35313,35286,35260,35233,35206,35180,35153,35127,35100,
35074,35047,35021,34994,34968,34942,34915,34889,34863,34836,
34810,34784,34758,34732,34706,34679,34653,34627,34601,34575,
34549,34523,34497,34472,34446,34420,34394,34368,34342,34317,
34291,34265,34240,34214,34188,34163,34137,34112,34086,34061,
34035,34010,33984,33959,33934,33908,33883,33858,33832,33807,
33782,33757,33732,33706,33681,33656,33631,33606,33581,33556,
33531,33506,33481,33456,33431,33406,33382,33357,33332,33307,
33283,33258,33233,33208,33184,33159,33135,33110,33086,33061,
33036,33012,32988,32963,32939,32914,32890,32866,32841,32817,
32793,32769,32744,32720,32696,32672,32648,32624,32599,32575,
32551,32527,32503,32479,32455,32432,32408,32384,32360,32336,
32312,32288,32265,32241,32217,32194,32170,32146,32123,32099,
32075,32052,32028,32005,31981,31958,31934,31911,31888,31864,
31841,31818,31794,31771,31748,31724,31701,31678,31655,31632,
31608,31585,31562,31539,31516,31493,31470,31447,31424,31401,
31378,31355,31332,31310,31287,31264,31241,31218,31196,31173,
31150,31128,31105,31082,31060,31037,31014,30992,30969,30947,
30924,30902,30879,30857,30834,30812,30790,30767,30745,30723,
30700,30678,30656,30634,30611,30589,30567,30545,30523,30501,
30479,30457,30435,30413,30391,30369,30347,30325,30303,30281,
30259,30237,30215,30193,30172,30150,30128,30106,30085,30063,
30041,30020,29998,29976,29955,29933,29912,29890,29868,29847,
29825,29804,29783,29761,29740,29718,29697,29676,29654,29633,
29612,29590,29569,29548,29527,29505,29484,29463,29442,29421,
29400,29379,29358,29337,29316,29295,29274,29253,29232,29211,
29190,29169,29148,29127,29106,29086,29065,29044,29023,29002,
28982,28961,28940,28920,28899,28878,28858,28837,28817,28796,
28775,28755,28734,28714,28693,28673,28653,28632,28612,28591,
28571,28551,28530,28510,28490,28470,28449,28429,28409,28389,
28368,28348,28328,28308,28288,28268,28248,28228,28208,28188,
28168,28148,28128,28108,28088,28068,28048,28028,28008,27988,
27968,27949,27929,27909,27889,27870,27850,27830,27810,27791,
27771,27751,27732,27712,27693,27673,27653,27634,27614,27595,
27575,27556,27536,27517,27498,27478,27459,27439,27420,27401,
27381,27362,27343,27323,27304,27285,27266,27246,27227,27208,
27189,27170,27151,27131,27112,27093,27074,27055,27036,27017,
26998,26979,26960,26941,26922,26903,26884,26866,26847,26828,
26809,26790,26771,26752,26734,26715,26696,26677,26659,26640,
26621,26603,26584,26565,26547,26528,26509,26491,26472,26454,
26435,26417,26398,26380,26361,26343,26324,26306,26287,26269,
26251,26232,26214,26196,26177,26159,26141,26122,26104,26086,
26068,26049,26031,26013,25995,25977,25958,25940,25922,25904,
25886,25868,25850,25832,25814,25796,25778,25760,25742,25724,
25706,25688,25670,25652,25634,25616,25598,25581,25563,25545,
25527,25509,25492,25474,25456,25438,25421,25403,25385,25367,
25350,25332,25315,25297,25279,25262,25244,25227,25209,25191,
25174,25156,25139,25121,25104,25086,25069,25052,25034,25017,
24999,24982,24965,24947,24930,24913,24895,24878,24861,24843,
24826,24809,24792,24774,24757,24740,24723,24706,24688,24671,
24654,24637,24620,24603,24586,24569,24552,24535,24518,24501,
24484,24467,24450,24433,24416,24399,24382,24365,24348,24331,
24314,24297,24280,24264,24247,24230,24213,24196,24180,24163,
24146,24129,24113,24096,24079,24062,24046,24029,24012,23996,
23979,23963,23946,23929,23913,23896,23880,23863,23847,23830,
23814,23797,23781,23764,23748,23731,23715,23698,23682,23665,
23649,23633,23616,23600,23584,23567,23551,23535,23518,23502,
23486,23469,23453,23437,23421,23404,23388,23372,23356,23340,
23324,23307,23291,23275,23259,23243,23227,23211,23195,23179,
23163,23146,23130,23114,23098,23082,23066,23050,23034,23019,
23003,22987,22971,22955,22939,22923,22907,22891,22875,22860,
22844,22828,22812,22796,22780,22765,22749,22733,22717,22702,
22686,22670,22654,22639,22623,22607,22592,22576,22560,22545,
22529,22514,22498,22482,22467,22451,22436,22420,22405,22389,
22373,22358,22342,22327,22311,22296,22281,22265,22250,22234,
22219,22203,22188,22173,22157,22142,22126,22111,22096,22080,
22065,22050,22034,22019,22004,21989,21973,21958,21943,21928,
21912,21897,21882,21867,21851,21836,21821,21806,21791,21776,
21760,21745,21730,21715,21700,21685,21670,21655,21640,21625,
21610,21595,21580,21565,21550,21535,21520,21505,21490,21475,
21460,21445,21430,21415,21400,21385,21370,21355,21340,21325,
21311,21296,21281,21266,21251,21236,21222,21207,21192,21177,
21162,21148,21133,21118,21103,21089,21074,21059,21045,21030,
21015,21000,20986,20971,20956,20942,20927,20913,20898,20883,
20869,20854,20840,20825,20810,20796,20781,20767,20752,20738,
20723,20709,20694,20680,20665,20651,20636,20622,20607,20593,
20578,20564,20549,20535,20521,20506,20492,20477,20463,20449,
20434,20420,20406,20391,20377,20363,20348,20334,20320,20305,
20291,20277,20262,20248,20234,20220,20205,20191,20177,20163,
20149,20134,20120,20106,20092,20078,20063,20049,20035,20021,
20007,19993,19979,19964,19950,19936,19922,19908,19894,19880,
19866,19852,19838,19824,19810,19796,19782,19768,19754,19740,
19726,19712,19698,19684,19670,19656,19642,19628,19614,19600,
19586,19572,19558,19544,19530,19516,19503,19489,19475,19461,
19447,19433,19419,19406,19392,19378,19364,19350,19336,19323,
19309,19295,19281,19268,19254,19240,19226,19213,19199,19185,
19171,19158,19144,19130,19116,19103,19089,19075,19062,19048,
19034,19021,19007,18993,18980,18966,18953,18939,18925,18912,
18898,18885,18871,18857,18844,18830,18817,18803,18790,18776,
18762,18749,18735,18722,18708,18695,18681,18668,18654,18641,
18627,18614,18600,18587,18574,18560,18547,18533,18520,18506,
18493,18479,18466,18453,18439,18426,18412,18399,18386,18372,
18359,18346,18332,18319,18306,18292,18279,18266,18252,18239,
18226,18212,18199,18186,18172,18159,18146,18133,18119,18106,
18093,18080,18066,18053,18040,18027,18013,18000,17987,17974,
17961,17947,17934,17921,17908,17895,17881,17868,17855,17842,
17829,17816,17803,17789,17776,17763,17750,17737,17724,17711,
17698,17685,17671,17658,17645,17632,17619,17606,17593,17580,
17567,17554,17541,17528,17515,17502,17489,17476,17463,17450,
17437,17424,17411,17398,17385,17372,17359,17346,17333,17320,
17307,17294,17281,17268,17255,17242,17229,17216,17203,17190,
17178,17165,17152,17139,17126,17113,17100,17087,17074,17062,
17049,17036,17023,17010,16997,16984,16972,16959,16946,16933,
16920,16907,16895,16882,16869,16856,16843,16831,16818,16805,
16792,16779,16767,16754,16741,16728,16716,16703,16690,16677,
16665,16652,16639,16626,16614,16601,16588,16576,16563,16550,
16537,16525,16512,16499,16487,16474,16461,16449,16436,16423,
16411,16398,16385,16373,16360,16347,16335,16322,16310,16297,
16284,16272,16259,16246,16234,16221,16209,16196,16183,16171,
16158,16146,16133,16121,16108,16095,16083,16070,16058,16045,
16033,16020,16008,15995,15982,15970,15957,15945,15932,15920,
15907,15895,15882,15870,15857,15845,15832,15820,15807,15795,
15782,15770,15757,15745,15732,15720,15708,15695,15683,15670,
15658,15645,15633,15620,15608,15596,15583,15571,15558,15546,
15533,15521,15509,15496,15484,15471,15459,15447,15434,15422,
15410,15397,15385,15372,15360,15348,15335,15323,15311,15298,
15286,15274,15261,15249,15237,15224,15212,15200,15187,15175,
15163,15150,15138,15126,15113,15101,15089,15076,15064,15052,
15040,15027,15015,15003,14990,14978,14966,14954,14941,14929,
14917,14904,14892,14880,14868,14855,14843,14831,14819,14807,
14794,14782,14770,14758,14745,14733,14721,14709,14696,14684,
14672,14660,14648,14635,14623,14611,14599,14587,14575,14562,
14550,14538,14526,14514,14501,14489,14477,14465,14453,14441,
14428,14416,14404,14392,14380,14368,14356,14343,14331,14319,
14307,14295,14283,14271,14259,14246,14234,14222,14210,14198,
14186,14174,14162,14150,14137,14125,14113,14101,14089,14077,
14065,14053,14041,14029,14017,14005,13992,13980,13968,13956,
13944,13932,13920,13908,13896,13884,13872,13860,13848,13836,
13824,13812,13800,13788,13776,13764,13752,13739,13727,13715,
13703,13691,13679,13667,13655,13643,13631,13619,13607,13595,
13583,13571,13559,13547,13535,13523,13511,13499,13488,13476,
13464,13452,13440,13428,13416,13404,13392,13380,13368,13356,
13344,13332,13320,13308,13296,13284,13272,13260,13248,13236,
13224,13213,13201,13189,13177,13165,13153,13141,13129,13117,
13105,13093,13081,13069,13058,13046,13034,13022,13010,12998,
12986,12974,12962,12950,12939,12927,12915,12903,12891,12879,
12867,12855,12844,12832,12820,12808,12796,12784,12772,12760,
12749,12737,12725,12713,12701,12689,12677,12666,12654,12642,
12630,12618,12606,12595,12583,12571,12559,12547,12535,12524,
12512,12500,12488,12476,12464,12453,12441,12429,12417,12405,
12394,12382,12370,12358,12346,12335,12323,12311,12299,12287,
12276,12264,12252,12240,12228,12217,12205,12193,12181,12170,
12158,12146,12134,12122,12111,12099,12087,12075,12064,12052,
12040,12028,12017,12005,11993,11981,11970,11958,11946,11934,
11923,11911,11899,11887,11876,11864,11852,11840,11829,11817,
11805,11793,11782,11770,11758,11747,11735,11723,11711,11700,
11688,11676,11665,11653,11641,11629,11618,11606,11594,11583,
11571,11559,11548,11536,11524,11512,11501,11489,11477,11466,
11454,11442,11431,11419,11407,11396,11384,11372,11361,11349,
11337,11326,11314,11302,11291,11279,11267,11256,11244,11232,
11221,11209,11197,11186,11174,11162,11151,11139,11127,11116,
11104,11092,11081,11069,11058,11046,11034,11023,11011,10999,
10988,10976,10964,10953,10941,10930,10918,10906,10895,10883,
10872,10860,10848,10837,10825,10813,10802,10790,10779,10767,
10755,10744,10732,10721,10709,10698,10686,10674,10663,10651,
10640,10628,10616,10605,10593,10582,10570,10559,10547,10535,
10524,10512,10501,10489,10478,10466,10454,10443,10431,10420,
10408,10397,10385,10373,10362,10350,10339,10327,10316,10304,
10293,10281,10270,10258,10246,10235,10223,10212,10200,10189,
10177,10166,10154,10143,10131,10120,10108,10097,10085,10074,
10062,10051,10039,10028,10016,10004, 9993, 9981, 9970, 9958,
 9947, 9935, 9924, 9912, 9901, 9889, 9878, 9867, 9855, 9844,
 9832, 9821, 9809, 9798, 9786, 9775, 9763, 9752, 9740, 9729,
 9717, 9706, 9694, 9683, 9671, 9660, 9648, 9637, 9626, 9614,
 9603, 9591, 9580, 9568, 9557, 9545, 9534, 9522, 9511, 9500,
 9488, 9477, 9465, 9454, 9442, 9431, 9419, 9408, 9397, 9385,
 9374, 9362, 9351, 9339, 9328, 9317, 9305, 9294, 9282, 9271,
 9260, 9248, 9237, 9225, 9214, 9202, 9191, 9180, 9168, 9157,
 9145, 9134, 9123, 9111, 9100, 9088, 9077, 9066, 9054, 9043,
 9032, 9020, 9009, 8997, 8986, 8975, 8963, 8952, 8941, 8929,
 8918, 8906, 8895, 8884, 8872, 8861, 8850, 8838, 8827, 8816,
 8804, 8793, 8782, 8770, 8759, 8747, 8736, 8725, 8713, 8702,
 8691, 8679, 8668, 8657, 8645, 8634, 8623, 8612, 8600, 8589,
 8578, 8566, 8555, 8544, 8532, 8521, 8510, 8498, 8487, 8476,
 8464, 8453, 8442, 8431, 8419, 8408, 8397, 8385, 8374, 8363,
 8352, 8340, 8329, 8318, 8306, 8295, 8284, 8273, 8261, 8250,
 8239, 8228, 8216, 8205, 8194, 8182, 8171, 8160, 8149, 8137,
 8126, 8115, 8104, 8093, 8081, 8070, 8059, 8048, 8036, 8025,
 8014, 8003, 7991, 7980, 7969, 7958, 7947, 7935, 7924, 7913,
 7902, 7890, 7879, 7868, 7857, 7846, 7834, 7823, 7812, 7801,
 7790, 7778, 7767, 7756, 7745, 7734, 7723, 7711, 7700, 7689,
 7678, 7667, 7656, 7644, 7633, 7622, 7611, 7600, 7589, 7577,
 7566, 7555, 7544, 7533, 7522, 7511, 7499, 7488, 7477, 7466,
 7455, 7444, 7433, 7422, 7410, 7399, 7388, 7377, 7366, 7355,
 7344, 7333, 7322, 7310, 7299, 7288, 7277, 7266, 7255, 7244,
 7233, 7222, 7211, 7200, 7188, 7177, 7166, 7155, 7144, 7133,
 7122, 7111, 7100, 7089, 7078, 7067, 7056, 7045, 7034, 7023,
 7012, 7001, 6989, 6978, 6967, 6956, 6945, 6934, 6923, 6912,
 6901, 6890, 6879, 6868, 6857, 6846, 6835, 6824, 6813, 6802,
 6791, 6780, 6769, 6758, 6747, 6736, 6725, 6714, 6703, 6692,
 6682, 6671, 6660, 6649, 6638, 6627, 6616, 6605, 6594, 6583,
 6572, 6561, 6550, 6539, 6528, 6517, 6506, 6496, 6485, 6474,
 6463, 6452, 6441, 6430, 6419, 6408, 6397, 6386, 6376, 6365,
 6354, 6343, 6332, 6321, 6310, 6299, 6289, 6278, 6267, 6256,
 6245, 6234, 6223, 6213, 6202, 6191, 6180, 6169, 6158, 6148,
 6137, 6126, 6115, 6104, 6093, 6083, 6072, 6061, 6050, 6039,
 6029, 6018, 6007, 5996, 5985, 5975, 5964, 5953, 5942, 5932,
 5921, 5910, 5899, 5889, 5878, 5867, 5856, 5846, 5835, 5824,
 5813, 5803, 5792, 5781, 5770, 5760, 5749, 5738, 5728, 5717,
 5706, 5695, 5685, 5674, 5663, 5653, 5642, 5631, 5621, 5610,
 5599, 5589, 5578, 5567, 5557, 5546, 5535, 5525, 5514, 5503,
 5493, 5482, 5472, 5461, 5450, 5440, 5429, 5418, 5408, 5397,
 5387, 5376, 5365, 5355, 5344, 5334, 5323, 5313, 5302, 5291,
 5281, 5270, 5260, 5249, 5239, 5228, 5218, 5207, 5196, 5186,
 5175, 5165, 5154, 5144, 5133, 5123, 5112, 5102, 5091, 5081,
 5070, 5060, 5049, 5039, 5028, 5018, 5007, 4997, 4987, 4976,
 4966, 4955, 4945, 4934, 4924, 4913, 4903, 4893, 4882, 4872,
 4861, 4851, 4841, 4830, 4820, 4809, 4799, 4789, 4778, 4768,
 4757, 4747, 4737, 4726, 4716, 4706, 4695, 4685, 4675, 4664,
 4654, 4644, 4633, 4623, 4613, 4602, 4592, 4582, 4572, 4561,
 4551, 4541, 4530, 4520, 4510, 4500, 4489, 4479, 4469, 4459,
 4448, 4438, 4428, 4418, 4407, 4397, 4387, 4377, 4367, 4356,
 4346, 4336, 4326, 4316, 4305, 4295, 4285, 4275, 4265, 4255,
 4245, 4234, 4224, 4214, 4204, 4194, 4184, 4174, 4163, 4153,
 4143, 4133, 4123, 4113, 4103, 4093, 4083, 4073, 4063, 4053,
 4043, 4033, 4022, 4012, 4002, 3992, 3982, 3972, 3962, 3952,
 3942, 3932, 3922, 3912, 3902, 3892, 3882, 3872, 3862, 3853,
 3843, 3833, 3823, 3813, 3803, 3793, 3783, 3773, 3763, 3753,
 3743, 3733, 3724, 3714, 3704, 3694, 3684, 3674, 3664, 3655,
 3645, 3635, 3625, 3615, 3605, 3596, 3586, 3576, 3566, 3556,
 3547, 3537, 3527, 3517, 3507, 3498, 3488, 3478, 3468, 3459,
 3449, 3439, 3430, 3420, 3410, 3400, 3391, 3381, 3371, 3362,
 3352, 3342, 3333, 3323, 3313, 3304, 3294, 3284, 3275, 3265,
 3256, 3246, 3236, 3227, 3217, 3208, 3198, 3188, 3179, 3169,
 3160, 3150, 3141, 3131, 3122, 3112, 3102, 3093, 3083, 3074,
 3064, 3055, 3046, 3036, 3027, 3017, 3008, 2998, 2989, 2979,
 2970, 2960, 2951, 2942, 2932, 2923, 2913, 2904, 2895, 2885,
 2876, 2867, 2857, 2848, 2839, 2829, 2820, 2811, 2801, 2792,
 2783, 2773, 2764, 2755, 2746, 2736, 2727, 2718, 2709, 2699,
 2690, 2681, 2672, 2662, 2653, 2644, 2635, 2626, 2616, 2607,
 2598, 2589, 2580, 2571, 2562, 2552, 2543, 2534, 2525, 2516,
 2507, 2498, 2489, 2480, 2471, 2462, 2452, 2443, 2434, 2425,
 2416, 2407, 2398, 2389, 2380, 2371, 2362, 2353, 2344, 2336,
 2327, 2318, 2309, 2300, 2291, 2282, 2273, 2264, 2255, 2246,
 2238, 2229, 2220, 2211, 2202, 2193, 2184, 2176, 2167, 2158,
 2149, 2140, 2132, 2123, 2114, 2105, 2097, 2088, 2079, 2070,
 2062, 2053, 2044, 2036, 2027, 2018, 2010, 2001, 1992, 1984,
 1975, 1966, 1958, 1949, 1941, 1932, 1923, 1915, 1906, 1898,
 1889, 1881, 1872, 1864, 1855, 1846, 1838, 1829, 1821, 1813,
 1804, 1796, 1787, 1779, 1770, 1762, 1753, 1745, 1737, 1728,
 1720, 1711, 1703, 1695, 1686, 1678, 1670, 1661, 1653, 1645,
 1636, 1628, 1620, 1612, 1603, 1595, 1587, 1579, 1570, 1562,
 1554, 1546, 1538, 1529, 1521, 1513, 1505, 1497, 1489, 1480,
 1472, 1464, 1456, 1448, 1440, 1432, 1424, 1416, 1408, 1400,
 1392, 1384, 1376, 1368, 1360, 1352, 1344, 1336, 1328, 1320,
 1312, 1304, 1296, 1288, 1280, 1272, 1265, 1257, 1249, 1241,
 1233, 1225, 1217, 1210, 1202, 1194, 1186, 1179, 1171, 1163,
 1155, 1148, 1140, 1132, 1124, 1117, 1109, 1101, 1094, 1086,
 1078, 1071, 1063, 1056, 1048, 1040, 1033, 1025, 1018, 1010,
 1003,  995,  988,  980,  973,  965,  958,  950,  943,  935,
  928,  920,  913,  906,  898,  891,  883,  876,  869,  861,
  854,  847,  839,  832,  825,  818,  810,  803,  796,  789,
  781,  774,  767,  760,  753,  745,  738,  731,  724,  717,
  710,  703,  696,  688,  681,  674,  667,  660,  653,  646,
  639,  632,  625,  618,  611,  604,  597,  590,  584,  577,
  570,  563,  556,  549,  542,  536,  529,  522,  515,  508,
  502,  495,  488,  481,  475,  468,  461,  454,  448,  441,
  434,  428,  421,  415,  408,  401,  395,  388,  382,  375,
  369,  362,  355,  349,  342,  336,  330,  323,  317,  310,
  304,  297,  291,  285,  278,  272,  266,  259,  253,  247,
  240,  234,  228,  222,  215,  209,  203,  197,  190,  184,
  178,  172,  166,  160,  154,  147,  141,  135,  129,  123,
  117,  111,  105,   99,   93,   87,   81,   75,   69,   63,
   57,   52,   46,   40,   34,   28,   22,   16,   11,    5
};

