Worked at 10am 2/28
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player
Revision 1:d988c10dcf0b, committed 2018-02-28
- Comitter:
- Josahty
- Date:
- Wed Feb 28 16:56:18 2018 +0000
- Parent:
- 0:0871fbbffcad
- Commit message:
- Working at 2/28 10am
Changed in this revision
diff -r 0871fbbffcad -r d988c10dcf0b 4DGL-uLCD-SE.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/4DGL-uLCD-SE.lib Wed Feb 28 16:56:18 2018 +0000 @@ -0,0 +1,1 @@ +http://os.mbed.com/users/sparkfun/code/4DGL-uLCD-SE/#e39a44de229a
diff -r 0871fbbffcad -r d988c10dcf0b SDFileSystem.lib --- a/SDFileSystem.lib Mon Feb 26 21:06:19 2018 +0000 +++ b/SDFileSystem.lib Wed Feb 28 16:56:18 2018 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/SDFileSystem/#8db0d3b02cec +https://os.mbed.com/teams/418012/code/SDFileSystem/#d2d4d300ade6
diff -r 0871fbbffcad -r d988c10dcf0b cylonbyc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cylonbyc.h Wed Feb 28 16:56:18 2018 +0000 @@ -0,0 +1,2030 @@ +/********************************************************************** +* Written by WAVToCode +* Date: Sat Oct 21 11:58:26 AM +* FileName: cylonbyc.C +* Interleaved: Yes +* Signed: No +* No. of channels: 1 +* No. of samples: 16128 +* Bits/Sample: 16 +**********************************************************************/ + +#define NUM_ELEMENTS 16128 + +const unsigned short sound_data[NUM_ELEMENTS] = { +32768, 32768, 32768, 32769, 32766, 32771, 32765, 32770, // 0-7 +32768, 32767, 32769, 32767, 32769, 32767, 32769, 32768, // 8-15 +32766, 32771, 32764, 32773, 32764, 32770, 32767, 32768, // 16-23 +32770, 32765, 32770, 32767, 32768, 32769, 32767, 32768, // 24-31 +32769, 32767, 32768, 32769, 32767, 32769, 32767, 32769, // 32-39 +32767, 32769, 32767, 32769, 32768, 32767, 32769, 32767, // 40-47 +32770, 32765, 32771, 32765, 32772, 32764, 32771, 32766, // 48-55 +32768, 32770, 32766, 32769, 32769, 32765, 32771, 32766, // 56-63 +32769, 32768, 32767, 32769, 32767, 32769, 32768, 32767, // 64-71 +32769, 32767, 32769, 32768, 32767, 32769, 32768, 32767, // 72-79 +32769, 32767, 32770, 32765, 32771, 32766, 32769, 32768, // 80-87 +32768, 32767, 32770, 32766, 32769, 32768, 32768, 32767, // 88-95 +32769, 32767, 32769, 32768, 32767, 32770, 32765, 32771, // 96-103 +32765, 32772, 32764, 32771, 32766, 32768, 32770, 32766, // 104-111 +32769, 32768, 32767, 32769, 32768, 32767, 32769, 32768, // 112-119 +32766, 32771, 32765, 32770, 32767, 32768, 32769, 32767, // 120-127 +32769, 32766, 32770, 32767, 32770, 32766, 32769, 32768, // 128-135 +32766, 32772, 32764, 32772, 32765, 32769, 32768, 32767, // 136-143 +32770, 32766, 32769, 32768, 32767, 32770, 32765, 32771, // 144-151 +32766, 32769, 32768, 32767, 32769, 32767, 32769, 32768, // 152-159 +32766, 32771, 32765, 32770, 32767, 32768, 32769, 32767, // 160-167 +32769, 32766, 32771, 32765, 32771, 32766, 32768, 32770, // 168-175 +32765, 32770, 32769, 32765, 32771, 32766, 32768, 32769, // 176-183 +32768, 32767, 32769, 32767, 32768, 32769, 32767, 32769, // 184-191 +32767, 32769, 32767, 32769, 32767, 32770, 32765, 32771, // 192-199 +32765, 32771, 32766, 32768, 32769, 32767, 32769, 32767, // 200-207 +32769, 32767, 32768, 32769, 32767, 32769, 32768, 32766, // 208-215 +32771, 32766, 32769, 32768, 32767, 32770, 32766, 32770, // 216-223 +32767, 32767, 32771, 32764, 32772, 32765, 32769, 32768, // 224-231 +32768, 32768, 32767, 32769, 32767, 32770, 32765, 32772, // 232-239 +32763, 32773, 32764, 32771, 32766, 32770, 32765, 32771, // 240-247 +32765, 32771, 32767, 32766, 32771, 32765, 32770, 32768, // 248-255 +32767, 32769, 32767, 32769, 32768, 32767, 32769, 32767, // 256-263 +32769, 32767, 32769, 32768, 32767, 32769, 32767, 32768, // 264-271 +32769, 32767, 32769, 32767, 32769, 32766, 32770, 32767, // 272-279 +32768, 32770, 32764, 32772, 32765, 32770, 32767, 32769, // 280-287 +32766, 32771, 32764, 32773, 32762, 32775, 32762, 32772, // 288-295 +32766, 32769, 32767, 32769, 32768, 32767, 32769, 32768, // 296-303 +32766, 32772, 32763, 32772, 32765, 32770, 32767, 32769, // 304-311 +32766, 32769, 32769, 32766, 32770, 32766, 32769, 32768, // 312-319 +32769, 32766, 32770, 32766, 32769, 32768, 32768, 32769, // 320-327 +32766, 32770, 32766, 32769, 32769, 32766, 32771, 32764, // 328-335 +32772, 32764, 32771, 32768, 32765, 32771, 32765, 32771, // 336-343 +32767, 32767, 32768, 32770, 32765, 32772, 32763, 32772, // 344-351 +32766, 32770, 32765, 32771, 32765, 32771, 32766, 32769, // 352-359 +32767, 32769, 32767, 32769, 32768, 32768, 32767, 32769, // 360-367 +32767, 32769, 32768, 32768, 32768, 32767, 32769, 32767, // 368-375 +32770, 32766, 32769, 32767, 32769, 32768, 32767, 32769, // 376-383 +32767, 32769, 32768, 32768, 32767, 32770, 32765, 32772, // 384-391 +32764, 32772, 32764, 32771, 32766, 32769, 32768, 32767, // 392-399 +32770, 32765, 32772, 32764, 32770, 32768, 32768, 32768, // 400-407 +32767, 32769, 32767, 32770, 32766, 32769, 32768, 32767, // 408-415 +32769, 32768, 32768, 32768, 32768, 32767, 32769, 32768, // 416-423 +32767, 32770, 32765, 32771, 32765, 32771, 32766, 32769, // 424-431 +32767, 32770, 32765, 32771, 32766, 32769, 32767, 32770, // 432-439 +32765, 32771, 32765, 32771, 32765, 32772, 32763, 32772, // 440-447 +32766, 32768, 32770, 32765, 32770, 32767, 32768, 32769, // 448-455 +32768, 32767, 32769, 32767, 32769, 32768, 32767, 32770, // 456-463 +32765, 32772, 32764, 32770, 32768, 32767, 32770, 32766, // 464-471 +32769, 32768, 32768, 32768, 32768, 32768, 32768, 32768, // 472-479 +32768, 32768, 32768, 32768, 32768, 32767, 32770, 32766, // 480-487 +32770, 32766, 32770, 32766, 32769, 32768, 32768, 32768, // 488-495 +32768, 32767, 32769, 32768, 32768, 32767, 32769, 32767, // 496-503 +32770, 32766, 32769, 32767, 32768, 32770, 32765, 32771, // 504-511 +32765, 32770, 32767, 32768, 32769, 32767, 32769, 32767, // 512-519 +32768, 32769, 32767, 32770, 32766, 32768, 32769, 32767, // 520-527 +32769, 32768, 32766, 32770, 32767, 32768, 32769, 32766, // 528-535 +32770, 32767, 32768, 32768, 32769, 32766, 32771, 32765, // 536-543 +32770, 32767, 32769, 32767, 32769, 32767, 32769, 32767, // 544-551 +32769, 32767, 32769, 32768, 32767, 32769, 32767, 32769, // 552-559 +32767, 32770, 32765, 32771, 32765, 32770, 32768, 32767, // 560-567 +32769, 32767, 32769, 32767, 32770, 32765, 32772, 32764, // 568-575 +32770, 32768, 32767, 32769, 32768, 32766, 32771, 32765, // 576-583 +32771, 32766, 32769, 32767, 32769, 32768, 32768, 32768, // 584-591 +32767, 32770, 32766, 32770, 32766, 32769, 32769, 32766, // 592-599 +32770, 32765, 32772, 32765, 32770, 32767, 32767, 32770, // 600-607 +32767, 32769, 32767, 32768, 32768, 32769, 32768, 32767, // 608-615 +32768, 32768, 32769, 32767, 32770, 32764, 32772, 32765, // 616-623 +32770, 32768, 32767, 32769, 32767, 32768, 32770, 32766, // 624-631 +32769, 32767, 32768, 32769, 32768, 32766, 32770, 32766, // 632-639 +32770, 32767, 32768, 32768, 32768, 32768, 32768, 32768, // 640-647 +32768, 32768, 32768, 32768, 32768, 32767, 32770, 32766, // 648-655 +32769, 32768, 32767, 32769, 32768, 32767, 32769, 32768, // 656-663 +32767, 32770, 32765, 32772, 32763, 32773, 32764, 32771, // 664-671 +32766, 32769, 32768, 32768, 32768, 32767, 32769, 32767, // 672-679 +32771, 32764, 32771, 32766, 32768, 32770, 32765, 32771, // 680-687 +32766, 32768, 32770, 32764, 32773, 32765, 32769, 32768, // 688-695 +32768, 32767, 32772, 32763, 32772, 32765, 32770, 32767, // 696-703 +32769, 32767, 32768, 32768, 32769, 32767, 32768, 32768, // 704-711 +32768, 32768, 32768, 32768, 32768, 32769, 32766, 32770, // 712-719 +32766, 32770, 32767, 32767, 32771, 32764, 32772, 32765, // 720-727 +32770, 32767, 32768, 32768, 32768, 32769, 32765, 32772, // 728-735 +32766, 32768, 32770, 32765, 32771, 32766, 32768, 32769, // 736-743 +32769, 32767, 32771, 32765, 32771, 32766, 32770, 32767, // 744-751 +32769, 32767, 32769, 32769, 32767, 32769, 32768, 32768, // 752-759 +32770, 32768, 32768, 32768, 32769, 32766, 32770, 32766, // 760-767 +32771, 32767, 32770, 32766, 32770, 32767, 32769, 32768, // 768-775 +32768, 32768, 32769, 32768, 32768, 32769, 32769, 32766, // 776-783 +32768, 32766, 32770, 32769, 32768, 32769, 32767, 32768, // 784-791 +32767, 32765, 32771, 32763, 32774, 32763, 32770, 32765, // 792-799 +32772, 32766, 32771, 32764, 32770, 32768, 32767, 32772, // 800-807 +32770, 32773, 32769, 32770, 32767, 32771, 32768, 32771, // 808-815 +32769, 32769, 32770, 32767, 32771, 32771, 32768, 32776, // 816-823 +32772, 32772, 32769, 32770, 32768, 32765, 32771, 32768, // 824-831 +32773, 32772, 32769, 32769, 32771, 32766, 32764, 32767, // 832-839 +32762, 32769, 32770, 32764, 32774, 32778, 32772, 32768, // 840-847 +32753, 32766, 32775, 32773, 32764, 32766, 32779, 32771, // 848-855 +32770, 32775, 32773, 32777, 32769, 32767, 32772, 32783, // 856-863 +32783, 32775, 32776, 32771, 32763, 32761, 32773, 32772, // 864-871 +32777, 32779, 32762, 32766, 32752, 32754, 32765, 32775, // 872-879 +32773, 32771, 32772, 32753, 32743, 32771, 32773, 32772, // 880-887 +32781, 32781, 32761, 32752, 32770, 32778, 32782, 32777, // 888-895 +32769, 32746, 32753, 32758, 32771, 32800, 32773, 32757, // 896-903 +32771, 32751, 32772, 32771, 32755, 32771, 32773, 32772, // 904-911 +32772, 32778, 32768, 32787, 32774, 32759, 32776, 32752, // 912-919 +32758, 32758, 32740, 32779, 32793, 32783, 32777, 32746, // 920-927 +32728, 32760, 32793, 32792, 32800, 32766, 32762, 32753, // 928-935 +32770, 32769, 32762, 32793, 32747, 32711, 32749, 32773, // 936-943 +32787, 32780, 32762, 32737, 32716, 32743, 32741, 32739, // 944-951 +32771, 32771, 32785, 32779, 32748, 32777, 32787, 32764, // 952-959 +32733, 32768, 32794, 32776, 32748, 32738, 32769, 32776, // 960-967 +32768, 32741, 32767, 32838, 32804, 32771, 32791, 32830, // 968-975 +32807, 32757, 32762, 32803, 32853, 32842, 32781, 32778, // 976-983 +32744, 32729, 32793, 32795, 32761, 32772, 32798, 32791, // 984-991 +32712, 32720, 32845, 32883, 32777, 32741, 32835, 32833, // 992-999 +32778, 32785, 32793, 32785, 32708, 32660, 32721, 32866, // 1000-1007 +32940, 32860, 32682, 32554, 32553, 32674, 32728, 32690, // 1008-1015 +32692, 32831, 32901, 32866, 32989, 33163, 33120, 32915, // 1016-1023 +32733, 32819, 32870, 32764, 32785, 32826, 32775, 32665, // 1024-1031 +32676, 32678, 32716, 32898, 33033, 32979, 32725, 32811, // 1032-1039 +33086, 33019, 32908, 32863, 33010, 32975, 32530, 32453, // 1040-1047 +32730, 32918, 32763, 32434, 32496, 32804, 32830, 32674, // 1048-1055 +32973, 33471, 33324, 32806, 32582, 32741, 32841, 32836, // 1056-1063 +32905, 32943, 32764, 32088, 31692, 31986, 32361, 32669, // 1064-1071 +32762, 32655, 32429, 32347, 32654, 33033, 33429, 33653, // 1072-1079 +33610, 33237, 32356, 31713, 31723, 32025, 32245, 32411, // 1080-1087 +32871, 33278, 33095, 32737, 32750, 33019, 32981, 32578, // 1088-1095 +32438, 32761, 33026, 33053, 33009, 33114, 33220, 32701, // 1096-1103 +32032, 31929, 32170, 32573, 32646, 32460, 32662, 32882, // 1104-1111 +32589, 32070, 32111, 32715, 32929, 32562, 32607, 33283, // 1112-1119 +33672, 33260, 32707, 32615, 32267, 31172, 30440, 30858, // 1120-1127 +31797, 32297, 32594, 33228, 33517, 33021, 32640, 33004, // 1128-1135 +33385, 33142, 33027, 33184, 32679, 31511, 31044, 31831, // 1136-1143 +32407, 32039, 32063, 32842, 32775, 31551, 31273, 32784, // 1144-1151 +34071, 33717, 33095, 33504, 33633, 32295, 31179, 31980, // 1152-1159 +33173, 32578, 31426, 31662, 32457, 32053, 31249, 31819, // 1160-1167 +32918, 32784, 32031, 32195, 33139, 33448, 33149, 33145, // 1168-1175 +32962, 31952, 31187, 31597, 32466, 33078, 33520, 33484, // 1176-1183 +32190, 29856, 28473, 29705, 32195, 34061, 35559, 36839, // 1184-1191 +36017, 32335, 28380, 27229, 28729, 30552, 32552, 35682, // 1192-1199 +37783, 36345, 33066, 30568, 28943, 27958, 28364, 30406, // 1200-1207 +33133, 35121, 36000, 35928, 34540, 32576, 31376, 30205, // 1208-1215 +29004, 29830, 32100, 33144, 32991, 33033, 33401, 33465, // 1216-1223 +32153, 30485, 31279, 33446, 33658, 32861, 33410, 34276, // 1224-1231 +33306, 30892, 29989, 31582, 31936, 30111, 30481, 33193, // 1232-1239 +34131, 33802, 34307, 34151, 32531, 31287, 31782, 33055, // 1240-1247 +32904, 31653, 32017, 33221, 32105, 30122, 31250, 34055, // 1248-1255 +33374, 29870, 30059, 34269, 35211, 31791, 31265, 35049, // 1256-1263 +35149, 28952, 26078, 31700, 36361, 33980, 32194, 34746, // 1264-1271 +34682, 28786, 23350, 25376, 32110, 34679, 34746, 39263, // 1272-1279 +41292, 33820, 26081, 25385, 27952, 31054, 34071, 36674, // 1280-1287 +38849, 37636, 33748, 31384, 28339, 24920, 26878, 30227, // 1288-1295 +30783, 33914, 37436, 36418, 36494, 38321, 36419, 34208, // 1296-1303 +34461, 33738, 31888, 30664, 31305, 32901, 29637, 24483, // 1304-1311 +28111, 35408, 35494, 33118, 33688, 33849, 32841, 31579, // 1312-1319 +31335, 35108, 39672, 39732, 37269, 34058, 28928, 24271, // 1320-1327 +22580, 24472, 29984, 35552, 37263, 35367, 31889, 29107, // 1328-1335 +27394, 25817, 27089, 32717, 37710, 39400, 40709, 42503, // 1336-1343 +42162, 37947, 32456, 28887, 25022, 20771, 21440, 25247, // 1344-1351 +27915, 31439, 33800, 32978, 35324, 40018, 40203, 39019, // 1352-1359 +39673, 38997, 37766, 36300, 32798, 29427, 26269, 23782, // 1360-1367 +25572, 26638, 24245, 26827, 31975, 31965, 33505, 38734, // 1368-1375 +39564, 38138, 38439, 37124, 35506, 35176, 33563, 32572, // 1376-1383 +32304, 29866, 28103, 27548, 26018, 25896, 26723, 26915, // 1384-1391 +28553, 29444, 29247, 34055, 39973, 36737, 30234, 33232, // 1392-1399 +40340, 38151, 30252, 30305, 36991, 35906, 25879, 19988, // 1400-1407 +21959, 25850, 29583, 33604, 36129, 34245, 28915, 25049, // 1408-1415 +24244, 25285, 28528, 33150, 36183, 36195, 34834, 33718, // 1416-1423 +31699, 26645, 20815, 20355, 23184, 24391, 28352, 33287, // 1424-1431 +34077, 36345, 38684, 36951, 36637, 36304, 32601, 29762, // 1432-1439 +28823, 28343, 27969, 26586, 23066, 21845, 28662, 34717, // 1440-1447 +31807, 29693, 34889, 40134, 38235, 34567, 39002, 45766, // 1448-1455 +45696, 41618, 37372, 32090, 23300, 16019, 18797, 26955, // 1456-1463 +31893, 33022, 33016, 32276, 28604, 24372, 22804, 25020, // 1464-1471 +32136, 38461, 42219, 47118, 49512, 48392, 43947, 34948, // 1472-1479 +25481, 17711, 13831, 14390, 16380, 20323, 23540, 27016, // 1480-1487 +32851, 35103, 37583, 42415, 43400, 44270, 45602, 44566, // 1488-1495 +41048, 34163, 30375, 28334, 22865, 20488, 20293, 20953, // 1496-1503 +25040, 25923, 26877, 34869, 39582, 37797, 42250, 48024, // 1504-1511 +41084, 35314, 38945, 37528, 34715, 33214, 28144, 30004, // 1512-1519 +30939, 21216, 19182, 26139, 29572, 31808, 29132, 23723, // 1520-1527 +37284, 54439, 35241, 13404, 35108, 54765, 36884, 19926, // 1528-1535 +30698, 49725, 43508, 20419, 17928, 27401, 26359, 24530, // 1536-1543 +30859, 39974, 40363, 32317, 27803, 27038, 27194, 28033, // 1544-1551 +30305, 35720, 38256, 38210, 37847, 32263, 26825, 23905, // 1552-1559 +19023, 16172, 18760, 25199, 30177, 33257, 38792, 42163, // 1560-1567 +41334, 39213, 36603, 35014, 29888, 22923, 22976, 25544, // 1568-1575 +22746, 17631, 20013, 27567, 29152, 28569, 28893, 31100, // 1576-1583 +37479, 34750, 28267, 35166, 44148, 46443, 43388, 36275, // 1584-1591 +29513, 19295, 12114, 15896, 22079, 29423, 34561, 34999, // 1592-1599 +36289, 32048, 26001, 25809, 25416, 30035, 38936, 42506, // 1600-1607 +47273, 52275, 49283, 43609, 37477, 27890, 20573, 17306, // 1608-1615 +13333, 14746, 21872, 24376, 27252, 33471, 37244, 40836, // 1616-1623 +42631, 43046, 44759, 43932, 42621, 40048, 35559, 31485, // 1624-1631 +24241, 22133, 25408, 21801, 20680, 25525, 27496, 29582, // 1632-1639 +35254, 44061, 45643, 41036, 46250, 48317, 40396, 38766, // 1640-1647 +38214, 35658, 33415, 27680, 28040, 29209, 22765, 22411, // 1648-1655 +24839, 26634, 34600, 29444, 19823, 40727, 54291, 27703, // 1656-1663 +20450, 46606, 49281, 29916, 25068, 38689, 48460, 34377, // 1664-1671 +20320, 28979, 32612, 19586, 16751, 32517, 43045, 36351, // 1672-1679 +30865, 32000, 30579, 28384, 25672, 28065, 36031, 37378, // 1680-1687 +37848, 38365, 31319, 27142, 24199, 17956, 19111, 23664, // 1688-1695 +25586, 28970, 33934, 40319, 42591, 39421, 41458, 44059, // 1696-1703 +37457, 30237, 26732, 24790, 27590, 26681, 19101, 21020, // 1704-1711 +29645, 31549, 30525, 30764, 33682, 35418, 30592, 30556, // 1712-1719 +37959, 42090, 44058, 44132, 39855, 30739, 16811, 9378, // 1720-1727 +12906, 20897, 31406, 36627, 34332, 32723, 29868, 24910, // 1728-1735 +23202, 25910, 33025, 40547, 44851, 49070, 53023, 50724, // 1736-1743 +41491, 33094, 28821, 22793, 14954, 13260, 18634, 23256, // 1744-1751 +23946, 26454, 34008, 40503, 41181, 41477, 43533, 41803, // 1752-1759 +39561, 40434, 39093, 36443, 33789, 28305, 23316, 19409, // 1760-1767 +17215, 21397, 24975, 23399, 27168, 36106, 39573, 40016, // 1768-1775 +43296, 45230, 43581, 41430, 39705, 38138, 34773, 30112, // 1776-1783 +30184, 31983, 28486, 25894, 25743, 23035, 27579, 36099, // 1784-1791 +28991, 24431, 42611, 49735, 33135, 31385, 46003, 44922, // 1792-1799 +32432, 29963, 37138, 41485, 37275, 32426, 31354, 23834, // 1800-1807 +14602, 22122, 38157, 43921, 42590, 38930, 31439, 25271, // 1808-1815 +21673, 20279, 27282, 37225, 39508, 39860, 41170, 36140, // 1816-1823 +28984, 23977, 17147, 15081, 20306, 21231, 21287, 30694, // 1824-1831 +39412, 40490, 42404, 43669, 38992, 35471, 32841, 24395, // 1832-1839 +20261, 26416, 25908, 16279, 18138, 29782, 30556, 24727, // 1840-1847 +29299, 37970, 36123, 28836, 30064, 38683, 43389, 43604, // 1848-1855 +44376, 39872, 26714, 15049, 10812, 12419, 21497, 33307, // 1856-1863 +38110, 37063, 33393, 26221, 21693, 22495, 23412, 28245, // 1864-1871 +39720, 47951, 50675, 52633, 50361, 43912, 38280, 31294, // 1872-1879 +22752, 17266, 15363, 17252, 20830, 21928, 26388, 37131, // 1880-1887 +43205, 42719, 43458, 43382, 41733, 42729, 42569, 39698, // 1888-1895 +37583, 32301, 23297, 17754, 16600, 18686, 23384, 25948, // 1896-1903 +28399, 33970, 35643, 35268, 41222, 45699, 43912, 44924, // 1904-1911 +46724, 42100, 35256, 30501, 29772, 31217, 26135, 20323, // 1912-1919 +25426, 28055, 22267, 27057, 36223, 30157, 26078, 38088, // 1920-1927 +43757, 35502, 32992, 40698, 45699, 40645, 31814, 32644, // 1928-1935 +42852, 45860, 34952, 21476, 17438, 24210, 33232, 39167, // 1936-1943 +46272, 49890, 39060, 23071, 19303, 24953, 30423, 36665, // 1944-1951 +43142, 46198, 46527, 42381, 33998, 29072, 27499, 21951, // 1952-1959 +17381, 21226, 25389, 26666, 33288, 40650, 42052, 43773, // 1960-1967 +44679, 37916, 30392, 26749, 20942, 17329, 19406, 17659, // 1968-1975 +16453, 24359, 29418, 26951, 29431, 37131, 39500, 35762, // 1976-1983 +32601, 35104, 41296, 43487, 42780, 41450, 31958, 18839, // 1984-1991 +13620, 13772, 17636, 28493, 37938, 38595, 36274, 31868, // 1992-1999 +25554, 24977, 27681, 29927, 37044, 46170, 49838, 50301, // 2000-2007 +48959, 43404, 38132, 33845, 26614, 20030, 16699, 16348, // 2008-2015 +18930, 20944, 23114, 31675, 42713, 46882, 46074, 44019, // 2016-2023 +41846, 41646, 40204, 37071, 37093, 36296, 29752, 23069, // 2024-2031 +20591, 21042, 23493, 25802, 28468, 33600, 35851, 33692, // 2032-2039 +37070, 43060, 41978, 41609, 44124, 40950, 34541, 31765, // 2040-2047 +31640, 29603, 27715, 26661, 25342, 25453, 24029, 24984, // 2048-2055 +30997, 30678, 25100, 30472, 43220, 41093, 27697, 28087, // 2056-2063 +40196, 40183, 28314, 27271, 40240, 47817, 38188, 22636, // 2064-2071 +16111, 17667, 23539, 33423, 47389, 54627, 43550, 26563, // 2072-2079 +16950, 18498, 27575, 36015, 45345, 50488, 48137, 44194, // 2080-2087 +37139, 27794, 22650, 23466, 20064, 15818, 26738, 37535, // 2088-2095 +38820, 45859, 52427, 51282, 48675, 43353, 36637, 32088, // 2096-2103 +26559, 21371, 21843, 21468, 16089, 18456, 27265, 28486, // 2104-2111 +27799, 34196, 41344, 39873, 31852, 29635, 37690, 46342, // 2112-2119 +48107, 47587, 43694, 30042, 16307, 13046, 17139, 24696, // 2120-2127 +33020, 36417, 34943, 31569, 24932, 21240, 25807, 30854, // 2128-2135 +34157, 41081, 49281, 53378, 53764, 51060, 46595, 39752, // 2136-2143 +27472, 17376, 13432, 11445, 12455, 15608, 20966, 28967, // 2144-2151 +35858, 40638, 45990, 48579, 44157, 43068, 46623, 44106, // 2152-2159 +39282, 34814, 29466, 26338, 21596, 16505, 20875, 27610, // 2160-2167 +26423, 26808, 32362, 35896, 37152, 39088, 42880, 44552, // 2168-2175 +42356, 38341, 33914, 32454, 32726, 30134, 26641, 26610, // 2176-2183 +25246, 21849, 23204, 25487, 27041, 27133, 23556, 26112, // 2184-2191 +36217, 42331, 37115, 28302, 30995, 37885, 33291, 27204, // 2192-2199 +35844, 49586, 48869, 31591, 15758, 14545, 16312, 20035, // 2200-2207 +35858, 50324, 49032, 31806, 14102, 12226, 18115, 24695, // 2208-2215 +34712, 45181, 50255, 46044, 38024, 31218, 24201, 20136, // 2216-2223 +18635, 15307, 17003, 26572, 33298, 38541, 47426, 51096, // 2224-2231 +48787, 46540, 41525, 34135, 29120, 26977, 26843, 26740, // 2232-2239 +24776, 23302, 25269, 27907, 29495, 35628, 43711, 45430, // 2240-2247 +41619, 34874, 32947, 39934, 45714, 47956, 46408, 37139, // 2248-2255 +24641, 14718, 13746, 21330, 29845, 35910, 36520, 33649, // 2256-2263 +28987, 23000, 22894, 27159, 31773, 38382, 44544, 49459, // 2264-2271 +52736, 53407, 51839, 45368, 36030, 28423, 20647, 13622, // 2272-2279 +12177, 14865, 18157, 23804, 32433, 38430, 41351, 44887, // 2280-2287 +45346, 44557, 47556, 47446, 43576, 42116, 35233, 23461, // 2288-2295 +21759, 22732, 19280, 21258, 24446, 27424, 29481, 28191, // 2296-2303 +35389, 43708, 42773, 41533, 43496, 44565, 37853, 30930, // 2304-2311 +36009, 42004, 36689, 28962, 27837, 25731, 19983, 19698, // 2312-2319 +26699, 28383, 22072, 25304, 34781, 38430, 37819, 31567, // 2320-2327 +29741, 35101, 35086, 33757, 38913, 47106, 51490, 44020, // 2328-2335 +26023, 15119, 14228, 15669, 27818, 43788, 47980, 40351, // 2336-2343 +24916, 13816, 14155, 19147, 27057, 38259, 45126, 46443, // 2344-2351 +43296, 32906, 24722, 21238, 17468, 15736, 15584, 20752, // 2352-2359 +29183, 34642, 40598, 46405, 47304, 44142, 43405, 39919, // 2360-2367 +29756, 25150, 25561, 24307, 21566, 18929, 19478, 19800, // 2368-2375 +19629, 24977, 34222, 41120, 43061, 38776, 33945, 38169, // 2376-2383 +45409, 48419, 49791, 46654, 36109, 22294, 13844, 16665, // 2384-2391 +26741, 34087, 35951, 35857, 31155, 24283, 20931, 21279, // 2392-2399 +27523, 35858, 42191, 49005, 54329, 56276, 55716, 51121, // 2400-2407 +41395, 32786, 26297, 16234, 12218, 14418, 14030, 19197, // 2408-2415 +26727, 33972, 40500, 40732, 45308, 45618, 41010, 46674, // 2416-2423 +47877, 43146, 37559, 31569, 28546, 22636, 22048, 23388, // 2424-2431 +23253, 25299, 23859, 30385, 37336, 37675, 43009, 45834, // 2432-2439 +45758, 43963, 40914, 39983, 38438, 40231, 41346, 37388, // 2440-2447 +32927, 27660, 21982, 21535, 24326, 24316, 26208, 28961, // 2448-2455 +31204, 38078, 43732, 37669, 28172, 33649, 39734, 37260, // 2456-2463 +40278, 44662, 51638, 51178, 32778, 18764, 16690, 19690, // 2464-2471 +24905, 33662, 44676, 43507, 28765, 16905, 16841, 21448, // 2472-2479 +25472, 33020, 43991, 50225, 46786, 39006, 31111, 25566, // 2480-2487 +19526, 12069, 11897, 16010, 22725, 32283, 38776, 42992, // 2488-2495 +43773, 43653, 44636, 41054, 34174, 28255, 23490, 20666, // 2496-2503 +19134, 15943, 15025, 17671, 20834, 23123, 25799, 35777, // 2504-2511 +44144, 40149, 33070, 36372, 46869, 48402, 47163, 46554, // 2512-2519 +37382, 22237, 8518, 10122, 20346, 28953, 35368, 35551, // 2520-2527 +34758, 28020, 23171, 25067, 26070, 34398, 40990, 47943, // 2528-2535 +55190, 54955, 57963, 53583, 44207, 36674, 26546, 21987, // 2536-2543 +17264, 14918, 17064, 17301, 21565, 28163, 34509, 41253, // 2544-2551 +45136, 43437, 41370, 42043, 41238, 40324, 35841, 31494, // 2552-2559 +31253, 26593, 23327, 22682, 20162, 20790, 20931, 24805, // 2560-2567 +35694, 38255, 37173, 43015, 45157, 41860, 39196, 39864, // 2568-2575 +40849, 37666, 35270, 32923, 30996, 28979, 22100, 20301, // 2576-2583 +21536, 17115, 19814, 28572, 28240, 32447, 45750, 41145, // 2584-2591 +27995, 30275, 37085, 39091, 37925, 41013, 51877, 53080, // 2592-2599 +38031, 24933, 21105, 21040, 26746, 37960, 47051, 45228, // 2600-2607 +35127, 26827, 20718, 21679, 29536, 35792, 42466, 49009, // 2608-2615 +52263, 48616, 37159, 29507, 26429, 16839, 9834, 13915, // 2616-2623 +17511, 24482, 36873, 43577, 45618, 44013, 44467, 46364, // 2624-2631 +41804, 35812, 30818, 27071, 21806, 15918, 13758, 13457, // 2632-2639 +18860, 24985, 28046, 34892, 43023, 44802, 37455, 32706, // 2640-2647 +38783, 45719, 45437, 40803, 36371, 27467, 12817, 6549, // 2648-2655 +15102, 25360, 31138, 32499, 30394, 30196, 26217, 23195, // 2656-2663 +25179, 27583, 36644, 42229, 45012, 51593, 54120, 55162, // 2664-2671 +48834, 40282, 34205, 24927, 21341, 19882, 20248, 21954, // 2672-2679 +20477, 24103, 31061, 37669, 40482, 41843, 45931, 46500, // 2680-2687 +44752, 42306, 39656, 35129, 29614, 29251, 28913, 26620, // 2688-2695 +23692, 21315, 23510, 28586, 33491, 35378, 37895, 42553, // 2696-2703 +41714, 37034, 35831, 37663, 38112, 37047, 34726, 30327, // 2704-2711 +26988, 26107, 25243, 25406, 26090, 23852, 25477, 31278, // 2712-2719 +31068, 32284, 42014, 46002, 35259, 26950, 31941, 35461, // 2720-2727 +33537, 34517, 42093, 50742, 44412, 26854, 17739, 17970, // 2728-2735 +21829, 31799, 42075, 43820, 37740, 26187, 16050, 14981, // 2736-2743 +22495, 32581, 40917, 47552, 49004, 45198, 37250, 28825, // 2744-2751 +27029, 24343, 20496, 19715, 17094, 19475, 29271, 40288, // 2752-2759 +46095, 45066, 45889, 48560, 47035, 38540, 30258, 29145, // 2760-2767 +25529, 18398, 12695, 10717, 16943, 23052, 26445, 34429, // 2768-2775 +44420, 50423, 47509, 39164, 37097, 42439, 45487, 43090, // 2776-2783 +38223, 31058, 21888, 12362, 10182, 19556, 29107, 32472, // 2784-2791 +31277, 28895, 29729, 28619, 27084, 31778, 35563, 38052, // 2792-2799 +44231, 46584, 45545, 47986, 48496, 42999, 32141, 22605, // 2800-2807 +21841, 19870, 14930, 16266, 19547, 21598, 27022, 35890, // 2808-2815 +38916, 38429, 43645, 46026, 43816, 41248, 37611, 35118, // 2816-2823 +30709, 26851, 26537, 27550, 28657, 25885, 24666, 29359, // 2824-2831 +33184, 34557, 37993, 42515, 44125, 42800, 38188, 36066, // 2832-2839 +38168, 37185, 35694, 33091, 28228, 25106, 24260, 27374, // 2840-2847 +27864, 24761, 27956, 34720, 34693, 29343, 34210, 45791, // 2848-2855 +44461, 34406, 30288, 34719, 37799, 34012, 35991, 46225, // 2856-2863 +48912, 37596, 21396, 15098, 22329, 31214, 38662, 46468, // 2864-2871 +44440, 32884, 21845, 15656, 19638, 30160, 39841, 49232, // 2872-2879 +52933, 46679, 37173, 30288, 25883, 23145, 22538, 22726, // 2880-2887 +22061, 22772, 29325, 38195, 42832, 45259, 47134, 48140, // 2888-2895 +45630, 38266, 31950, 25975, 22926, 25747, 21967, 12064, // 2896-2903 +13007, 24927, 28569, 24027, 31299, 47217, 54873, 47783, // 2904-2911 +36928, 37530, 40748, 38792, 37954, 35052, 25805, 15796, // 2912-2919 +12070, 15511, 23936, 31903, 33686, 32785, 32134, 30316, // 2920-2927 +29773, 31741, 34644, 39569, 44428, 45354, 44033, 42026, // 2928-2935 +40874, 38913, 32032, 24902, 20841, 16227, 10553, 9332, // 2936-2943 +13950, 18282, 23058, 31000, 36964, 38461, 38961, 40208, // 2944-2951 +40650, 39472, 36415, 32949, 31192, 28689, 23122, 19151, // 2952-2959 +20964, 24701, 27481, 29414, 30672, 34036, 38586, 41066, // 2960-2967 +41941, 43473, 43488, 39677, 36308, 33744, 32052, 32300, // 2968-2975 +29794, 26110, 26491, 28370, 25233, 21771, 26535, 33400, // 2976-2983 +34573, 32028, 35438, 44484, 44956, 37547, 35260, 41226, // 2984-2991 +43103, 36758, 36146, 41433, 43431, 38903, 29908, 23537, // 2992-2999 +19823, 21416, 32262, 43020, 44301, 36968, 28446, 21229, // 3000-3007 +17458, 24508, 37510, 45277, 47781, 46878, 41009, 31784, // 3008-3015 +22829, 18687, 20724, 22391, 21140, 24287, 34049, 40728, // 3016-3023 +41154, 43315, 48346, 50734, 47793, 42502, 37191, 28611, // 3024-3031 +22184, 25606, 27604, 16031, 8821, 23079, 34146, 24333, // 3032-3039 +19223, 36804, 56676, 53748, 37291, 32808, 40543, 44885, // 3040-3047 +44725, 44953, 38987, 24226, 11676, 11458, 22785, 34715, // 3048-3055 +37749, 34161, 33605, 35086, 30209, 25403, 30519, 40553, // 3056-3063 +47026, 48381, 47353, 46082, 43895, 39847, 35085, 30606, // 3064-3071 +26876, 22689, 16707, 13902, 17793, 22710, 24363, 26997, // 3072-3079 +32986, 36777, 36443, 37377, 40195, 39469, 35677, 33572, // 3080-3087 +32186, 28720, 23454, 20115, 20988, 21247, 19862, 22209, // 3088-3095 +27286, 29986, 31440, 35151, 39003, 38757, 35370, 34120, // 3096-3103 +35898, 35515, 31637, 29614, 29986, 27462, 25076, 27436, // 3104-3111 +28080, 24033, 22728, 27057, 30635, 30134, 30496, 35464, // 3112-3119 +39443, 35876, 31231, 34921, 41171, 40087, 35046, 33780, // 3120-3127 +36692, 40758, 40577, 32521, 23872, 22489, 26881, 32636, // 3128-3135 +37325, 39697, 38230, 31829, 24663, 25124, 32541, 37826, // 3136-3143 +40481, 42640, 39698, 32429, 27201, 24483, 23565, 25488, // 3144-3151 +27594, 27536, 28360, 33168, 39621, 44851, 49028, 49054, // 3152-3159 +44364, 40857, 39742, 36260, 27940, 23792, 28667, 26161, // 3160-3167 +14051, 17433, 36298, 37745, 20174, 20866, 45048, 58759, // 3168-3175 +47781, 31258, 28767, 35766, 41701, 47442, 47196, 33123, // 3176-3183 +15617, 9457, 15341, 25910, 34853, 37402, 34446, 30858, // 3184-3191 +28437, 28632, 31775, 35590, 40363, 46268, 49540, 47570, // 3192-3199 +44797, 46025, 45515, 39479, 33364, 28222, 23199, 19299, // 3200-3207 +17129, 19086, 22843, 25263, 29540, 34497, 35956, 37201, // 3208-3215 +40240, 39686, 36361, 36072, 37172, 35978, 32049, 27676, // 3216-3223 +24476, 21469, 19914, 22077, 27314, 31680, 32570, 33364, // 3224-3231 +35692, 36544, 36170, 36247, 35479, 34829, 34824, 32793, // 3232-3239 +30848, 28898, 25273, 23968, 23930, 22521, 22339, 24167, // 3240-3247 +25257, 25830, 28596, 30922, 34093, 36837, 31461, 28486, // 3248-3255 +36837, 43138, 38782, 31476, 30803, 35591, 39970, 39769, // 3256-3263 +33989, 27781, 23650, 23205, 29233, 36697, 39415, 37725, // 3264-3271 +32693, 27747, 29047, 34044, 38393, 42140, 42139, 37905, // 3272-3279 +32178, 28228, 26597, 26316, 28440, 27687, 26852, 32321, // 3280-3287 +36732, 37701, 38986, 44280, 48781, 44620, 39302, 35916, // 3288-3295 +32664, 29005, 24534, 26476, 26671, 18080, 18621, 30901, // 3296-3303 +33015, 23332, 26356, 44327, 56181, 49885, 31968, 23445, // 3304-3311 +28219, 36775, 46840, 49879, 40402, 23099, 8496, 7453, // 3312-3319 +18341, 32135, 39324, 39001, 35673, 28559, 23050, 24695, // 3320-3327 +30562, 37807, 43265, 45084, 45315, 45090, 42532, 38630, // 3328-3335 +36485, 33673, 28804, 24687, 21656, 19124, 17856, 20321, // 3336-3343 +27554, 34546, 38204, 39904, 40743, 41370, 40465, 40047, // 3344-3351 +41572, 41493, 39992, 35757, 28982, 25104, 24125, 24037, // 3352-3359 +24774, 28827, 35271, 37689, 36731, 35460, 35701, 39136, // 3360-3367 +41892, 40820, 39430, 38573, 33481, 28012, 27373, 28907, // 3368-3375 +29139, 23489, 18758, 22060, 24636, 22990, 23629, 27939, // 3376-3383 +26933, 25678, 31468, 28375, 23386, 31775, 39368, 35774, // 3384-3391 +26499, 25833, 33740, 37921, 37160, 32003, 28285, 25476, // 3392-3399 +21552, 27385, 36023, 38362, 37133, 31654, 30296, 33695, // 3400-3407 +33154, 35772, 42618, 44132, 39320, 30485, 26259, 27562, // 3408-3415 +25965, 27301, 29808, 29877, 32219, 32040, 34311, 40908, // 3416-3423 +44545, 45016, 41432, 38792, 35591, 31248, 30367, 26912, // 3424-3431 +26638, 27507, 21032, 21647, 32320, 37047, 31053, 31893, // 3432-3439 +47266, 56074, 47087, 31055, 24048, 29232, 37219, 45766, // 3440-3447 +49853, 39512, 18832, 5730, 9384, 22696, 35675, 40645, // 3448-3455 +39561, 34920, 27058, 25143, 29182, 34252, 40409, 44477, // 3456-3463 +45530, 43240, 39801, 38365, 38162, 37761, 32538, 25243, // 3464-3471 +22800, 21454, 19247, 18741, 20207, 25990, 34536, 39160, // 3472-3479 +39559, 39844, 41278, 41807, 39728, 37812, 38927, 39116, // 3480-3487 +33509, 27439, 25675, 24592, 23214, 23811, 28964, 34758, // 3488-3495 +37644, 40783, 40476, 38924, 39988, 40607, 41797, 40220, // 3496-3503 +37458, 33770, 28346, 29119, 27664, 21041, 19818, 23261, // 3504-3511 +26554, 23281, 19611, 27130, 34745, 28345, 25759, 37559, // 3512-3519 +32816, 20356, 33315, 50746, 46604, 24124, 12549, 26990, // 3520-3527 +42720, 47302, 39405, 24181, 13330, 11228, 24673, 40647, // 3528-3535 +43991, 37656, 26868, 23053, 26158, 31172, 38635, 41697, // 3536-3543 +38747, 33438, 29096, 27635, 24898, 21598, 24210, 29994, // 3544-3551 +32600, 32639, 31211, 32941, 38781, 42247, 42642, 41800, // 3552-3559 +41866, 37555, 29260, 27182, 26043, 26399, 28618, 23171, // 3560-3567 +22363, 32895, 37583, 29488, 27266, 42372, 55347, 51842, // 3568-3575 +36893, 24751, 26224, 34743, 44860, 50941, 42173, 23132, // 3576-3583 +9054, 9062, 21501, 34433, 37643, 35803, 32824, 27894, // 3584-3591 +26717, 29158, 34168, 41121, 43522, 43561, 43386, 40989, // 3592-3599 +39493, 38654, 34993, 30084, 27240, 26022, 24308, 20030, // 3600-3607 +19156, 25391, 29154, 32373, 37192, 37580, 40985, 44605, // 3608-3615 +40878, 38995, 39160, 38037, 37650, 32379, 26175, 25392, // 3616-3623 +23273, 23064, 27424, 28293, 29824, 34857, 36139, 35847, // 3624-3631 +39007, 41103, 41794, 41637, 38343, 38520, 34964, 28696, // 3632-3639 +34291, 31723, 20656, 22353, 29035, 31476, 21619, 13820, // 3640-3647 +28658, 43589, 35808, 23295, 31025, 34578, 25736, 40111, // 3648-3655 +57315, 49431, 26895, 9199, 23175, 50361, 58336, 48828, // 3656-3663 +28089, 11076, 10664, 22052, 38306, 50212, 43812, 27474, // 3664-3671 +20842, 21552, 28569, 35570, 35374, 36602, 32359, 24497, // 3672-3679 +23187, 22718, 23392, 25693, 28456, 28787, 27175, 29407, // 3680-3687 +32496, 37666, 40843, 37663, 37354, 36743, 32280, 31465, // 3688-3695 +31069, 24828, 21503, 26724, 29785, 28653, 31066, 33750, // 3696-3703 +28382, 23824, 35389, 51759, 53372, 39765, 24776, 24304, // 3704-3711 +35258, 43377, 45708, 40961, 26226, 12587, 12936, 22917, // 3712-3719 +32215, 34440, 32648, 32818, 31235, 27489, 29079, 36180, // 3720-3727 +39715, 40332, 43512, 45290, 44682, 38794, 31871, 33789, // 3728-3735 +33099, 27618, 26233, 23914, 22481, 24739, 24213, 24869, // 3736-3743 +32206, 36261, 36602, 40265, 41007, 40078, 39702, 38594, // 3744-3751 +38200, 33183, 29509, 31147, 30059, 27246, 25163, 25547, // 3752-3759 +27367, 30253, 35015, 34355, 33473, 39457, 42753, 41877, // 3760-3767 +39146, 36523, 39212, 35895, 32006, 38959, 32410, 20866, // 3768-3775 +24438, 27336, 27617, 19458, 16397, 35977, 41188, 24914, // 3776-3783 +17890, 30936, 42606, 33858, 36854, 51375, 44521, 26998, // 3784-3791 +16265, 25763, 49308, 59757, 50165, 30536, 15911, 12779, // 3792-3799 +22104, 39455, 49682, 44221, 28948, 21267, 24828, 29321, // 3800-3807 +32529, 35366, 37110, 34064, 29520, 27957, 26781, 26361, // 3808-3815 +27787, 32684, 34577, 32187, 31685, 30711, 34646, 38440, // 3816-3823 +35712, 35313, 32906, 29408, 27850, 25143, 23407, 22166, // 3824-3831 +26097, 27871, 24518, 30907, 34453, 25954, 23108, 32359, // 3832-3839 +45384, 47659, 37239, 28984, 28482, 31718, 36667, 41366, // 3840-3847 +39338, 26618, 15524, 18211, 27055, 31289, 31347, 32222, // 3848-3855 +33493, 31945, 31534, 35178, 38094, 38603, 40547, 43391, // 3856-3863 +44379, 41290, 34710, 34593, 36862, 30963, 26125, 24823, // 3864-3871 +25180, 27498, 26515, 25347, 26696, 32937, 37904, 34517, // 3872-3879 +35518, 39018, 37963, 37134, 35340, 34292, 32493, 29962, // 3880-3887 +28927, 26455, 26506, 28326, 28393, 28810, 29655, 30864, // 3888-3895 +31694, 34208, 39700, 42312, 39332, 36897, 37494, 37338, // 3896-3903 +36683, 34944, 31580, 27990, 26683, 29348, 25540, 16499, // 3904-3911 +19737, 31583, 36542, 31657, 22450, 22420, 35779, 39593, // 3912-3919 +34868, 43522, 47174, 36456, 27928, 25397, 34446, 48234, // 3920-3927 +53164, 45456, 28742, 19601, 22013, 30748, 41389, 44308, // 3928-3935 +37696, 27128, 23485, 27982, 32072, 35434, 36600, 34824, // 3936-3943 +32396, 31316, 32212, 31913, 30576, 31712, 35995, 36823, // 3944-3951 +34133, 33133, 33285, 37655, 38475, 33012, 33741, 33851, // 3952-3959 +29660, 27947, 26950, 26522, 25087, 25526, 28936, 30231, // 3960-3967 +32374, 31051, 25389, 28200, 35718, 39342, 38861, 33444, // 3968-3975 +28611, 28011, 31236, 34688, 33434, 30616, 23832, 18338, // 3976-3983 +21780, 24628, 28659, 31161, 26188, 26235, 30657, 33051, // 3984-3991 +33057, 32624, 36385, 38879, 36791, 36831, 41108, 40159, // 3992-3999 +35121, 34106, 31974, 31199, 29707, 26931, 31101, 31262, // 4000-4007 +29476, 32136, 34465, 36680, 32891, 33871, 41343, 38884, // 4008-4015 +36051, 36614, 34537, 33719, 31819, 30069, 32916, 33417, // 4016-4023 +29666, 28108, 27831, 31103, 35203, 34208, 34830, 34307, // 4024-4031 +33713, 36663, 36532, 35562, 32867, 31629, 32824, 30664, // 4032-4039 +30670, 29603, 26020, 21335, 18620, 27700, 35979, 34848, // 4040-4047 +29306, 21360, 22336, 34225, 41550, 36739, 34123, 37607, // 4048-4055 +36946, 35894, 31646, 30303, 41802, 47462, 40816, 31970, // 4056-4063 +26011, 26431, 30094, 35370, 40649, 37384, 26843, 22278, // 4064-4071 +25982, 31752, 35218, 32832, 30711, 31737, 32090, 32301, // 4072-4079 +31807, 33386, 35428, 34395, 34444, 35103, 35744, 36926, // 4080-4087 +37115, 36269, 34185, 32546, 32343, 31049, 29350, 30412, // 4088-4095 +29656, 29694, 32870, 27514, 27353, 38366, 37587, 31838, // 4096-4103 +32361, 36121, 40505, 37446, 33076, 32548, 32307, 31942, // 4104-4111 +30608, 33628, 33352, 24852, 22532, 24146, 25440, 30211, // 4112-4119 +32604, 32256, 30822, 29066, 30653, 32259, 34102, 37496, // 4120-4127 +37488, 36033, 36361, 37071, 36281, 33656, 32266, 32347, // 4128-4135 +31113, 28797, 27691, 27154, 26801, 27541, 28165, 31405, // 4136-4143 +32368, 28219, 30552, 33807, 33034, 33532, 31898, 32785, // 4144-4151 +33795, 30854, 31140, 32647, 34538, 33057, 28960, 31204, // 4152-4159 +33806, 35774, 37954, 35299, 33120, 33487, 36067, 37912, // 4160-4167 +34391, 32301, 33033, 32380, 31434, 30666, 30156, 26952, // 4168-4175 +23761, 26470, 31128, 33891, 31029, 24923, 24389, 29210, // 4176-4183 +37803, 39316, 31036, 31907, 38655, 41055, 39224, 32000, // 4184-4191 +31359, 39483, 44845, 42872, 34895, 27955, 25358, 29941, // 4192-4199 +38616, 39949, 34034, 27092, 25767, 30331, 32647, 32587, // 4200-4207 +33574, 34557, 34140, 33317, 33424, 35039, 36493, 35160, // 4208-4215 +34341, 34803, 34269, 35017, 36723, 35808, 32664, 31617, // 4216-4223 +32711, 33273, 31100, 28462, 28755, 27593, 31769, 35142, // 4224-4231 +23115, 24705, 42376, 39663, 24661, 21328, 32041, 45958, // 4232-4239 +44152, 27220, 21560, 28152, 26823, 29965, 38669, 35001, // 4240-4247 +26467, 19224, 20390, 31513, 37017, 36026, 33866, 32293, // 4248-4255 +32336, 33088, 34549, 36788, 39340, 38054, 35535, 35734, // 4256-4263 +36469, 36645, 34743, 32341, 29729, 29840, 31499, 27920, // 4264-4271 +25951, 25622, 25545, 28006, 27423, 29068, 31306, 29745, // 4272-4279 +30223, 30377, 31237, 33020, 32586, 32686, 32348, 31203, // 4280-4287 +32652, 35008, 34364, 35002, 37251, 36182, 35809, 37883, // 4288-4295 +38375, 35115, 33282, 36329, 37729, 35225, 29730, 27110, // 4296-4303 +29502, 30255, 30499, 27386, 23608, 25768, 28341, 31232, // 4304-4311 +31936, 28493, 24883, 26109, 36021, 40353, 34433, 30785, // 4312-4319 +33738, 40013, 40140, 36381, 34143, 33046, 37578, 41346, // 4320-4327 +38407, 33021, 29502, 30693, 33362, 35256, 35615, 32882, // 4328-4335 +29560, 29417, 31731, 32525, 31658, 32098, 34781, 34178, // 4336-4343 +31118, 32897, 34651, 34690, 34810, 34798, 36228, 33515, // 4344-4351 +32487, 38125, 39666, 36873, 34375, 35713, 38535, 34424, // 4352-4359 +30902, 32828, 33929, 37988, 35804, 23537, 31611, 46326, // 4360-4367 +34204, 23122, 25854, 33502, 46605, 42824, 26579, 19999, // 4368-4375 +19507, 26987, 39146, 40135, 27978, 18636, 20671, 25617, // 4376-4383 +32512, 35624, 30537, 30498, 31814, 31754, 36048, 33282, // 4384-4391 +31078, 37129, 36807, 35445, 36083, 33558, 34133, 33962, // 4392-4399 +31654, 31227, 30877, 29259, 25505, 24713, 27097, 28492, // 4400-4407 +28095, 25123, 25851, 28972, 29517, 30909, 31368, 30749, // 4408-4415 +29836, 29569, 33206, 34783, 33160, 32935, 33288, 34810, // 4416-4423 +36656, 37816, 37400, 34672, 35102, 36818, 36138, 36290, // 4424-4431 +34089, 31905, 32574, 30797, 28917, 28561, 28865, 27076, // 4432-4439 +21418, 21836, 29132, 32667, 28600, 23498, 24129, 26989, // 4440-4447 +32631, 40003, 39274, 31272, 27814, 36727, 46823, 44775, // 4448-4455 +36951, 32116, 34167, 40921, 43746, 40204, 33067, 29163, // 4456-4463 +32283, 34826, 36171, 36699, 31405, 28010, 27864, 28541, // 4464-4471 +33580, 32678, 29733, 30857, 26878, 28351, 32835, 30903, // 4472-4479 +32834, 32103, 28855, 31463, 32858, 33170, 33502, 35868, // 4480-4487 +38563, 36115, 35343, 34791, 35624, 38702, 33590, 34068, // 4488-4495 +42591, 35242, 23672, 34729, 49092, 38400, 22951, 23315, // 4496-4503 +33873, 47505, 45527, 30399, 22980, 20687, 27404, 43751, // 4504-4511 +45040, 30548, 22243, 22974, 29907, 37819, 36627, 33625, // 4512-4519 +32956, 32067, 34964, 36854, 35788, 35283, 36192, 37604, // 4520-4527 +35583, 33392, 35493, 38083, 34927, 29093, 28049, 29768, // 4528-4535 +30947, 27739, 23923, 25813, 26646, 25776, 25812, 26696, // 4536-4543 +28516, 27186, 26630, 29363, 30400, 29431, 29269, 30261, // 4544-4551 +31562, 33273, 32125, 31782, 35493, 36808, 36915, 35336, // 4552-4559 +33667, 36947, 36775, 33908, 35584, 36318, 33248, 30901, // 4560-4567 +30260, 29883, 29919, 26373, 21467, 22569, 27608, 31317, // 4568-4575 +27705, 20877, 21339, 26625, 31589, 35683, 38978, 35474, // 4576-4583 +26716, 29342, 43121, 51375, 44698, 32641, 31210, 37646, // 4584-4591 +44106, 45496, 39380, 32172, 29969, 32067, 34689, 39155, // 4592-4599 +37442, 28568, 27776, 28431, 29074, 32618, 30543, 31055, // 4600-4607 +29945, 25667, 29345, 30883, 29322, 30499, 31656, 31394, // 4608-4615 +28818, 29725, 33494, 34285, 33923, 33130, 33933, 36389, // 4616-4623 +34051, 32154, 35398, 34303, 34222, 36361, 28004, 25424, // 4624-4631 +38619, 43012, 30002, 18251, 20596, 33826, 44201, 38566, // 4632-4639 +24913, 17388, 19896, 32830, 42765, 38507, 27617, 21768, // 4640-4647 +25763, 34714, 39801, 35553, 31891, 35206, 37065, 37954, // 4648-4655 +37932, 36900, 38127, 38935, 38738, 37899, 37600, 37314, // 4656-4663 +36269, 35570, 34318, 32998, 30073, 29610, 31113, 28835, // 4664-4671 +27867, 27380, 27407, 29247, 28757, 28737, 28892, 29236, // 4672-4679 +30025, 30160, 32436, 32931, 31908, 32796, 32504, 33684, // 4680-4687 +36545, 37133, 38100, 36613, 33227, 35437, 36551, 34517, // 4688-4695 +35217, 36297, 35729, 31441, 29839, 33911, 32793, 27719, // 4696-4703 +24850, 26157, 30585, 31365, 28611, 25836, 23266, 24345, // 4704-4711 +30180, 34336, 34792, 32844, 27853, 27149, 36385, 45028, // 4712-4719 +41687, 34649, 31754, 32540, 40634, 44179, 39311, 35549, // 4720-4727 +29880, 30391, 36177, 36571, 35767, 32915, 29228, 28462, // 4728-4735 +31294, 32708, 27846, 27446, 29687, 29371, 32048, 31142, // 4736-4743 +27470, 27175, 28222, 32183, 34191, 31089, 30157, 30499, // 4744-4751 +31761, 34672, 33201, 32987, 34961, 31690, 31096, 33893, // 4752-4759 +34267, 36526, 33340, 22428, 27486, 44678, 39914, 20914, // 4760-4767 +16601, 25804, 38046, 41572, 28787, 16117, 17794, 25451, // 4768-4775 +34997, 40468, 29887, 19325, 22288, 29238, 36547, 36119, // 4776-4783 +29413, 30683, 34803, 35770, 35774, 35731, 36826, 35703, // 4784-4791 +35303, 38373, 38270, 36709, 36447, 35808, 36514, 36398, // 4792-4799 +33562, 31332, 32473, 33570, 31683, 30639, 30081, 30039, // 4800-4807 +30808, 30381, 32129, 32444, 29819, 31060, 33692, 34806, // 4808-4815 +33867, 31527, 32718, 35472, 35306, 35227, 36936, 36153, // 4816-4823 +33656, 33909, 35064, 34500, 33506, 33340, 33259, 32528, // 4824-4831 +30415, 29981, 32810, 28909, 21769, 25003, 30886, 31328, // 4832-4839 +28663, 25302, 24996, 26508, 29306, 33470, 35677, 35107, // 4840-4847 +31546, 29503, 33719, 41986, 45753, 39481, 33618, 33818, // 4848-4855 +38196, 44934, 43523, 38366, 36081, 33105, 34503, 37276, // 4856-4863 +37616, 36519, 32095, 29771, 31327, 33260, 32240, 28659, // 4864-4871 +27358, 29374, 31483, 30565, 31312, 30475, 25437, 28609, // 4872-4879 +34006, 34361, 33584, 29918, 29292, 32667, 33586, 33711, // 4880-4887 +35087, 33872, 31398, 34918, 37070, 35069, 35582, 29158, // 4888-4895 +24193, 37801, 45752, 31236, 17631, 19523, 32731, 43649, // 4896-4903 +36419, 19787, 13763, 20936, 30511, 36080, 33930, 22909, // 4904-4911 +16938, 20935, 28250, 34026, 29966, 25127, 28103, 30609, // 4912-4919 +30845, 31103, 32943, 33272, 31249, 31593, 33389, 34787, // 4920-4927 +34433, 34344, 35400, 33589, 30410, 29471, 31281, 33060, // 4928-4935 +33046, 31298, 29368, 29403, 29441, 30860, 32203, 30383, // 4936-4943 +30024, 30555, 31940, 34308, 33322, 32247, 33836, 35745, // 4944-4951 +36624, 37108, 36891, 35496, 36008, 37291, 37903, 39299, // 4952-4959 +38621, 36353, 34426, 32852, 32651, 33336, 34426, 32472, // 4960-4967 +28232, 27945, 30572, 31533, 28531, 25296, 25098, 27116, // 4968-4975 +31463, 32534, 30736, 31453, 33079, 33723, 31717, 34445, // 4976-4983 +42570, 42840, 37164, 32967, 35715, 43136, 42489, 38000, // 4984-4991 +37498, 36003, 34021, 34128, 35135, 36542, 33232, 28591, // 4992-4999 +30020, 29841, 29699, 30693, 28377, 32167, 32458, 26149, // 5000-5007 +29231, 31538, 29429, 32278, 33615, 34408, 37370, 31918, // 5008-5015 +29064, 37641, 35857, 32610, 38070, 34563, 32398, 37122, // 5016-5023 +36724, 34263, 35799, 35029, 27508, 30985, 42552, 39993, // 5024-5031 +26290, 18036, 28558, 43045, 41745, 29703, 17799, 19466, // 5032-5039 +29897, 36205, 37828, 31499, 22541, 20034, 25338, 33552, // 5040-5047 +34953, 31752, 30698, 30599, 31881, 32779, 31621, 33850, // 5048-5055 +35235, 32888, 34495, 35281, 33291, 33880, 33898, 32966, // 5056-5063 +31117, 28170, 28588, 30497, 30086, 28948, 27178, 26691, // 5064-5071 +27818, 26573, 27439, 29658, 27968, 27045, 28827, 30116, // 5072-5079 +28250, 28339, 30848, 30454, 32567, 34379, 34275, 34758, // 5080-5087 +32667, 33903, 36774, 37783, 38730, 38514, 37587, 33704, // 5088-5095 +32732, 35569, 35566, 33178, 29413, 31146, 34810, 31395, // 5096-5103 +26656, 25687, 26433, 27775, 32273, 33713, 30114, 27278, // 5104-5111 +29016, 38560, 36036, 27189, 37435, 44009, 38632, 32577, // 5112-5119 +29042, 38258, 44290, 38249, 35046, 33071, 29869, 29612, // 5120-5127 +32668, 37520, 37338, 29784, 27122, 28860, 26451, 28672, // 5128-5135 +32267, 31983, 33531, 30997, 26097, 26890, 30512, 31102, // 5136-5143 +31798, 35010, 32680, 29741, 30648, 31737, 35835, 37216, // 5144-5151 +34596, 33369, 33473, 34789, 36581, 35590, 31627, 34229, // 5152-5159 +35107, 28612, 33659, 39922, 33049, 24509, 26498, 39445, // 5160-5167 +41938, 30989, 23241, 22040, 27572, 34964, 39265, 37510, // 5168-5175 +29051, 21156, 21986, 31142, 36466, 37029, 36309, 32997, // 5176-5183 +32850, 33838, 34691, 36230, 35407, 35152, 35624, 36974, // 5184-5191 +36958, 34283, 33861, 33118, 31201, 30569, 29200, 26985, // 5192-5199 +26808, 28137, 26653, 25418, 26796, 26733, 27062, 29077, // 5200-5207 +29375, 28544, 29472, 30417, 29371, 29175, 30419, 31808, // 5208-5215 +33555, 33937, 33326, 33414, 32509, 32610, 34979, 35775, // 5216-5223 +36764, 39114, 38310, 34274, 32458, 34675, 35191, 32065, // 5224-5231 +29889, 31050, 31769, 28778, 26077, 26026, 27832, 28948, // 5232-5239 +29251, 32612, 33698, 29086, 26981, 37364, 46539, 34023, // 5240-5247 +29116, 44317, 46302, 38994, 35617, 35112, 42698, 46202, // 5248-5255 +38960, 34093, 33118, 30357, 30868, 37082, 39959, 35233, // 5256-5263 +29017, 25701, 24034, 25875, 29768, 31332, 32951, 32320, // 5264-5271 +29999, 29917, 28771, 29219, 30283, 28858, 30600, 33084, // 5272-5279 +32095, 31862, 33224, 33255, 33524, 35318, 35505, 35133, // 5280-5287 +35992, 33911, 30971, 34725, 37652, 31728, 28157, 33351, // 5288-5295 +37688, 33051, 27287, 32495, 38994, 34036, 24300, 20546, // 5296-5303 +25313, 31431, 35969, 39550, 34548, 23455, 17361, 18924, // 5304-5311 +27047, 34817, 37729, 38850, 36864, 33822, 33940, 33794, // 5312-5319 +33693, 35863, 37599, 39295, 40311, 38057, 36366, 35495, // 5320-5327 +32030, 29789, 29595, 27975, 26637, 25963, 23688, 23813, // 5328-5335 +28038, 29297, 28890, 29775, 27729, 28152, 31336, 29423, // 5336-5343 +29433, 33737, 32778, 30484, 33132, 34533, 33932, 33488, // 5344-5351 +31365, 32940, 36902, 34842, 33944, 38774, 38373, 32220, // 5352-5359 +29924, 32997, 35866, 30944, 23614, 27803, 33080, 25234, // 5360-5367 +18515, 21814, 23701, 24619, 28987, 27954, 26110, 27869, // 5368-5375 +20611, 23237, 45170, 43252, 26121, 35034, 45001, 39995, // 5376-5383 +37532, 34684, 38315, 48269, 45920, 37982, 31898, 26721, // 5384-5391 +29347, 37026, 45051, 46954, 34903, 22749, 21933, 23841, // 5392-5399 +25836, 29572, 31744, 34185, 38216, 36956, 31422, 30594, // 5400-5407 +29948, 26778, 28821, 31060, 31580, 34664, 34201, 35230, // 5408-5415 +39297, 36046, 33869, 34349, 31516, 33774, 34347, 30959, // 5416-5423 +35001, 34616, 29533, 34225, 37682, 34959, 33975, 32833, // 5424-5431 +33586, 34559, 30140, 26930, 28154, 30678, 35223, 39352, // 5432-5439 +36722, 27303, 19474, 17999, 20272, 25839, 33686, 39720, // 5440-5447 +41282, 37827, 34820, 36273, 35358, 31683, 32970, 36215, // 5448-5455 +38442, 42659, 44189, 41745, 39386, 35011, 31232, 30169, // 5456-5463 +27195, 26006, 28317, 30197, 32805, 32555, 30046, 31688, // 5464-5471 +31852, 29766, 30794, 31099, 30847, 31586, 31328, 30842, // 5472-5479 +30358, 31820, 33120, 30924, 30697, 32399, 33381, 35105, // 5480-5487 +35720, 37534, 39781, 35706, 31250, 34773, 39199, 35187, // 5488-5495 +28952, 30292, 32405, 27988, 22509, 20622, 24318, 28416, // 5496-5503 +25730, 23608, 23630, 22480, 24936, 24111, 26039, 40324, // 5504-5511 +40114, 27320, 31453, 37795, 36160, 38051, 36356, 35857, // 5512-5519 +42935, 41179, 32682, 30115, 29283, 29802, 34749, 39117, // 5520-5527 +38923, 33445, 24497, 19190, 20803, 23166, 25636, 29904, // 5528-5535 +32786, 36569, 37706, 32738, 30573, 29331, 26354, 27159, // 5536-5543 +28407, 31171, 36180, 36539, 38412, 44000, 41532, 35422, // 5544-5551 +35623, 35381, 31983, 31737, 33567, 34831, 34979, 32294, // 5552-5559 +32032, 36366, 35387, 30545, 30738, 31328, 30252, 30384, // 5560-5567 +29920, 31193, 33725, 33201, 32550, 30938, 24376, 18835, // 5568-5575 +18501, 20358, 24954, 32357, 37909, 38304, 37245, 38190, // 5576-5583 +36185, 32216, 32097, 33986, 37965, 42205, 42598, 42695, // 5584-5591 +42197, 38328, 34919, 32601, 28387, 25312, 26508, 27220, // 5592-5599 +26901, 29227, 30204, 30031, 31440, 30971, 31698, 33112, // 5600-5607 +30992, 32072, 34296, 32579, 31798, 31352, 32746, 35722, // 5608-5615 +33464, 31859, 36004, 37459, 34209, 36008, 42881, 41951, // 5616-5623 +34911, 35078, 41887, 42569, 34390, 31721, 34787, 31829, // 5624-5631 +28509, 25581, 21330, 24538, 26591, 24058, 26193, 24236, // 5632-5639 +20453, 23540, 24789, 30163, 42292, 40323, 26861, 26110, // 5640-5647 +37527, 42203, 37257, 33576, 35284, 38504, 38290, 34117, // 5648-5655 +30537, 28703, 27712, 31221, 36731, 36311, 30434, 23106, // 5656-5663 +19898, 22594, 23088, 24473, 31063, 33075, 33593, 37308, // 5664-5671 +34534, 28543, 27238, 26828, 26200, 27538, 31754, 35604, // 5672-5679 +36646, 39966, 42743, 40549, 38175, 35863, 33026, 31044, // 5680-5687 +30488, 31271, 31407, 32062, 31455, 31414, 35405, 34017, // 5688-5695 +29541, 31337, 32959, 33650, 36412, 35714, 33916, 34913, // 5696-5703 +34593, 34125, 30961, 22074, 19704, 23407, 23493, 26982, // 5704-5711 +32336, 32982, 34988, 36127, 34242, 35491, 34494, 31245, // 5712-5719 +34605, 38512, 40135, 42721, 43078, 42799, 41157, 37383, // 5720-5727 +34274, 28793, 24288, 25567, 27439, 27169, 27886, 30523, // 5728-5735 +33194, 34480, 33155, 31644, 33105, 34177, 32149, 30446, // 5736-5743 +32559, 33224, 30628, 32248, 34111, 32792, 33993, 35057, // 5744-5751 +34210, 34912, 38266, 39827, 36089, 36467, 43161, 44748, // 5752-5759 +38950, 32055, 33636, 40410, 36077, 27601, 26160, 26071, // 5760-5767 +27858, 27715, 23316, 22704, 22505, 22751, 25835, 28323, // 5768-5775 +34747, 39272, 33005, 26742, 30611, 39464, 40937, 35602, // 5776-5783 +34856, 37663, 38069, 36536, 33993, 31303, 29328, 29396, // 5784-5791 +32194, 35391, 34713, 28313, 22539, 22064, 23559, 26291, // 5792-5799 +30025, 33108, 34511, 33820, 33468, 32024, 28350, 25545, // 5800-5807 +23483, 23216, 24977, 28344, 33075, 36028, 38678, 40094, // 5808-5815 +37952, 36510, 34648, 30629, 27330, 25342, 25890, 28436, // 5816-5823 +29589, 28925, 29532, 32218, 32331, 30342, 31387, 33267, // 5824-5831 +34292, 35782, 35587, 34656, 35475, 37283, 35882, 29310, // 5832-5839 +23602, 21327, 21857, 25212, 28306, 32785, 37265, 37864, // 5840-5847 +37504, 36768, 35700, 33923, 32083, 34232, 38628, 42630, // 5848-5855 +45238, 45780, 45425, 41483, 35481, 32151, 27639, 22265, // 5856-5863 +22296, 24383, 25379, 27643, 30098, 32249, 33229, 32497, // 5864-5871 +33715, 35999, 34003, 29887, 30750, 32742, 31650, 31825, // 5872-5879 +31636, 31138, 32102, 31761, 31961, 33305, 35052, 36997, // 5880-5887 +37559, 37551, 39312, 42258, 40087, 35000, 35172, 37718, // 5888-5895 +37399, 32357, 27311, 27046, 26530, 24462, 23060, 21593, // 5896-5903 +21244, 23442, 26534, 29630, 34007, 36575, 36508, 34707, // 5904-5911 +30902, 34016, 42373, 43382, 41111, 41369, 41056, 41792, // 5912-5919 +41378, 35233, 30623, 31262, 32636, 34595, 35333, 33086, // 5920-5927 +29070, 25604, 24790, 24859, 27289, 31414, 35178, 39446, // 5928-5935 +39598, 37293, 34743, 29433, 25664, 23050, 22556, 26319, // 5936-5943 +29257, 32773, 36570, 37911, 39322, 39071, 36265, 32272, // 5944-5951 +27591, 24329, 22584, 22190, 23053, 23591, 23418, 24654, // 5952-5959 +28767, 30220, 27899, 28929, 32085, 34256, 36587, 36165, // 5960-5967 +34453, 36631, 38490, 34181, 27281, 21161, 16647, 18388, // 5968-5975 +24319, 28251, 32684, 37082, 37387, 36013, 33744, 32023, // 5976-5983 +32686, 32074, 33968, 40217, 44643, 48031, 48362, 46329, // 5984-5991 +44840, 38223, 31395, 27509, 22954, 22808, 25673, 28014, // 5992-5999 +30584, 33194, 34369, 33885, 37110, 39329, 35788, 34169, // 6000-6007 +34482, 34826, 35489, 34238, 32700, 31914, 30678, 30371, // 6008-6015 +32097, 32216, 31724, 34164, 35618, 36041, 38622, 41741, // 6016-6023 +40637, 35769, 35588, 38396, 37383, 34161, 29865, 26405, // 6024-6031 +26606, 25704, 20803, 19614, 21169, 20364, 24209, 30112, // 6032-6039 +31135, 30905, 32325, 33550, 30618, 29955, 36021, 40866, // 6040-6047 +43241, 41897, 39043, 41120, 40536, 34872, 32581, 32548, // 6048-6055 +32059, 34838, 38160, 36863, 34263, 31916, 28383, 25888, // 6056-6063 +26636, 29645, 33469, 38356, 41072, 39444, 36685, 32571, // 6064-6071 +28046, 25512, 23242, 22424, 25512, 31233, 35727, 37166, // 6072-6079 +39268, 40831, 38659, 36691, 33069, 27126, 24645, 21335, // 6080-6087 +19112, 23356, 22938, 19050, 23957, 30265, 29208, 25647, // 6088-6095 +25751, 31723, 37450, 35992, 33165, 33910, 34625, 34634, // 6096-6103 +33207, 27408, 19184, 14069, 15026, 20919, 27475, 30804, // 6104-6111 +32132, 32652, 32085, 31899, 31663, 31551, 32592, 35480, // 6112-6119 +40629, 44917, 45938, 45288, 44502, 40446, 34077, 29671, // 6120-6127 +23503, 19321, 21886, 24307, 27356, 31237, 32589, 34209, // 6128-6135 +36133, 38712, 40014, 37111, 35206, 36075, 36009, 34211, // 6136-6143 +32330, 31834, 30810, 29163, 30005, 30720, 30177, 31836, // 6144-6151 +33513, 35104, 39155, 42219, 41416, 37637, 36359, 39413, // 6152-6159 +39259, 34325, 30060, 28805, 28629, 26782, 24287, 21737, // 6160-6167 +19149, 19908, 24274, 29302, 32691, 32246, 31092, 34257, // 6168-6175 +36521, 33321, 33125, 39660, 44502, 44429, 42110, 40101, // 6176-6183 +39508, 36072, 31345, 30284, 30292, 32313, 35939, 37123, // 6184-6191 +37234, 35182, 30385, 26021, 24581, 27308, 31856, 35411, // 6192-6199 +37377, 39601, 40599, 36575, 31878, 29614, 27388, 26054, // 6200-6207 +27744, 32425, 37822, 40945, 42505, 44705, 44357, 42025, // 6208-6215 +40041, 33890, 28861, 27677, 23829, 23487, 26370, 22556, // 6216-6223 +18782, 26134, 34541, 30883, 25589, 28649, 35314, 39413, // 6224-6231 +37326, 34503, 35028, 36069, 36350, 33687, 27788, 20376, // 6232-6239 +14342, 13766, 18994, 25641, 29804, 32039, 32051, 31116, // 6240-6247 +30422, 27777, 27024, 29535, 33060, 38037, 41554, 42982, // 6248-6255 +42633, 39183, 34304, 29250, 23517, 18266, 17255, 19741, // 6256-6263 +22034, 24612, 28253, 32096, 33554, 34272, 37028, 38150, // 6264-6271 +38029, 37466, 35687, 35911, 35239, 32029, 30534, 30128, // 6272-6279 +29755, 30057, 29934, 30088, 32258, 34829, 36441, 38751, // 6280-6287 +40089, 38662, 38216, 40135, 40835, 38399, 35048, 33254, // 6288-6295 +32543, 30639, 27438, 24276, 21061, 20668, 24250, 27436, // 6296-6303 +30806, 33216, 31569, 30708, 32285, 33356, 32645, 32434, // 6304-6311 +36914, 42488, 44292, 42338, 39133, 37380, 33503, 28006, // 6312-6319 +27166, 29345, 30975, 33964, 38188, 38998, 35881, 30738, // 6320-6327 +24886, 22521, 24337, 27890, 32229, 37432, 40683, 38320, // 6328-6335 +35823, 34471, 28513, 22630, 22689, 26177, 29266, 33074, // 6336-6343 +38746, 42348, 43867, 44625, 42367, 37965, 34338, 31211, // 6344-6351 +27630, 25970, 26470, 27775, 26696, 23526, 29088, 37214, // 6352-6359 +33516, 27666, 29181, 35604, 41438, 40590, 37604, 37693, // 6360-6367 +37581, 37534, 37394, 32602, 24421, 17093, 14154, 19102, // 6368-6375 +27257, 32261, 34014, 34074, 34241, 33034, 30720, 30255, // 6376-6383 +31073, 33737, 37624, 41017, 43843, 44811, 44201, 40636, // 6384-6391 +33498, 26764, 21114, 17213, 17445, 19982, 23121, 26563, // 6392-6399 +29068, 31584, 34499, 35517, 34928, 34300, 33306, 33025, // 6400-6407 +33877, 33099, 30230, 28209, 28094, 28329, 28417, 29202, // 6408-6415 +30325, 31589, 33557, 35519, 37378, 37975, 36499, 36704, // 6416-6423 +39444, 40586, 38280, 34711, 33241, 31825, 28400, 25897, // 6424-6431 +23067, 19836, 21163, 24551, 26919, 30805, 33653, 31492, // 6432-6439 +28224, 31869, 38178, 34358, 29732, 38415, 48335, 47939, // 6440-6447 +41742, 37905, 39173, 38029, 32687, 30402, 31170, 32010, // 6448-6455 +34034, 38711, 42974, 39525, 29818, 24176, 23862, 24676, // 6456-6463 +27402, 30441, 32608, 35746, 37890, 36383, 31056, 25645, // 6464-6471 +24495, 25483, 26218, 27577, 30383, 35260, 38603, 39017, // 6472-6479 +41262, 42251, 36412, 29746, 28265, 28380, 25423, 23496, // 6480-6487 +26537, 26465, 23681, 29384, 36718, 34238, 28691, 29215, // 6488-6495 +35582, 41598, 42018, 38897, 37090, 38310, 40120, 38469, // 6496-6503 +32795, 24672, 17466, 17409, 24398, 31295, 34915, 36565, // 6504-6511 +37356, 37370, 35835, 33177, 31529, 32825, 36611, 40526, // 6512-6519 +43320, 45080, 45727, 44579, 40348, 34024, 27972, 22791, // 6520-6527 +20389, 21627, 23738, 25539, 27689, 30359, 32471, 32685, // 6528-6535 +32866, 33235, 32220, 31368, 30995, 30690, 30856, 30098, // 6536-6543 +29048, 28530, 27142, 26670, 28280, 29161, 28698, 29078, // 6544-6551 +32280, 35517, 34160, 33109, 37166, 39722, 37141, 33871, // 6552-6559 +32698, 32140, 29566, 26624, 25444, 23482, 21637, 22773, // 6560-6567 +25133, 27973, 30525, 30690, 29279, 28702, 32283, 36403, // 6568-6575 +32772, 29080, 36900, 47189, 46166, 37627, 35042, 39284, // 6576-6583 +39830, 36119, 33012, 29728, 29248, 34163, 39793, 42748, // 6584-6591 +41013, 34156, 27107, 24470, 26527, 29312, 30289, 32627, // 6592-6599 +36177, 37791, 38012, 35923, 31548, 29023, 28962, 29722, // 6600-6607 +30931, 32351, 34516, 36653, 38035, 38968, 37213, 32590, // 6608-6615 +29254, 28364, 27673, 26157, 25727, 26941, 26418, 25396, // 6616-6623 +29500, 35205, 34537, 30115, 30377, 35277, 38124, 37205, // 6624-6631 +35715, 35423, 36671, 38209, 36644, 30652, 23355, 19426, // 6632-6639 +20444, 24607, 29410, 33296, 36039, 37024, 35626, 33614, // 6640-6647 +31651, 29324, 29218, 32531, 36919, 40665, 42810, 43049, // 6648-6655 +41391, 38344, 35647, 32623, 28673, 26538, 26642, 28182, // 6656-6663 +30583, 31632, 32169, 33548, 33649, 33148, 33212, 33108, // 6664-6671 +33193, 33056, 32647, 31976, 30488, 30563, 31791, 31283, // 6672-6679 +31459, 32656, 32494, 32649, 33585, 34729, 35791, 35053, // 6680-6687 +34292, 35080, 35589, 35136, 33077, 30835, 30269, 28453, // 6688-6695 +25424, 23323, 20989, 20878, 23850, 25187, 24928, 26001, // 6696-6703 +27719, 27271, 25251, 27354, 31996, 32066, 31323, 35412, // 6704-6711 +40217, 40948, 37629, 34573, 34840, 35555, 34461, 32063, // 6712-6719 +30067, 31582, 35315, 37756, 38732, 37271, 32969, 28542, // 6720-6727 +26331, 27044, 28803, 29846, 31689, 34184, 35566, 35841, // 6728-6735 +34665, 32162, 30188, 29748, 30177, 30359, 31259, 33948, // 6736-6743 +36153, 36334, 36319, 36211, 34237, 31432, 30722, 30829, // 6744-6751 +28921, 27258, 28758, 31027, 31535, 32212, 34597, 35693, // 6752-6759 +34404, 34112, 34835, 34128, 33089, 33200, 34285, 35643, // 6760-6767 +35944, 34564, 31555, 28712, 28024, 28046, 28735, 31655, // 6768-6775 +34559, 35836, 35929, 35189, 35086, 34545, 32507, 32325, // 6776-6783 +34804, 37235, 37772, 37101, 37760, 38005, 35565, 34070, // 6784-6791 +33822, 32168, 30651, 30156, 30771, 32251, 32358, 31810, // 6792-6799 +31856, 32101, 32770, 32532, 31866, 32601, 32533, 31758, // 6800-6807 +31679, 31018, 31514, 33543, 33972, 33110, 32495, 33035, // 6808-6815 +34249, 33957, 33630, 34311, 33997, 33533, 33259, 32631, // 6816-6823 +32766, 32305, 31241, 31061, 29726, 27272, 26322, 27007, // 6824-6831 +27817, 27082, 26254, 27261, 27730, 27386, 28158, 28873, // 6832-6839 +29342, 30299, 31324, 32625, 33732, 34454, 35244, 35242, // 6840-6847 +34622, 34360, 34068, 33432, 32352, 31984, 33530, 34584, // 6848-6855 +33532, 32434, 32098, 31290, 29739, 28365, 27715, 27645, // 6856-6863 +28424, 29849, 31008, 31804, 32184, 31576, 30855, 31365, // 6864-6871 +32204, 32026, 32050, 33362, 34589, 34802, 34619, 34336, // 6872-6879 +34009, 33508, 32942, 32693, 32545, 32456, 32492, 32573, // 6880-6887 +32985, 33367, 33533, 33862, 33557, 33086, 33781, 33999, // 6888-6895 +32567, 31288, 31403, 32098, 31727, 30614, 30242, 29815, // 6896-6903 +29145, 29316, 29858, 30628, 31527, 31884, 32672, 33830, // 6904-6911 +34146, 34242, 34576, 35057, 35617, 35987, 37021, 38347, // 6912-6919 +38650, 38644, 38358, 37344, 36512, 35534, 34288, 33909, // 6920-6927 +34086, 34303, 34214, 33557, 33191, 33200, 33224, 33315, // 6928-6935 +33009, 32955, 33710, 33878, 33511, 33522, 33489, 33199, // 6936-6943 +33082, 33589, 34368, 34373, 34058, 34204, 34226, 33923, // 6944-6951 +33526, 33069, 32900, 32833, 32633, 32573, 32386, 31667, // 6952-6959 +30621, 29710, 29312, 29200, 28961, 28854, 29127, 29574, // 6960-6967 +30009, 30220, 30323, 30730, 31299, 31788, 32360, 32858, // 6968-6975 +33012, 33116, 33240, 33339, 33346, 33039, 32648, 32322, // 6976-6983 +31930, 31578, 31187, 30710, 30505, 30405, 30186, 30037, // 6984-6991 +29859, 29593, 29657, 30078, 30507, 30821, 31140, 31409, // 6992-6999 +31503, 31675, 31986, 31863, 31473, 31580, 31932, 32155, // 7000-7007 +32476, 32735, 32601, 32493, 32493, 32248, 31982, 31895, // 7008-7015 +31700, 31578, 31800, 32042, 32112, 32273, 32629, 32912, // 7016-7023 +32920, 32755, 32568, 32602, 32902, 33178, 33294, 33262, // 7024-7031 +32850, 32314, 32203, 32253, 32164, 32162, 32114, 32055, // 7032-7039 +32442, 32918, 33106, 33433, 33856, 33944, 33924, 34193, // 7040-7047 +34503, 34573, 34791, 35306, 35481, 35164, 35011, 34855, // 7048-7055 +34489, 34468, 34530, 34154, 34004, 34272, 34335, 34266, // 7056-7063 +34419, 34441, 34151, 34094, 34632, 34958, 34634, 34497, // 7064-7071 +34395, 33910, 33867, 34299, 34334, 34503, 34948, 34993, // 7072-7079 +35099, 35562, 35670, 35544, 35469, 35128, 34619, 34129, // 7080-7087 +33735, 33675, 33631, 33180, 32398, 31596, 30920, 30226, // 7088-7095 +29979, 30507, 30639, 30184, 30443, 30736, 30340, 30532, // 7096-7103 +30953, 30421, 30375, 31022, 30910, 31021, 31992, 32335, // 7104-7111 +32207, 32574, 32932, 32585, 31919, 31731, 31540, 31035, // 7112-7119 +31319, 32254, 32821, 33354, 33675, 32967, 31893, 31218, // 7120-7127 +30624, 30622, 31393, 32067, 32563, 32724, 32364, 32255, // 7128-7135 +31854, 30886, 30656, 30748, 30538, 31027, 32039, 32488, // 7136-7143 +32340, 31873, 31203, 30560, 29915, 29755, 30511, 31223, // 7144-7151 +31817, 32671, 32819, 32780, 33332, 33589, 33789, 34281, // 7152-7159 +34591, 34303, 33344, 32935, 33323, 33551, 34410, 35833, // 7160-7167 +35595, 33914, 32639, 31181, 30187, 31524, 33218, 34431, // 7168-7175 +35865, 35455, 33496, 32100, 31308, 30969, 31362, 32689, // 7176-7183 +33663, 33580, 33314, 32520, 32080, 32023, 31272, 31073, // 7184-7191 +31269, 31346, 31670, 31697, 32393, 33038, 32811, 32960, // 7192-7199 +32659, 32663, 33451, 33082, 32799, 33333, 33296, 33011, // 7200-7207 +32870, 32990, 33315, 33260, 33036, 33490, 33943, 33754, // 7208-7215 +33996, 34221, 33918, 33716, 33134, 33098, 33729, 33325, // 7216-7223 +32872, 32903, 32607, 31621, 30914, 32173, 33461, 33520, // 7224-7231 +33315, 32518, 32323, 32432, 32211, 33234, 34120, 34555, // 7232-7239 +34861, 33509, 33135, 33979, 33421, 33586, 34664, 35026, // 7240-7247 +34997, 33503, 31898, 31664, 30905, 30675, 31770, 32399, // 7248-7255 +32680, 32012, 30230, 29139, 28743, 28648, 28746, 29767, // 7256-7263 +31311, 31193, 31127, 31436, 30691, 31095, 31537, 31908, // 7264-7271 +33690, 33559, 32768, 33568, 33775, 33643, 33134, 32219, // 7272-7279 +31737, 31384, 31944, 32346, 31992, 33067, 33777, 31711, // 7280-7287 +30810, 32909, 33075, 32437, 33944, 33596, 32443, 31947, // 7288-7295 +29783, 29799, 32897, 34894, 34833, 34436, 33894, 30956, // 7296-7303 +29398, 30857, 31718, 35137, 37232, 34532, 34035, 32493, // 7304-7311 +29507, 30135, 30788, 32040, 33731, 33587, 34017, 33600, // 7312-7319 +33203, 33772, 32714, 32341, 33171, 33011, 32599, 32750, // 7320-7327 +33196, 33401, 33622, 33264, 32379, 31949, 31607, 32351, // 7328-7335 +32877, 31930, 32107, 32285, 31650, 31723, 31823, 30821, // 7336-7343 +28762, 29077, 30684, 29658, 29762, 30644, 29049, 27144, // 7344-7351 +26038, 28247, 32617, 34439, 34513, 31730, 26812, 25217, // 7352-7359 +27359, 32370, 37809, 38962, 36694, 33411, 29725, 28966, // 7360-7367 +32126, 34043, 34743, 38936, 41044, 36475, 33167, 33366, // 7368-7375 +32346, 31485, 32487, 36046, 41296, 40611, 32754, 25939, // 7376-7383 +23681, 25975, 31936, 38666, 42367, 38546, 29837, 23586, // 7384-7391 +22483, 26539, 32238, 36215, 38275, 36413, 31647, 27827, // 7392-7399 +26543, 28217, 30529, 31639, 32017, 31692, 31115, 31205, // 7400-7407 +32364, 33035, 32827, 33273, 33167, 32579, 32271, 30896, // 7408-7415 +29912, 31455, 34079, 33228, 30004, 30689, 32636, 32838, // 7416-7423 +33092, 32728, 33648, 33807, 30384, 29680, 32625, 35148, // 7424-7431 +36160, 35357, 33918, 31299, 28926, 30196, 33042, 35268, // 7432-7439 +36872, 37304, 35670, 32793, 32154, 33308, 34083, 34924, // 7440-7447 +36725, 39417, 39297, 36453, 35166, 34964, 35311, 34918, // 7448-7455 +33646, 35352, 36159, 32922, 31102, 32265, 34306, 34818, // 7456-7463 +32974, 31607, 32018, 33079, 33086, 32130, 31910, 31806, // 7464-7471 +31431, 31083, 29836, 28483, 28880, 30637, 30981, 29417, // 7472-7479 +28494, 29093, 29851, 29765, 29478, 29834, 30519, 31571, // 7480-7487 +31793, 30016, 28487, 29126, 31047, 31854, 30733, 30600, // 7488-7495 +31291, 30011, 28526, 29314, 30957, 30936, 29383, 30659, // 7496-7503 +35393, 35898, 30458, 27653, 30481, 33548, 32956, 30843, // 7504-7511 +32018, 35430, 35640, 32748, 30311, 28648, 27415, 28921, // 7512-7519 +34099, 38553, 38024, 34109, 31012, 30012, 29904, 30781, // 7520-7527 +33218, 35872, 36940, 35805, 33619, 32130, 32100, 33119, // 7528-7535 +33836, 33926, 34532, 35543, 35271, 33697, 33028, 33797, // 7536-7543 +34374, 34279, 34057, 33398, 32513, 33018, 34902, 34565, // 7544-7551 +30619, 28151, 30874, 34292, 33174, 30153, 30549, 33139, // 7552-7559 +32682, 29202, 27472, 29318, 32989, 36992, 39052, 36294, // 7560-7567 +29976, 25632, 26996, 32383, 37605, 40183, 39351, 35649, // 7568-7575 +32272, 32381, 34771, 36314, 36825, 37951, 38950, 37562, // 7576-7583 +34400, 32456, 32692, 33113, 32284, 31021, 30617, 31034, // 7584-7591 +31207, 30756, 30319, 30297, 30327, 30449, 31402, 32998, // 7592-7599 +33553, 32399, 31365, 32060, 33335, 33168, 31664, 30433, // 7600-7607 +30577, 31648, 32232, 31487, 30774, 32074, 34294, 34273, // 7608-7615 +32220, 31870, 33913, 34969, 33684, 32409, 31739, 29604, // 7616-7623 +26649, 26409, 29216, 31498, 31353, 29808, 27532, 25693, // 7624-7631 +26541, 29247, 30091, 29319, 31165, 34405, 32143, 25221, // 7632-7639 +23647, 29704, 33017, 28280, 24658, 30193, 38561, 39375, // 7640-7647 +32072, 23118, 18378, 22217, 34886, 47504, 48779, 38031, // 7648-7655 +24818, 17846, 19088, 26004, 34074, 38836, 39237, 37599, // 7656-7663 +34847, 30876, 28497, 30443, 33693, 33885, 32685, 34564, // 7664-7671 +38448, 39396, 37217, 35442, 34951, 34594, 33779, 32351, // 7672-7679 +31097, 32099, 35370, 36571, 33200, 29913, 32039, 37502, // 7680-7687 +39658, 37304, 35332, 35031, 33184, 29057, 25544, 26487, // 7688-7695 +33212, 42645, 47721, 40941, 24802, 12847, 14055, 24182, // 7696-7703 +34025, 39415, 41118, 38965, 32775, 26112, 23211, 24607, // 7704-7711 +28351, 32403, 35134, 37020, 39410, 40495, 38317, 34853, // 7712-7719 +32029, 29476, 27379, 26834, 28160, 30015, 31238, 32677, // 7720-7727 +34299, 34787, 34929, 34938, 33546, 31875, 31883, 34233, // 7728-7735 +37212, 37129, 34751, 32910, 31456, 32028, 33974, 32729, // 7736-7743 +31294, 34397, 36262, 31992, 28748, 32419, 37944, 39952, // 7744-7751 +38568, 36589, 34644, 28945, 23568, 26817, 33919, 36612, // 7752-7759 +32994, 28035, 28938, 29625, 26411, 28993, 34559, 34116, // 7760-7767 +31524, 36522, 45864, 38353, 19513, 21942, 39106, 40077, // 7768-7775 +25166, 19667, 35026, 49250, 42824, 24800, 10598, 10211, // 7776-7783 +21220, 36480, 50535, 48299, 31238, 18612, 15352, 19113, // 7784-7791 +23036, 24574, 31242, 38123, 39916, 37475, 30865, 26693, // 7792-7799 +24761, 24240, 26634, 26266, 29181, 35561, 36061, 38336, // 7800-7807 +40669, 36407, 33419, 31831, 31226, 33174, 32868, 32543, // 7808-7815 +35150, 35945, 32361, 30793, 35062, 37993, 38566, 39175, // 7816-7823 +38270, 38400, 36330, 32074, 34036, 39390, 43778, 46222, // 7824-7831 +41978, 31454, 21016, 17024, 20889, 29723, 35707, 34675, // 7832-7839 +36613, 37636, 29699, 26581, 26755, 25529, 31724, 37033, // 7840-7847 +39969, 44901, 44912, 43740, 39878, 31414, 25853, 22490, // 7848-7855 +23669, 24971, 22351, 25820, 29620, 30271, 31595, 29319, // 7856-7863 +32044, 37415, 35665, 36129, 39769, 41810, 38442, 29821, // 7864-7871 +26848, 27346, 28684, 26395, 15346, 20069, 35552, 31677, // 7872-7879 +24715, 28019, 33994, 40343, 41323, 42367, 40922, 31308, // 7880-7887 +29482, 31965, 31247, 35586, 34652, 25450, 21908, 23444, // 7888-7895 +24767, 25237, 26611, 32379, 36011, 31630, 34423, 45050, // 7896-7903 +36064, 21099, 30747, 39864, 33630, 32330, 34698, 39322, // 7904-7911 +45211, 37148, 22806, 18466, 20928, 26905, 37068, 45016, // 7912-7919 +44110, 34542, 20819, 13036, 15368, 20189, 28967, 40151, // 7920-7927 +42259, 40928, 41393, 35957, 25200, 17633, 18615, 19952, // 7928-7935 +18986, 26623, 34851, 36772, 39778, 39885, 37622, 35104, // 7936-7943 +29745, 27929, 26486, 23662, 25521, 23869, 19445, 20528, // 7944-7951 +22490, 26171, 30996, 30278, 31793, 40325, 43178, 37451, // 7952-7959 +33450, 34605, 38903, 42235, 41069, 35020, 24270, 17493, // 7960-7967 +18334, 20051, 26102, 33655, 36549, 37983, 33348, 28361, // 7968-7975 +29988, 30007, 32046, 37030, 41899, 48363, 49444, 48722, // 7976-7983 +48475, 44672, 39151, 27292, 18917, 17633, 15265, 21493, // 7984-7991 +24268, 22460, 30209, 29235, 33432, 46883, 41958, 41239, // 7992-7999 +44869, 40681, 44479, 35243, 23554, 32847, 34304, 25966, // 8000-8007 +16414, 12714, 25969, 27358, 18236, 25827, 37101, 44189, // 8008-8015 +48068, 44078, 36500, 32786, 34430, 32597, 36038, 45493, // 8016-8023 +37450, 27979, 26098, 15581, 16499, 24280, 19978, 25760, // 8024-8031 +37451, 35136, 31932, 39460, 45359, 33512, 22315, 30906, // 8032-8039 +35670, 31262, 33782, 38148, 44044, 45870, 31818, 19136, // 8040-8047 +18616, 21740, 31319, 42405, 44319, 41520, 33129, 18546, // 8048-8055 +12186, 17055, 23958, 33556, 44613, 48625, 47085, 43332, // 8056-8063 +34871, 26353, 20580, 16517, 17600, 18873, 21826, 34312, // 8064-8071 +42789, 43861, 46791, 44530, 40390, 36689, 27555, 24235, // 8072-8079 +24189, 20568, 21678, 21205, 19867, 24183, 25532, 26951, // 8080-8087 +30704, 32759, 35894, 35001, 32029, 33742, 36539, 40917, // 8088-8095 +43222, 39611, 33221, 22761, 14239, 12591, 13930, 20929, // 8096-8103 +30895, 36500, 37576, 34167, 30041, 28253, 27209, 31029, // 8104-8111 +39126, 45525, 51681, 54055, 50685, 50772, 47288, 34097, // 8112-8119 +25364, 21765, 19787, 21270, 19956, 20469, 25676, 31751, // 8120-8127 +37999, 36834, 38986, 47202, 42517, 41458, 48100, 40401, // 8128-8135 +30948, 29412, 30898, 28819, 17520, 17276, 26991, 25890, // 8136-8143 +22810, 24555, 32648, 42486, 42049, 40954, 39847, 33341, // 8144-8151 +31696, 31997, 31981, 34512, 35007, 31648, 23109, 18398, // 8152-8159 +21319, 19504, 18086, 23905, 31385, 38364, 37923, 34854, // 8160-8167 +40366, 40199, 29275, 26944, 32364, 34646, 38388, 40657, // 8168-8175 +39515, 42192, 39720, 30226, 26531, 25881, 26817, 34278, // 8176-8183 +42651, 45199, 40166, 32121, 25004, 19536, 20478, 27352, // 8184-8191 +36045, 43052, 45432, 46593, 44264, 35596, 26741, 19967, // 8192-8199 +18754, 22502, 24367, 28101, 35374, 41680, 45087, 43877, // 8200-8207 +41704, 38989, 33396, 29132, 26859, 26006, 25373, 22742, // 8208-8215 +22061, 22469, 23087, 27214, 30118, 31235, 34237, 35849, // 8216-8223 +35020, 33771, 34342, 36711, 37161, 35104, 31312, 25966, // 8224-8231 +19677, 14671, 15914, 19948, 22553, 27513, 31001, 30809, // 8232-8239 +31644, 30051, 27660, 29910, 31854, 34558, 41484, 44662, // 8240-8247 +42705, 42372, 41326, 36626, 31087, 25494, 21828, 20203, // 8248-8255 +17648, 18636, 23972, 26731, 29110, 34408, 38812, 40317, // 8256-8263 +41008, 42801, 42626, 39375, 36992, 35196, 33315, 31536, // 8264-8271 +28425, 26256, 25631, 26083, 27980, 28643, 29982, 34437, // 8272-8279 +38219, 39071, 37485, 36591, 36672, 34298, 33430, 35325, // 8280-8287 +34137, 30732, 27335, 23998, 22478, 22235, 22597, 24067, // 8288-8295 +26876, 31145, 34436, 34984, 34780, 35257, 35360, 34106, // 8296-8303 +33179, 34615, 36657, 36893, 36585, 37392, 37984, 36776, // 8304-8311 +33962, 31503, 30881, 31467, 32929, 34772, 35197, 33754, // 8312-8319 +31113, 28611, 27489, 27655, 30116, 33848, 35287, 35130, // 8320-8327 +35558, 35241, 32441, 28672, 27491, 28829, 29889, 31038, // 8328-8335 +33406, 35701, 36257, 35654, 35739, 35534, 33463, 30979, // 8336-8343 +29812, 29467, 28856, 28402, 28510, 28139, 27499, 28149, // 8344-8351 +30073, 32239, 33738, 34518, 34702, 34016, 33265, 33622, // 8352-8359 +34349, 33976, 32700, 31552, 30283, 28086, 26064, 25856, // 8360-8367 +26904, 27752, 28797, 30981, 33049, 33247, 32713, 33981, // 8368-8375 +36914, 39290, 40435, 41116, 41501, 40864, 39303, 37538, // 8376-8383 +35513, 33004, 30543, 28441, 27009, 26685, 27565, 28850, // 8384-8391 +29584, 30099, 31328, 32563, 32415, 31350, 31044, 31532, // 8392-8399 +31335, 30533, 30527, 30974, 30224, 28386, 27621, 28614, // 8400-8407 +29739, 29996, 30224, 31148, 32275, 32913, 33139, 33046, // 8408-8415 +32744, 32719, 32955, 32613, 31390, 29953, 28750, 27508, // 8416-8423 +26469, 26553, 27592, 28374, 28651, 29437, 30932, 32151, // 8424-8431 +32846, 33919, 35463, 36277, 36073, 36035, 36841, 37777, // 8432-8439 +38227, 38533, 39015, 39298, 39055, 38306, 37091, 35630, // 8440-8447 +34623, 34465, 34541, 33946, 32764, 31713, 31209, 31250, // 8448-8455 +31728, 32382, 32935, 33600, 34646, 35579, 35514, 34538, // 8456-8463 +33679, 33443, 33345, 33059, 33067, 33756, 34778, 35556, // 8464-8471 +35842, 35615, 34929, 34067, 33275, 32435, 31267, 29967, // 8472-8479 +29065, 28780, 28879, 29064, 29431, 30269, 31596, 32928, // 8480-8487 +33498, 33106, 32445, 32403, 32954, 33265, 32855, 32130, // 8488-8495 +31652, 31267, 30500, 29229, 28063, 27658, 28228, 29306, // 8496-8503 +30217, 30697, 31026, 31563, 32147, 32316, 32023, 31845, // 8504-8511 +32391, 33557, 34586, 34783, 34163, 33312, 32668, 32065, // 8512-8519 +31143, 30044, 29441, 29742, 30470, 30776, 30379, 29820, // 8520-8527 +29757, 30193, 30575, 30537, 30311, 30413, 30912, 31293, // 8528-8535 +31066, 30443, 30188, 30749, 31822, 32654, 32981, 33145, // 8536-8543 +33619, 34232, 34469, 34071, 33495, 33404, 33806, 33987, // 8544-8551 +33288, 31781, 30197, 29115, 28411, 27648, 26836, 26608, // 8552-8559 +27391, 28720, 29784, 30103, 30071, 30409, 31344, 32384, // 8560-8567 +33080, 33607, 34476, 35701, 36672, 36722, 35806, 34712, // 8568-8575 +34090, 33940, 33792, 33429, 33142, 33429, 34088, 34468, // 8576-8583 +34125, 33339, 32814, 32883, 33245, 33431, 33395, 33616, // 8584-8591 +34425, 35382, 35862, 35613, 35070, 34882, 35058, 35097, // 8592-8599 +34766, 34388, 34496, 35093, 35654, 35694, 35134, 34529, // 8600-8607 +34327, 34224, 33894, 33293, 32813, 33027, 33661, 34056, // 8608-8615 +34023, 33625, 33140, 32910, 32878, 32606, 32064, 31970, // 8616-8623 +32555, 33279, 33671, 33498, 32862, 32375, 32256, 31986, // 8624-8631 +31293, 30855, 31282, 32216, 33216, 34017, 34292, 34430, // 8632-8639 +34746, 34900, 34868, 34711, 34658, 35175, 35771, 35962, // 8640-8647 +35791, 35341, 34750, 34024, 33237, 32498, 31596, 31007, // 8648-8655 +31146, 31414, 31598, 31442, 30914, 30811, 30831, 30368, // 8656-8663 +29716, 29161, 29106, 29352, 29595, 30053, 30125, 30273, // 8664-8671 +31227, 31849, 32204, 32685, 32657, 32918, 33401, 33585, // 8672-8679 +34563, 35279, 34274, 33060, 32926, 32679, 30847, 28803, // 8680-8687 +27851, 26913, 26499, 26649, 25719, 25063, 26280, 27460, // 8688-8695 +26906, 26492, 27723, 28582, 29499, 31800, 33135, 33733, // 8696-8703 +34375, 34250, 34942, 35400, 34555, 34550, 34403, 33804, // 8704-8711 +34003, 34489, 34799, 33866, 33554, 34762, 34104, 32895, // 8712-8719 +32470, 32060, 33573, 34299, 33132, 33942, 35542, 35743, // 8720-8727 +34415, 33271, 34109, 33858, 32568, 32557, 32621, 33732, // 8728-8735 +34882, 35472, 37267, 36616, 34306, 35027, 35325, 33139, // 8736-8743 +32446, 34177, 34980, 34233, 33923, 32984, 32975, 34795, // 8744-8751 +34045, 32800, 33396, 32980, 32764, 33806, 36129, 37011, // 8752-8759 +33686, 32062, 32215, 32019, 34306, 33060, 30253, 32943, // 8760-8767 +33436, 32142, 33320, 32893, 33053, 33244, 32196, 33645, // 8768-8775 +34734, 34480, 33967, 32499, 33469, 35263, 34348, 32861, // 8776-8783 +31915, 31373, 31307, 31987, 31721, 30020, 30262, 31138, // 8784-8791 +32334, 34406, 32818, 31481, 32171, 30851, 31249, 31120, // 8792-8799 +31216, 34550, 31693, 29227, 33957, 33618, 30795, 29728, // 8800-8807 +27896, 30200, 33126, 34198, 34816, 33038, 33815, 34925, // 8808-8815 +34293, 36752, 35958, 32093, 31132, 30512, 31956, 32875, // 8816-8823 +29086, 25933, 27634, 31580, 29513, 26182, 30795, 32754, // 8824-8831 +31281, 33513, 33350, 32519, 32638, 33395, 37674, 36748, // 8832-8839 +32680, 34388, 36203, 36377, 35072, 34519, 37037, 34463, // 8840-8847 +30154, 30012, 30641, 32343, 29184, 24168, 26363, 27276, // 8848-8855 +27102, 29606, 29894, 30915, 31170, 30010, 29848, 27695, // 8856-8863 +28302, 29145, 28686, 35174, 36537, 30632, 31848, 33282, // 8864-8871 +32997, 35677, 34535, 31714, 31717, 30549, 28177, 32510, // 8872-8879 +39031, 30003, 22053, 38751, 49793, 32667, 19103, 32182, // 8880-8887 +47803, 41884, 31416, 31875, 36462, 40483, 36599, 34363, // 8888-8895 +40169, 29091, 17608, 32600, 41900, 36339, 36467, 36680, // 8896-8903 +35844, 37703, 37146, 33513, 32091, 37590, 38909, 33773, // 8904-8911 +38219, 41916, 36637, 39803, 42925, 32784, 27673, 31364, // 8912-8919 +29205, 27851, 32801, 34430, 34605, 33684, 32185, 37770, // 8920-8927 +35464, 25595, 31237, 39263, 40083, 39164, 28834, 28123, // 8928-8935 +39379, 34431, 27755, 31329, 34247, 40298, 38401, 26568, // 8936-8943 +23854, 24991, 24776, 30246, 38347, 42252, 37787, 32353, // 8944-8951 +30920, 24829, 19802, 24610, 28994, 29117, 32936, 37622, // 8952-8959 +36126, 33472, 33075, 30217, 26433, 28833, 37687, 36299, // 8960-8967 +21752, 23680, 38780, 39441, 36975, 38779, 40175, 44924, // 8968-8975 +37017, 20804, 19267, 24460, 34341, 47980, 53023, 54805, // 8976-8983 +45851, 23157, 12228, 13342, 16667, 26517, 35324, 40266, // 8984-8991 +42619, 35787, 28053, 26516, 21833, 16759, 19597, 24652, // 8992-8999 +28317, 29530, 28897, 37291, 45032, 36786, 31604, 32209, // 9000-9007 +27246, 29743, 27894, 20550, 37503, 43490, 14672, 14863, // 9008-9015 +48197, 49066, 21993, 16100, 32751, 41953, 33369, 19408, // 9016-9023 +18711, 35397, 45247, 40768, 43157, 41632, 19160, 4303, // 9024-9031 +14939, 31117, 42227, 48872, 47741, 42499, 35848, 26678, // 9032-9039 +22044, 23637, 27625, 36126, 42819, 43745, 48678, 52213, // 9040-9047 +46688, 41410, 35652, 28462, 27146, 26499, 24904, 27596, // 9048-9055 +29759, 30392, 34783, 39185, 36529, 28525, 25690, 34453, // 9056-9063 +41211, 33950, 29890, 39633, 40488, 23916, 15643, 25412, // 9064-9071 +34536, 36142, 38423, 39314, 31460, 21881, 23411, 34592, // 9072-9079 +45635, 50978, 45424, 32161, 25892, 25241, 21072, 21059, // 9080-9087 +28660, 34898, 35462, 33468, 31934, 31834, 33241, 32154, // 9088-9095 +26529, 24137, 33335, 42358, 36217, 30033, 34515, 37440, // 9096-9103 +36058, 35820, 40633, 49194, 50012, 37547, 22771, 15003, // 9104-9111 +15441, 24512, 35379, 43531, 45993, 36823, 25716, 22168, // 9112-9119 +24181, 31404, 40013, 45770, 49541, 47344, 36186, 26834, // 9120-9127 +24027, 19825, 16181, 18465, 24455, 29611, 29866, 30630, // 9128-9135 +37509, 40284, 39558, 41099, 32580, 27695, 35092, 26271, // 9136-9143 +19514, 36282, 34017, 12435, 17993, 35802, 34664, 26654, // 9144-9151 +25670, 39973, 51118, 29644, 8147, 16862, 28653, 34165, // 9152-9159 +46589, 49986, 30751, 10298, 3055, 7415, 24268, 41373, // 9160-9167 +47306, 45919, 39462, 31671, 24177, 17956, 27131, 42275, // 9168-9175 +43902, 44622, 46513, 43597, 41203, 37687, 35311, 32257, // 9176-9183 +26141, 23039, 20674, 18385, 22894, 31216, 35680, 39929, // 9184-9191 +40564, 34542, 33430, 34993, 35820, 37982, 37350, 37799, // 9192-9199 +39057, 31788, 19740, 19011, 29537, 35654, 35235, 34290, // 9200-9207 +31710, 28641, 29072, 32082, 40903, 50841, 48871, 40475, // 9208-9215 +32876, 27672, 27171, 28086, 28725, 30811, 35431, 33807, // 9216-9223 +25929, 23929, 24515, 23866, 24420, 25813, 27834, 31767, // 9224-9231 +33817, 32225, 39023, 46747, 41386, 35116, 37611, 43945, // 9232-9239 +46022, 46467, 44774, 32553, 20036, 18808, 25775, 34882, // 9240-9247 +41770, 42454, 35350, 25731, 18998, 19571, 28818, 38603, // 9248-9255 +45136, 47912, 40105, 33658, 33279, 26000, 25754, 28838, // 9256-9263 +28963, 34804, 28733, 26234, 36673, 39559, 41861, 42399, // 9264-9271 +40273, 34877, 29108, 29638, 22135, 22506, 38745, 36349, // 9272-9279 +20797, 27598, 37959, 24320, 17152, 29275, 42463, 41129, // 9280-9287 +21947, 13482, 20839, 27782, 37034, 53122, 55833, 26507, // 9288-9295 +1873, 0, 3213, 20771, 39224, 47414, 46617, 35099, // 9296-9303 +22149, 12578, 11315, 20810, 34153, 45568, 50527, 49292, // 9304-9311 +45543, 38995, 34071, 36359, 33620, 21926, 15834, 18627, // 9312-9319 +23675, 24474, 25295, 30686, 35274, 36623, 32316, 30949, // 9320-9327 +37177, 36238, 33087, 39490, 43175, 33952, 21004, 19431, // 9328-9335 +29289, 37551, 37238, 33269, 31465, 26272, 23084, 30864, // 9336-9343 +37858, 46832, 56282, 49289, 37289, 29280, 23738, 26028, // 9344-9351 +29891, 30636, 34318, 39396, 36539, 30561, 27252, 23341, // 9352-9359 +25311, 29171, 27076, 27887, 33202, 34426, 32197, 36026, // 9360-9367 +38902, 32597, 32153, 36346, 38223, 46877, 48468, 37167, // 9368-9375 +26726, 15905, 18131, 32866, 38989, 46309, 47357, 27288, // 9376-9383 +16944, 23564, 24582, 35610, 51882, 49389, 48056, 39470, // 9384-9391 +24789, 29161, 23961, 18896, 29407, 26165, 21535, 30107, // 9392-9399 +38090, 40665, 46433, 47498, 42563, 44917, 38760, 32630, // 9400-9407 +31611, 22165, 26654, 34931, 24670, 17405, 28982, 32664, // 9408-9415 +19047, 23453, 40419, 47305, 38729, 19817, 15535, 20923, // 9416-9423 +30337, 50433, 61181, 46406, 19162, 3971, 3380, 13642, // 9424-9431 +34073, 51730, 51928, 37124, 24446, 14745, 11578, 16500, // 9432-9439 +23637, 38246, 45964, 46942, 49267, 43086, 38820, 37733, // 9440-9447 +33692, 27512, 16882, 12583, 18974, 22894, 21196, 26012, // 9448-9455 +31552, 28715, 29484, 35866, 39700, 36534, 32685, 37350, // 9456-9463 +41274, 32941, 17088, 12698, 23135, 30400, 32151, 35016, // 9464-9471 +34801, 29449, 26636, 31604, 40735, 48197, 52216, 53270, // 9472-9479 +46069, 30356, 20199, 23239, 28276, 26628, 26192, 31324, // 9480-9487 +34108, 30521, 25479, 24051, 27059, 31269, 30098, 26885, // 9488-9495 +30608, 36312, 36249, 34353, 37788, 40220, 37092, 35925, // 9496-9503 +34350, 41819, 56063, 47672, 32909, 23938, 13886, 22110, // 9504-9511 +34208, 43902, 52998, 37807, 21034, 18747, 23014, 36586, // 9512-9519 +45871, 50843, 53789, 47643, 38553, 30325, 25367, 27138, // 9520-9527 +27980, 20407, 16078, 21595, 31909, 39997, 41872, 45859, // 9528-9535 +45271, 42800, 43444, 37582, 39196, 36283, 25216, 32439, // 9536-9543 +33594, 19974, 22449, 34930, 33162, 25278, 30104, 41770, // 9544-9551 +44818, 30891, 14915, 15881, 26109, 38313, 52485, 53542, // 9552-9559 +34087, 14082, 2944, 5476, 22995, 37454, 48807, 46040, // 9560-9567 +25210, 17791, 19553, 17925, 22239, 31003, 36496, 42017, // 9568-9575 +51277, 51468, 45685, 44274, 40144, 29528, 16574, 11566, // 9576-9583 +15601, 19439, 18041, 19498, 26973, 25965, 27208, 39550, // 9584-9591 +44153, 40986, 39543, 41850, 43325, 35328, 21755, 15165, // 9592-9599 +18490, 23710, 26656, 27243, 25813, 21713, 19231, 26928, // 9600-9607 +38064, 44798, 49042, 50453, 46023, 33869, 23100, 24251, // 9608-9615 +33295, 35363, 28488, 29193, 32137, 26900, 23922, 23501, // 9616-9623 +25683, 28320, 26050, 27498, 23382, 21692, 39651, 38222, // 9624-9631 +23946, 39366, 48409, 37763, 35129, 33549, 44595, 58112, // 9632-9639 +40484, 24605, 22549, 15553, 22583, 36426, 45297, 49857, // 9640-9647 +34437, 17731, 19828, 29607, 38791, 41592, 45601, 53453, // 9648-9655 +49450, 37303, 28949, 29769, 35297, 25751, 14921, 23020, // 9656-9663 +29336, 30951, 38164, 43702, 44429, 42331, 41205, 40523, // 9664-9671 +40243, 39201, 32104, 28730, 35643, 30395, 14422, 25179, // 9672-9679 +42422, 35582, 30012, 35970, 47897, 44774, 24439, 21608, // 9680-9687 +28383, 35615, 45979, 48946, 44832, 28660, 10600, 6332, // 9688-9695 +12887, 26124, 41397, 48691, 40238, 27279, 20706, 19167, // 9696-9703 +19533, 23738, 31949, 38104, 50657, 57884, 49228, 47146, // 9704-9711 +46398, 37673, 26470, 15993, 15547, 18116, 13673, 12723, // 9712-9719 +20552, 22391, 23085, 36757, 46066, 44007, 45112, 48700, // 9720-9727 +44011, 34555, 27076, 20157, 19121, 24180, 29149, 27518, // 9728-9735 +19666, 16096, 17668, 25518, 36612, 43333, 47804, 47264, // 9736-9743 +38328, 27864, 25658, 29381, 33633, 37316, 37095, 34035, // 9744-9751 +28707, 25629, 27973, 29658, 27371, 25260, 29644, 32843, // 9752-9759 +24127, 15850, 33909, 47780, 24660, 24029, 50252, 50756, // 9760-9767 +34876, 21261, 30787, 52641, 49491, 31260, 21587, 20947, // 9768-9775 +18175, 23278, 39664, 51337, 48259, 27059, 14949, 22356, // 9776-9783 +30697, 35880, 40402, 49670, 53441, 43576, 29873, 25622, // 9784-9791 +29556, 24813, 19702, 20967, 24118, 29618, 31556, 38235, // 9792-9799 +47429, 46210, 43468, 42613, 37510, 32862, 27745, 21612, // 9800-9807 +27906, 31070, 15682, 10016, 25099, 35040, 29550, 29907, // 9808-9815 +42035, 49561, 39253, 21718, 25000, 35080, 39231, 47402, // 9816-9823 +48367, 40847, 25106, 9788, 9644, 20315, 36914, 47931, // 9824-9831 +49567, 41861, 27262, 19408, 17737, 21309, 28068, 35763, // 9832-9839 +46928, 55129, 54765, 50187, 50637, 46487, 33452, 26854, // 9840-9847 +23401, 17353, 12210, 11704, 15783, 16693, 18877, 30204, // 9848-9855 +41745, 44488, 44570, 47525, 46274, 35862, 26769, 26190, // 9856-9863 +26493, 27097, 28607, 27412, 23493, 16252, 17217, 29898, // 9864-9871 +41195, 47942, 49111, 45815, 39943, 31362, 28650, 30111, // 9872-9879 +31841, 37116, 37130, 32721, 27975, 22450, 27036, 30703, // 9880-9887 +25103, 24818, 29304, 34801, 29988, 16081, 29433, 52797, // 9888-9895 +34235, 17824, 44067, 56812, 43089, 25028, 18775, 42526, // 9896-9903 +52428, 35024, 23430, 18053, 16692, 18622, 33948, 54024, // 9904-9911 +55734, 41283, 21558, 16751, 23250, 32457, 45399, 51482, // 9912-9919 +52982, 48350, 37991, 26658, 19422, 19912, 18108, 16225, // 9920-9927 +15424, 19644, 28936, 33741, 41281, 46025, 47518, 47828, // 9928-9935 +39170, 33612, 29210, 19425, 20359, 30103, 25157, 11433, // 9936-9943 +13285, 24927, 28900, 28343, 38745, 49946, 43440, 28319, // 9944-9951 +19552, 24493, 33650, 41491, 49317, 45169, 30301, 14604, // 9952-9959 +7357, 14997, 30909, 45026, 52558, 49025, 34052, 23840, // 9960-9967 +18799, 17631, 27970, 35351, 41411, 47514, 45800, 47197, // 9968-9975 +49776, 44784, 35302, 29748, 26951, 20969, 12108, 10445, // 9976-9983 +19454, 19527, 20352, 34558, 45684, 49816, 48376, 49931, // 9984-9991 +48125, 36888, 29724, 29885, 36197, 33228, 23719, 21424, // 9992-9999 +21308, 18507, 12284, 21584, 39120, 46683, 43962, 33622, // 10000-10007 +36111, 38727, 36589, 37596, 34306, 40774, 39181, 28666, // 10008-10015 +27506, 25964, 30086, 30562, 23310, 20128, 21759, 26364, // 10016-10023 +26472, 20167, 22748, 47045, 45531, 18414, 33290, 55729, // 10024-10031 +50263, 37300, 26823, 40041, 56710, 47331, 27866, 15687, // 10032-10039 +10199, 11076, 26736, 47523, 57174, 48390, 26594, 12219, // 10040-10047 +11277, 20925, 38103, 52606, 55883, 51402, 46739, 37689, // 10048-10055 +25599, 20246, 20464, 17763, 13777, 17413, 26626, 37098, // 10056-10063 +44148, 45177, 46739, 47051, 41970, 37439, 34105, 25743, // 10064-10071 +19057, 22347, 25378, 19418, 13378, 19977, 28433, 27955, // 10072-10079 +36619, 51581, 50734, 36616, 23829, 22384, 28645, 37693, // 10080-10087 +48201, 47357, 31575, 12958, 2081, 3606, 16101, 33440, // 10088-10095 +44225, 42806, 33117, 22016, 15857, 15382, 23176, 35462, // 10096-10103 +41520, 44758, 48389, 49021, 48305, 46393, 40018, 31372, // 10104-10111 +24713, 17651, 11964, 10884, 11382, 12798, 18579, 32281, // 10112-10119 +42791, 43228, 47997, 54524, 47405, 34490, 30414, 37008, // 10120-10127 +46972, 39814, 22480, 23224, 24723, 18366, 17661, 23111, // 10128-10135 +38596, 42581, 33887, 33169, 31224, 33423, 40038, 39203, // 10136-10143 +37721, 40485, 40795, 36251, 32343, 27422, 30300, 33150, // 10144-10151 +25330, 26702, 26980, 25507, 29462, 21925, 21540, 40952, // 10152-10159 +53711, 36998, 23241, 40985, 48671, 38246, 32167, 35467, // 10160-10167 +50986, 56596, 40988, 22369, 15602, 15683, 23188, 43901, // 10168-10175 +58295, 58143, 42295, 17853, 9556, 13094, 21673, 37319, // 10176-10183 +48788, 50675, 45635, 36374, 24579, 17895, 18697, 18591, // 10184-10191 +18934, 21407, 23039, 30058, 41422, 48680, 52848, 51802, // 10192-10199 +46542, 41891, 35167, 28318, 22768, 22442, 26034, 21804, // 10200-10207 +14683, 15199, 21059, 24627, 28347, 39667, 49930, 44326, // 10208-10215 +27408, 22150, 28608, 36601, 49230, 54055, 44118, 26687, // 10216-10223 +11080, 6191, 12214, 27348, 39266, 41940, 36985, 25962, // 10224-10231 +18148, 12553, 17175, 30401, 36256, 42059, 48262, 50045, // 10232-10239 +47815, 44181, 44787, 40341, 27349, 18192, 17701, 15140, // 10240-10247 +9578, 6926, 11723, 31123, 37402, 28879, 39902, 52343, // 10248-10255 +45262, 28318, 23928, 39690, 48399, 41330, 28086, 20828, // 10256-10263 +23517, 20651, 14893, 26470, 44031, 38401, 31653, 36240, // 10264-10271 +31941, 32981, 36791, 40451, 45393, 37471, 35725, 36723, // 10272-10279 +31171, 30305, 27573, 28212, 29349, 25895, 25527, 25380, // 10280-10287 +26605, 26952, 21719, 27860, 51884, 52617, 29225, 29582, // 10288-10295 +37458, 32583, 30622, 31490, 40126, 53575, 50777, 31734, // 10296-10303 +20110, 17026, 15709, 29047, 47728, 57385, 53789, 35878, // 10304-10311 +21220, 15792, 16583, 27020, 43063, 55262, 55322, 46906, // 10312-10319 +38162, 29101, 20812, 17980, 18251, 20838, 23959, 23790, // 10320-10327 +33684, 48485, 51349, 50025, 47027, 43237, 39736, 34262, // 10328-10335 +30912, 28129, 26702, 24371, 18227, 16771, 22154, 24978, // 10336-10343 +25319, 35674, 47060, 46316, 39905, 30795, 25192, 29745, // 10344-10351 +40999, 50536, 50272, 40780, 25921, 12810, 8418, 16066, // 10352-10359 +32619, 42524, 40698, 35614, 27770, 18604, 16954, 22348, // 10360-10367 +30472, 38371, 42027, 45002, 46026, 43547, 42469, 42720, // 10368-10375 +38507, 22670, 14802, 22012, 14687, 3506, 11347, 24174, // 10376-10383 +28897, 24774, 26333, 41794, 44758, 27115, 21158, 34197, // 10384-10391 +47144, 46362, 32485, 26765, 23725, 11287, 9982, 23052, // 10392-10399 +37357, 39985, 33249, 34384, 35413, 32515, 36130, 44503, // 10400-10407 +50140, 46027, 39911, 36375, 30258, 27554, 28206, 29735, // 10408-10415 +31299, 28176, 25455, 23181, 21519, 26799, 30226, 29185, // 10416-10423 +36888, 52333, 51274, 31833, 26566, 31892, 29212, 28583, // 10424-10431 +32355, 41889, 53172, 49535, 34565, 23128, 17921, 18685, // 10432-10439 +30169, 45422, 54988, 52650, 36030, 22322, 14516, 11209, // 10440-10447 +23578, 40312, 50888, 53751, 46417, 35335, 26694, 20704, // 10448-10455 +15008, 14090, 16342, 18743, 26872, 35902, 43492, 48228, // 10456-10463 +46702, 43968, 42797, 42975, 40024, 34986, 30556, 25495, // 10464-10471 +21211, 14876, 12898, 17797, 21834, 27373, 35904, 46489, // 10472-10479 +50822, 44303, 35494, 30112, 32758, 39101, 46143, 50937, // 10480-10487 +42715, 28257, 14618, 6400, 15939, 32754, 39739, 41851, // 10488-10495 +40704, 31478, 22467, 18507, 23600, 35538, 38001, 39640, // 10496-10503 +48219, 52317, 50505, 44581, 44329, 41486, 25987, 21266, // 10504-10511 +22135, 16232, 15653, 18727, 26245, 29349, 25921, 36545, // 10512-10519 +43967, 36110, 31419, 31126, 40262, 50588, 46080, 36699, // 10520-10527 +25067, 13694, 8036, 9715, 22936, 33539, 35711, 35781, // 10528-10535 +31207, 27523, 29073, 37540, 46060, 44022, 42813, 41019, // 10536-10543 +29916, 23681, 23980, 26025, 28635, 24040, 20711, 20805, // 10544-10551 +16769, 19546, 29338, 35117, 34108, 35507, 49293, 53804, // 10552-10559 +39518, 30618, 30307, 31069, 31267, 30307, 38904, 52952, // 10560-10567 +51286, 35053, 20994, 15690, 19214, 30272, 44913, 56599, // 10568-10575 +56535, 42470, 25266, 15231, 14855, 24820, 37358, 47076, // 10576-10583 +53325, 46717, 32576, 25725, 24939, 22297, 16055, 15075, // 10584-10591 +21892, 27738, 31085, 36050, 41636, 44727, 45561, 43709, // 10592-10599 +43385, 43075, 35103, 27428, 26587, 26881, 17880, 5116, // 10600-10607 +8888, 22868, 30549, 32132, 41606, 55603, 50129, 35888, // 10608-10615 +28902, 30591, 38563, 41035, 45872, 43709, 24291, 10065, // 10616-10623 +6665, 13864, 24704, 34530, 46466, 44851, 34693, 27288, // 10624-10631 +21994, 26083, 31142, 32542, 41189, 51700, 53804, 49752, // 10632-10639 +45768, 43603, 36153, 27180, 26787, 23639, 16616, 17027, // 10640-10647 +23836, 29624, 27616, 33507, 45171, 41332, 37165, 37360, // 10648-10655 +36978, 44043, 49131, 47276, 37389, 17939, 7056, 11689, // 10656-10663 +17072, 23481, 34049, 39228, 39393, 32869, 26066, 33015, // 10664-10671 +39060, 39230, 42777, 43390, 40079, 34501, 28818, 26070, // 10672-10679 +24895, 24574, 21502, 19374, 19357, 16303, 19711, 27520, // 10680-10687 +29191, 30589, 33641, 41519, 49666, 41258, 28427, 28348, // 10688-10695 +30892, 27809, 25943, 33035, 44895, 46035, 32190, 20945, // 10696-10703 +18813, 21145, 32417, 44866, 52150, 53981, 42375, 25316, // 10704-10711 +16130, 16969, 24729, 34153, 43091, 48272, 45567, 36154, // 10712-10719 +29315, 29363, 28099, 21628, 18190, 22768, 28056, 33276, // 10720-10727 +37415, 38603, 44209, 46820, 44460, 43258, 40925, 38658, // 10728-10735 +30297, 25059, 31619, 25403, 5225, 5721, 27199, 32702, // 10736-10743 +28606, 37653, 48930, 51800, 36059, 20686, 27950, 35491, // 10744-10751 +38552, 43752, 41864, 29396, 15003, 10240, 13909, 25400, // 10752-10759 +36438, 42517, 47408, 39829, 29898, 29236, 30571, 35010, // 10760-10767 +38214, 40725, 45691, 48405, 47081, 44874, 44001, 37878, // 10768-10775 +33256, 31415, 21400, 15554, 20123, 28042, 30331, 26214, // 10776-10783 +33768, 43755, 38292, 32341, 35207, 38860, 42648, 48104, // 10784-10791 +45313, 32589, 19550, 12051, 15536, 25790, 32570, 34824, // 10792-10799 +38218, 39824, 32956, 30303, 34205, 34809, 39785, 45048, // 10800-10807 +41983, 37685, 36681, 34621, 27143, 23603, 25582, 24257, // 10808-10815 +21406, 18352, 20249, 25314, 25089, 27542, 30919, 29667, // 10816-10823 +34667, 42147, 38570, 32048, 32957, 32004, 26081, 25960, // 10824-10831 +33647, 41223, 39887, 31276, 23967, 19893, 20901, 29129, // 10832-10839 +41461, 49656, 47158, 38798, 27004, 16057, 15882, 22582, // 10840-10847 +31693, 39273, 42174, 43542, 38522, 32045, 29969, 28300, // 10848-10855 +27263, 24494, 25087, 29273, 32821, 36254, 37325, 42553, // 10856-10863 +45739, 44589, 43436, 37483, 37476, 32025, 24324, 35337, // 10864-10871 +30893, 8908, 10595, 31598, 38644, 26688, 28493, 47771, // 10872-10879 +50664, 32298, 20318, 25767, 33640, 38058, 41869, 42132, // 10880-10887 +32122, 14885, 7401, 13677, 23321, 30201, 37730, 44810, // 10888-10895 +42109, 33495, 29184, 30349, 32689, 33894, 36279, 41807, // 10896-10903 +45265, 44821, 46550, 41860, 34966, 34656, 26051, 18601, // 10904-10911 +20322, 23510, 27098, 25195, 28662, 35604, 36917, 37998, // 10912-10919 +34659, 37239, 45658, 47683, 46834, 39491, 29712, 24228, // 10920-10927 +20107, 22570, 33480, 38780, 33601, 31429, 33847, 35148, // 10928-10935 +34031, 32655, 37165, 43379, 44901, 42467, 40867, 39517, // 10936-10943 +34616, 29292, 25341, 26963, 28902, 25345, 25482, 27395, // 10944-10951 +28260, 29089, 28286, 29196, 32489, 36778, 38757, 38078, // 10952-10959 +36502, 34598, 31974, 27928, 30149, 38817, 44110, 40645, // 10960-10967 +31071, 24655, 20891, 20392, 29688, 40835, 45354, 44935, // 10968-10975 +36723, 24008, 17203, 15853, 21663, 31074, 36261, 37889, // 10976-10983 +34626, 32212, 28218, 23888, 25124, 23404, 26213, 26564, // 10984-10991 +24676, 33873, 35950, 37762, 42582, 42427, 43695, 38101, // 10992-10999 +36581, 35866, 26826, 29121, 34108, 24443, 12279, 20748, // 11000-11007 +35797, 33288, 29279, 34198, 45962, 49707, 33196, 22873, // 11008-11015 +30118, 38180, 43103, 47993, 45190, 31172, 16218, 8570, // 11016-11023 +12452, 23153, 33833, 42081, 43937, 40847, 34654, 28147, // 11024-11031 +27911, 32083, 34018, 37545, 44529, 48659, 50109, 45577, // 11032-11039 +41361, 41150, 31892, 23258, 20631, 21255, 26719, 25132, // 11040-11047 +24765, 30807, 32566, 32141, 31096, 36209, 45215, 47903, // 11048-11055 +47220, 43233, 35573, 27496, 24498, 29042, 34446, 38794, // 11056-11063 +39263, 32735, 28624, 29821, 31157, 33400, 35789, 39904, // 11064-11071 +44806, 44802, 42389, 38247, 33584, 30568, 27238, 25320, // 11072-11079 +25019, 26487, 26240, 24218, 26017, 26956, 27272, 29182, // 11080-11087 +30822, 32921, 34520, 38130, 38805, 35380, 35033, 33341, // 11088-11095 +31681, 34945, 40183, 43556, 41743, 36102, 29801, 26297, // 11096-11103 +26285, 29834, 37459, 43891, 44510, 37099, 26772, 22106, // 11104-11111 +22776, 26779, 31327, 34690, 37544, 38232, 34431, 27000, // 11112-11119 +23343, 23590, 23528, 25983, 26649, 27555, 34711, 37628, // 11120-11127 +35827, 36614, 37094, 35681, 31617, 29892, 29487, 22878, // 11128-11135 +23888, 31236, 22685, 14146, 24473, 31667, 26879, 27742, // 11136-11143 +35678, 41140, 40424, 33056, 26619, 28152, 34538, 40332, // 11144-11151 +43450, 41003, 31307, 20552, 15230, 17886, 27331, 36974, // 11152-11159 +42969, 43280, 38805, 35433, 32142, 29023, 31109, 35816, // 11160-11167 +41432, 46231, 45825, 43353, 40852, 38812, 36555, 30689, // 11168-11175 +25796, 24792, 25278, 25049, 25801, 31104, 34166, 34429, // 11176-11183 +34777, 33490, 37302, 42185, 41149, 36606, 31247, 29670, // 11184-11191 +29034, 28732, 30895, 33062, 34757, 32946, 31322, 32312, // 11192-11199 +32003, 33684, 37612, 40677, 41747, 43309, 46402, 45047, // 11200-11207 +40306, 35783, 31862, 29893, 28727, 29021, 28910, 25901, // 11208-11215 +24533, 25141, 26167, 28208, 30522, 34239, 35098, 33611, // 11216-11223 +36829, 37650, 35662, 39254, 41022, 39078, 39080, 37954, // 11224-11231 +39181, 41948, 36502, 32328, 32803, 29475, 31459, 36539, // 11232-11239 +39579, 42290, 35708, 28820, 26680, 25888, 30532, 29918, // 11240-11247 +30494, 37369, 35920, 32735, 29853, 25851, 26749, 25968, // 11248-11255 +24808, 27962, 32410, 36647, 36343, 33585, 34114, 34239, // 11256-11263 +32557, 29707, 26268, 27669, 28571, 25847, 26795, 24194, // 11264-11271 +18987, 23763, 29482, 28859, 29563, 31547, 32528, 32943, // 11272-11279 +30761, 27844, 27664, 30179, 32834, 33619, 32721, 28617, // 11280-11287 +23544, 20895, 21682, 28299, 34665, 36940, 37145, 34791, // 11288-11295 +34723, 35825, 33992, 32286, 34892, 42423, 45123, 42406, // 11296-11303 +42668, 42290, 38385, 33072, 30624, 29938, 25773, 24635, // 11304-11311 +27465, 29815, 33910, 35419, 34379, 36134, 38370, 40286, // 11312-11319 +39772, 36160, 34812, 33370, 30899, 31723, 32964, 32033, // 11320-11327 +30018, 28486, 28062, 27461, 27459, 28724, 32857, 37892, // 11328-11335 +38179, 37973, 40608, 41441, 39779, 36297, 33367, 32332, // 11336-11343 +29948, 28481, 29834, 29442, 27396, 26613, 27036, 28412, // 11344-11351 +30286, 32339, 33628, 33090, 32901, 34419, 35951, 37759, // 11352-11359 +40195, 40772, 39305, 38445, 38042, 37160, 37872, 37744, // 11360-11367 +33775, 32145, 32549, 31110, 34433, 40711, 40544, 34139, // 11368-11375 +28385, 28735, 30149, 29209, 31993, 35355, 34445, 33111, // 11376-11383 +32139, 30798, 29532, 29872, 32887, 33435, 32516, 34122, // 11384-11391 +34522, 34424, 34721, 35563, 38041, 34997, 28715, 28150, // 11392-11399 +29571, 29498, 29964, 30475, 28614, 25295, 25798, 31173, // 11400-11407 +34244, 32141, 30579, 31321, 34004, 36671, 34072, 28929, // 11408-11415 +26437, 28585, 32227, 30833, 26985, 23156, 19662, 21023, // 11416-11423 +25515, 29185, 30236, 29483, 30797, 32655, 32059, 30341, // 11424-11431 +30496, 33827, 37235, 38912, 39288, 37867, 35836, 33963, // 11432-11439 +32177, 30872, 30524, 29744, 26837, 27064, 31598, 33627, // 11440-11447 +34556, 36631, 36229, 34376, 34322, 34660, 34645, 35558, // 11448-11455 +34545, 33428, 34398, 33703, 32121, 30196, 30371, 33344, // 11456-11463 +33516, 32077, 31702, 34564, 38147, 37434, 37526, 38816, // 11464-11471 +38179, 35849, 33379, 32805, 30485, 28506, 29589, 30403, // 11472-11479 +29995, 27615, 27397, 30027, 31235, 31842, 31899, 32235, // 11480-11487 +31500, 29961, 32441, 35415, 35766, 37088, 38311, 36494, // 11488-11495 +34781, 34557, 33358, 34623, 37839, 37266, 35135, 34661, // 11496-11503 +35188, 36050, 36801, 36690, 35049, 33145, 31238, 29361, // 11504-11511 +30215, 33290, 34850, 33436, 31621, 31662, 31035, 29602, // 11512-11519 +30266, 32502, 33830, 32411, 31222, 32313, 32376, 32261, // 11520-11527 +33307, 33751, 32915, 31775, 33044, 33855, 30890, 28875, // 11528-11535 +29713, 30193, 29695, 30719, 33544, 34053, 31167, 29950, // 11536-11543 +32049, 34211, 35502, 34013, 30051, 29325, 31396, 33081, // 11544-11551 +32939, 29703, 27561, 27501, 26987, 27807, 30061, 32310, // 11552-11559 +33500, 32969, 32809, 32764, 31790, 31437, 31459, 32787, // 11560-11567 +35936, 37483, 36403, 34008, 32494, 32574, 31384, 30437, // 11568-11575 +30945, 29584, 28520, 30274, 31445, 31239, 32050, 32831, // 11576-11583 +31777, 30989, 32078, 33182, 32765, 32260, 32690, 32587, // 11584-11591 +31838, 32096, 33074, 33342, 33331, 33494, 33128, 33133, // 11592-11599 +33954, 34648, 35671, 36471, 36275, 35689, 34531, 33776, // 11600-11607 +33399, 31707, 30404, 30266, 30095, 30176, 30185, 30739, // 11608-11615 +31761, 31463, 30410, 30600, 32040, 32351, 32691, 35442, // 11616-11623 +36278, 33565, 32404, 34483, 36679, 35336, 32218, 32269, // 11624-11631 +33990, 34848, 34840, 33153, 32083, 32602, 33077, 33935, // 11632-11639 +34710, 34518, 32432, 29955, 30514, 32372, 33244, 32921, // 11640-11647 +32464, 33132, 33381, 32765, 31653, 31309, 32595, 32546, // 11648-11655 +31322, 31053, 31794, 33222, 33639, 33045, 33187, 33661, // 11656-11663 +33426, 33138, 33193, 32179, 31129, 32521, 33265, 31561, // 11664-11671 +31719, 33784, 34745, 34431, 33155, 33197, 34759, 34628, // 11672-11679 +33147, 32007, 31818, 32777, 32838, 31488, 30212, 28773, // 11680-11687 +27765, 28046, 29339, 31758, 33094, 32896, 32787, 32240, // 11688-11695 +32708, 33301, 32269, 32659, 34134, 35476, 36881, 36549, // 11696-11703 +35335, 34023, 32881, 32421, 30843, 29206, 28507, 27649, // 11704-11711 +28297, 29975, 30168, 29946, 30144, 30439, 31096, 31512, // 11712-11719 +31326, 30891, 30472, 30860, 31649, 31670, 31341, 30910, // 11720-11727 +30358, 30544, 31459, 32223, 32644, 33110, 33825, 34745, // 11728-11735 +35298, 34673, 33612, 33217, 33196, 32783, 31575, 30347, // 11736-11743 +30140, 30363, 30717, 31336, 31742, 31911, 31558, 31313, // 11744-11751 +31955, 32182, 31990, 33266, 35251, 35122, 33655, 34771, // 11752-11759 +37952, 38722, 36826, 35702, 36592, 37644, 37335, 35845, // 11760-11767 +34201, 33255, 33171, 33766, 34237, 33544, 31444, 29149, // 11768-11775 +28474, 29537, 31097, 31917, 31367, 30683, 31279, 32110, // 11776-11783 +31603, 30777, 31289, 32212, 32287, 32420, 33461, 34157, // 11784-11791 +33683, 33461, 34407, 35158, 34213, 32489, 32068, 32612, // 11792-11799 +32152, 31122, 31227, 31318, 30431, 30980, 33518, 34510, // 11800-11807 +33076, 32792, 34660, 35608, 34378, 32870, 32495, 32625, // 11808-11815 +32751, 33125, 33529, 33126, 31601, 30340, 30881, 32642, // 11816-11823 +33807, 33952, 33862, 33868, 33980, 33863, 33327, 32864, // 11824-11831 +33076, 33822, 34702, 35662, 35935, 35145, 34308, 33927, // 11832-11839 +33340, 32018, 31022, 30814, 30593, 30585, 30759, 30623, // 11840-11847 +30570, 31242, 32155, 32337, 32298, 32274, 31751, 31208, // 11848-11855 +31389, 31629, 31330, 30637, 29781, 29637, 30465, 31216, // 11856-11863 +31444, 31815, 32565, 32407, 31644, 31704, 32102, 31539, // 11864-11871 +30068, 29144, 28611, 27758, 27157, 27623, 28846, 29005, // 11872-11879 +28311, 28315, 29050, 29909, 30369, 30954, 31157, 31169, // 11880-11887 +33165, 35762, 35363, 33266, 34655, 38500, 38880, 36225, // 11888-11895 +35494, 37900, 39535, 38384, 36611, 35660, 35155, 34406, // 11896-11903 +34667, 35740, 35292, 33182, 31423, 31680, 32556, 32927, // 11904-11911 +33208, 32905, 32307, 31926, 31946, 31728, 31051, 30938, // 11912-11919 +30886, 31121, 32245, 33412, 33586, 32914, 32850, 33461, // 11920-11927 +34082, 34321, 33745, 32776, 31993, 31476, 31138, 31847, // 11928-11935 +32495, 31762, 32023, 33333, 33045, 31848, 32028, 33062, // 11936-11943 +33337, 32570, 31422, 31678, 32669, 32875, 32869, 32356, // 11944-11951 +31970, 31886, 31602, 32636, 34548, 35827, 36185, 35798, // 11952-11959 +35317, 35293, 35261, 34558, 34308, 35270, 36442, 37078, // 11960-11967 +37142, 37143, 36659, 35985, 36086, 35589, 33929, 32739, // 11968-11975 +32408, 32136, 32066, 32751, 33385, 33486, 33574, 33510, // 11976-11983 +33212, 33246, 33326, 32455, 31689, 31978, 32089, 31299, // 11984-11991 +29846, 28881, 29320, 30472, 31127, 30938, 31416, 32224, // 11992-11999 +31689, 31139, 31593, 32005, 30948, 29134, 28456, 28087, // 12000-12007 +27784, 27581, 26999, 26824, 26858, 27009, 27132, 26978, // 12008-12015 +27579, 29245, 30881, 30820, 30097, 32134, 34904, 32906, // 12016-12023 +30352, 34116, 38524, 36981, 32816, 32336, 35698, 36793, // 12024-12031 +34651, 32943, 32310, 31604, 31567, 33851, 35279, 33405, // 12032-12039 +30926, 30233, 31082, 31513, 32124, 33491, 33841, 33682, // 12040-12047 +34202, 34390, 33175, 32425, 33116, 33663, 33470, 33194, // 12048-12055 +33914, 34432, 34288, 34521, 34471, 34207, 33510, 32800, // 12056-12063 +32824, 32412, 31254, 30736, 32160, 32521, 30824, 31175, // 12064-12071 +32567, 32479, 31744, 31426, 32234, 32677, 31271, 30459, // 12072-12079 +31660, 32377, 32190, 32333, 32495, 32155, 31239, 31801, // 12080-12087 +33750, 35194, 36737, 37896, 38106, 37604, 37105, 37334, // 12088-12095 +37219, 37402, 38530, 39552, 39841, 38804, 37348, 36198, // 12096-12103 +35025, 33805, 32341, 31287, 30502, 29546, 29312, 29884, // 12104-12111 +30882, 31749, 31941, 31770, 31930, 32695, 33498, 33708, // 12112-12119 +33161, 32634, 32661, 32667, 32147, 31070, 30760, 31071, // 12120-12127 +31145, 31955, 32910, 33446, 33673, 33276, 32896, 32493, // 12128-12135 +32122, 31772, 31138, 29975, 28999, 28902, 28149, 27368, // 12136-12143 +26852, 26471, 27264, 27060, 26749, 27719, 28701, 29827, // 12144-12151 +29301, 29106, 32518, 34783, 32047, 30158, 33771, 37673, // 12152-12159 +37045, 33414, 32556, 35906, 37328, 35463, 33803, 32843, // 12160-12167 +31641, 31900, 34430, 35755, 34309, 31342, 29528, 29820, // 12168-12175 +30891, 32316, 32599, 32623, 33174, 33304, 32933, 31655, // 12176-12183 +31326, 31557, 31189, 31423, 31923, 32638, 32819, 33284, // 12184-12191 +34047, 33629, 33012, 32007, 31125, 30538, 29629, 29027, // 12192-12199 +29103, 29740, 29315, 28913, 29996, 31488, 32104, 31392, // 12200-12207 +31617, 32678, 33131, 32849, 32731, 33553, 33115, 32548, // 12208-12215 +32895, 32618, 32189, 31548, 32151, 33780, 34893, 36139, // 12216-12223 +37209, 37763, 37400, 37091, 37408, 37433, 37907, 38977, // 12224-12231 +39930, 39986, 39437, 38676, 37123, 35476, 33883, 32504, // 12232-12239 +32045, 31796, 31142, 30808, 31202, 32165, 33050, 33022, // 12240-12247 +33078, 33559, 33812, 34289, 34414, 34320, 34032, 33690, // 12248-12255 +33934, 33629, 33558, 33744, 33348, 33557, 33997, 34017, // 12256-12263 +33924, 33627, 32786, 31570, 30568, 29700, 29237, 28811, // 12264-12271 +27955, 27095, 26466, 26274, 26175, 25853, 25967, 26651, // 12272-12279 +27080, 27436, 28396, 29730, 30579, 29639, 29928, 33903, // 12280-12287 +35668, 32617, 30926, 34154, 37848, 36560, 32840, 32791, // 12288-12295 +35558, 35959, 33665, 32322, 32047, 30903, 30989, 32775, // 12296-12303 +33311, 32396, 30238, 28282, 28530, 29450, 30243, 30927, // 12304-12311 +31879, 32818, 32522, 31718, 30969, 30873, 31170, 31101, // 12312-12319 +31652, 32153, 32755, 34012, 34734, 34970, 34755, 34154, // 12320-12327 +33891, 33576, 32615, 31900, 32134, 32272, 32227, 31912, // 12328-12335 +31285, 31490, 32336, 32928, 32316, 32095, 33542, 33360, // 12336-12343 +32119, 32437, 32867, 32584, 31904, 31212, 30982, 31023, // 12344-12351 +31067, 31188, 31684, 31930, 32142, 32904, 33140, 32821, // 12352-12359 +32076, 31652, 32129, 32566, 33599, 34939, 35492, 35821, // 12360-12367 +35719, 35143, 34303, 33020, 32040, 31851, 31884, 31793, // 12368-12375 +31650, 32082, 33215, 33628, 33542, 33449, 33403, 33645, // 12376-12383 +33461, 33574, 33846, 33642, 33835, 33336, 32946, 33944, // 12384-12391 +34519, 34684, 35467, 36091, 35973, 35719, 35478, 35245, // 12392-12399 +34530, 33493, 32994, 32500, 32188, 31349, 30146, 29271, // 12400-12407 +27879, 27364, 27060, 26744, 26847, 26306, 26795, 27333, // 12408-12415 +28426, 29927, 29155, 30472, 34303, 35542, 33618, 33085, // 12416-12423 +36625, 38925, 36824, 33764, 34211, 36469, 36016, 33925, // 12424-12431 +32078, 31522, 31142, 30459, 31413, 31922, 30876, 29114, // 12432-12439 +27868, 28236, 28850, 29474, 30393, 31623, 32360, 31949, // 12440-12447 +31037, 30227, 30417, 30558, 30756, 31797, 32324, 32978, // 12448-12455 +34704, 36097, 35583, 35123, 35376, 34775, 33930, 32545, // 12456-12463 +31723, 31942, 31754, 31930, 31623, 30667, 30839, 31762, // 12464-12471 +31487, 30854, 31701, 32498, 32240, 31572, 31436, 31717, // 12472-12479 +31361, 30748, 30183, 30652, 31049, 31178, 32563, 33217, // 12480-12487 +33344, 33741, 34664, 35654, 34727, 34499, 34876, 34461, // 12488-12495 +34870, 35221, 35773, 36185, 35604, 34974, 34071, 32868, // 12496-12503 +31313, 29753, 29121, 28972, 28686, 28942, 30167, 30918, // 12504-12511 +31175, 31699, 31969, 32102, 32043, 31729, 31559, 31857, // 12512-12519 +32393, 31958, 31031, 31255, 32230, 32876, 32947, 33574, // 12520-12527 +35074, 35395, 35026, 35435, 35562, 35328, 34746, 34014, // 12528-12535 +33782, 33132, 32428, 31857, 30645, 29613, 29056, 28656, // 12536-12543 +28451, 28192, 27865, 27623, 27903, 29237, 30066, 29777, // 12544-12551 +31060, 33670, 34494, 32974, 32787, 36481, 38474, 35767, // 12552-12559 +33665, 34619, 36574, 36043, 33397, 32751, 32912, 32303, // 12560-12567 +32083, 31978, 32174, 31434, 29401, 28715, 29378, 30069, // 12568-12575 +30351, 31045, 32349, 32726, 32471, 32062, 31638, 31367, // 12576-12583 +31031, 31804, 32808, 33028, 33624, 34399, 34639, 34156, // 12584-12591 +33367, 32793, 32067, 30596, 29270, 29352, 29620, 29564, // 12592-12599 +29687, 29662, 30052, 30847, 31632, 31746, 31627, 32830, // 12600-12607 +33558, 32861, 32526, 32609, 32441, 31949, 31462, 31274, // 12608-12615 +31560, 31904, 32270, 33211, 33702, 33528, 33895, 34397, // 12616-12623 +34588, 34488, 34187, 34332, 34442, 34248, 34645, 35214, // 12624-12631 +35511, 35475, 34540, 33195, 32121, 30884, 29330, 28368, // 12632-12639 +27784, 27375, 27942, 28574, 29049, 29854, 30278, 30271, // 12640-12647 +29993, 29941, 29956, 29843, 30405, 30710, 30058, 29524, // 12648-12655 +29809, 30562, 31080, 31401, 32191, 33660, 34276, 33825, // 12656-12663 +33801, 33992, 34159, 33896, 33016, 32360, 31910, 31720, // 12664-12671 +31340, 30521, 29979, 29644, 29310, 28818, 28711, 29041, // 12672-12679 +28660, 29214, 30986, 31602, 31692, 32696, 34814, 36110, // 12680-12687 +35104, 35534, 38293, 39409, 37805, 35678, 35827, 37274, // 12688-12695 +37066, 35915, 35394, 35361, 35239, 34889, 34953, 34969, // 12696-12703 +33961, 32483, 31531, 31438, 31842, 31717, 31377, 31451, // 12704-12711 +31447, 31231, 30591, 29823, 29482, 29337, 30076, 31606, // 12712-12719 +32537, 33077, 33731, 34416, 35046, 35266, 34983, 34111, // 12720-12727 +32743, 31916, 31780, 31682, 31455, 31407, 31732, 31888, // 12728-12735 +31812, 31713, 31702, 32137, 32414, 32114, 31688, 31530, // 12736-12743 +31296, 30717, 30186, 29715, 29654, 29873, 30201, 31024, // 12744-12751 +31789, 32798, 33490, 33618, 34213, 34501, 34794, 35357, // 12752-12759 +35853, 36638, 36950, 36996, 37140, 37334, 37294, 35977, // 12760-12767 +34273, 33180, 32267, 31173, 30206, 29647, 29250, 29314, // 12768-12775 +29794, 30138, 30574, 31193, 31481, 31184, 30683, 29997, // 12776-12783 +29572, 29456, 29225, 29262, 29229, 29239, 29715, 29969, // 12784-12791 +30074, 30480, 30956, 31000, 30706, 30368, 30074, 29765, // 12792-12799 +28839, 27445, 26525, 26190, 25820, 25082, 24342, 24020, // 12800-12807 +24140, 24180, 24103, 24474, 25288, 26416, 27468, 28672, // 12808-12815 +30250, 31752, 33550, 35325, 36187, 36134, 36413, 37778, // 12816-12823 +38862, 38622, 37731, 37277, 37233, 36995, 36580, 35835, // 12824-12831 +35434, 35613, 35696, 35632, 34937, 33854, 33140, 32883, // 12832-12839 +33332, 34020, 34441, 34567, 34707, 35117, 34959, 33963, // 12840-12847 +32883, 32124, 31657, 31665, 32458, 33520, 34075, 34235, // 12848-12855 +34386, 34157, 33412, 32554, 31738, 31001, 30325, 30086, // 12856-12863 +30558, 31080, 31553, 32223, 32888, 33330, 33564, 33975, // 12864-12871 +34441, 34430, 33833, 33168, 32891, 32639, 31857, 30902, // 12872-12879 +30533, 30679, 30586, 30316, 30738, 31962, 33031, 33515, // 12880-12887 +33888, 34418, 34822, 34844, 34818, 34936, 35085, 35246, // 12888-12895 +35623, 36146, 36316, 35927, 35348, 34833, 34042, 32958, // 12896-12903 +32346, 32480, 32468, 32092, 32112, 32898, 33623, 33723, // 12904-12911 +33848, 34337, 34438, 33944, 33495, 33305, 33067, 32753, // 12912-12919 +32456, 31856, 31119, 30927, 31206, 31326, 31205, 31198, // 12920-12927 +31093, 30552, 30063, 29986, 29854, 29275, 28573, 28080, // 12928-12935 +27642, 27251, 26975, 26573, 25968, 25652, 25729, 25627, // 12936-12943 +25459, 25811, 26487, 26911, 27242, 27897, 28823, 29767, // 12944-12951 +30658, 31299, 31564, 31875, 32541, 32861, 32528, 32501, // 12952-12959 +33149, 33490, 33180, 33024, 33015, 32481, 31771, 31929, // 12960-12967 +32637, 32658, 32002, 31828, 32225, 32481, 32567, 32896, // 12968-12975 +33205, 33235, 33270, 33405, 33305, 33030, 32813, 32659, // 12976-12983 +32779, 33283, 33630, 33562, 33513, 33650, 33505, 33013, // 12984-12991 +32604, 32567, 32408, 31566, 30672, 30782, 31502, 31585, // 12992-12999 +31184, 31372, 32150, 32538, 32377, 32505, 33090, 33276, // 13000-13007 +32821, 32521, 32607, 32463, 31979, 31797, 31817, 31557, // 13008-13015 +31316, 31776, 32556, 32745, 32622, 33054, 33786, 34035, // 13016-13023 +34175, 34762, 35436, 35796, 36131, 36476, 36514, 36205, // 13024-13031 +35897, 35633, 35044, 33967, 32808, 32179, 32095, 31935, // 13032-13039 +31440, 31094, 31245, 31667, 32165, 32689, 33147, 33471, // 13040-13047 +33826, 34210, 34367, 34310, 34579, 35202, 35280, 34684, // 13048-13055 +34233, 34102, 33881, 33657, 33552, 33399, 33091, 32575, // 13056-13063 +31980, 31206, 30067, 29061, 28754, 28553, 27799, 26956, // 13064-13071 +26624, 26709, 26801, 26963, 27500, 28175, 28585, 28865, // 13072-13079 +29381, 30204, 30965, 31152, 31262, 32082, 32783, 32555, // 13080-13087 +32366, 32720, 32837, 32631, 32839, 33106, 32597, 31876, // 13088-13095 +32149, 32738, 32328, 31629, 31795, 32187, 31879, 31231, // 13096-13103 +31221, 31825, 31929, 31717, 32391, 33128, 32785, 32500, // 13104-13111 +32960, 33162, 32984, 33056, 33411, 33865, 34392, 35006, // 13112-13119 +35525, 35522, 35224, 35035, 34637, 34054, 33819, 33812, // 13120-13127 +33612, 33034, 32414, 32477, 32786, 32450, 31983, 31954, // 13128-13135 +32023, 32225, 32527, 32414, 32099, 32106, 32376, 32492, // 13136-13143 +32225, 32047, 32094, 31821, 31700, 32465, 33160, 33192, // 13144-13151 +33154, 33361, 33745, 33785, 32992, 32326, 32155, 31790, // 13152-13159 +31808, 32504, 32741, 32792, 33444, 33762, 33411, 33125, // 13160-13167 +33104, 33097, 32949, 32894, 33287, 33539, 33354, 33401, // 13168-13175 +33689, 33743, 33592, 33285, 33063, 33037, 32776, 32385, // 13176-13183 +32077, 31563, 31325, 31540, 31556, 31510, 31613, 31735, // 13184-13191 +32306, 32909, 32788, 32842, 33380, 33482, 33113, 32565, // 13192-13199 +32140, 32144, 31784, 30818, 30412, 30401, 30266, 30417, // 13200-13207 +30384, 30065, 30270, 30708, 30910, 31275, 31729, 32150, // 13208-13215 +32618, 33046, 33927, 35071, 35499, 35507, 35548, 35094, // 13216-13223 +34471, 34294, 34092, 33617, 33158, 33042, 32935, 32171, // 13224-13231 +31567, 31936, 31885, 30920, 30287, 30056, 29718, 29299, // 13232-13239 +28664, 28631, 29300, 29272, 28901, 29226, 29255, 28797, // 13240-13247 +28784, 28893, 29058, 29360, 29278, 29221, 29532, 29534, // 13248-13255 +29514, 30144, 31018, 31470, 31359, 31412, 32166, 32662, // 13256-13263 +32741, 33221, 33640, 33589, 33674, 33820, 33967, 34265, // 13264-13271 +34026, 33326, 33007, 32947, 32968, 32974, 32729, 32704, // 13272-13279 +33130, 33539, 33956, 34304, 34557, 35166, 35839, 36284, // 13280-13287 +36877, 37066, 36762, 36844, 36806, 36205, 35812, 35359, // 13288-13295 +34858, 35179, 35141, 33840, 32937, 33014, 32874, 32443, // 13296-13303 +32349, 32430, 32138, 31726, 31978, 32492, 32528, 32499, // 13304-13311 +32635, 32687, 32920, 33183, 33184, 33336, 33415, 33228, // 13312-13319 +33301, 33226, 32510, 31856, 31379, 30903, 31037, 31640, // 13320-13327 +31775, 31446, 31379, 31828, 32172, 32240, 32531, 32642, // 13328-13335 +32133, 32049, 32349, 31906, 31259, 31097, 30739, 30346, // 13336-13343 +30308, 30367, 30782, 31730, 32551, 33065, 33523, 33888, // 13344-13351 +34074, 34075, 34346, 35206, 35982, 36297, 36712, 37226, // 13352-13359 +37198, 36658, 36050, 35595, 35043, 34159, 33331, 32914, // 13360-13367 +32620, 32108, 31548, 31243, 31038, 30731, 30609, 30593, // 13368-13375 +30210, 29982, 30414, 30735, 30668, 31006, 31542, 31873, // 13376-13383 +32162, 32187, 31724, 31525, 31772, 31733, 31242, 30996, // 13384-13391 +31019, 30599, 29676, 29212, 29445, 29708, 29861, 30028, // 13392-13399 +30021, 29951, 30060, 30076, 30140, 30594, 30891, 30792, // 13400-13407 +31110, 31589, 31590, 31745, 32058, 31701, 31332, 31551, // 13408-13415 +31473, 31329, 31863, 32364, 32695, 33506, 34121, 34213, // 13416-13423 +34790, 35721, 36150, 36447, 36852, 36640, 36048, 35949, // 13424-13431 +36024, 35588, 34803, 33972, 33168, 32586, 32063, 31436, // 13432-13439 +31160, 31387, 31737, 31870, 31479, 31026, 31245, 31487, // 13440-13447 +31249, 31355, 31877, 32098, 32071, 31912, 31847, 31978, // 13448-13455 +31642, 31212, 31790, 32271, 31635, 31092, 31091, 31140, // 13456-13463 +31136, 30701, 30188, 30548, 31051, 30900, 30859, 31180, // 13464-13471 +31388, 31619, 32068, 32482, 32882, 33359, 33771, 34080, // 13472-13479 +34432, 34501, 34240, 34484, 34761, 34063, 33561, 33830, // 13480-13487 +33613, 33420, 33757, 33244, 32562, 32968, 33099, 32932, // 13488-13495 +33745, 34693, 35353, 36231, 36453, 35934, 35709, 35606, // 13496-13503 +35322, 34876, 34043, 33487, 33428, 32852, 31836, 31179, // 13504-13511 +30838, 30644, 30515, 30408, 30647, 30804, 30372, 30206, // 13512-13519 +30932, 31905, 32291, 32257, 32308, 32063, 31500, 31263, // 13520-13527 +30857, 30179, 30320, 30263, 29375, 29397, 29600, 28601, // 13528-13535 +28187, 28456, 27977, 27812, 28138, 28010, 28167, 28445, // 13536-13543 +28328, 28761, 29309, 29419, 30081, 30900, 31269, 32120, // 13544-13551 +33046, 33014, 32869, 33054, 33057, 32868, 32588, 32506, // 13552-13559 +33247, 34139, 33973, 33781, 34948, 36109, 36006, 35858, // 13560-13567 +35916, 35202, 34755, 35206, 34874, 33952, 33923, 34049, // 13568-13575 +33851, 33854, 33265, 32651, 33052, 32638, 31040, 30736, // 13576-13583 +31204, 30980, 31058, 31984, 32786, 32736, 32210, 32854, // 13584-13591 +33996, 33567, 33001, 33721, 34029, 33751, 33900, 34144, // 13592-13599 +34308, 34101, 33321, 32881, 32537, 31324, 30016, 29484, // 13600-13607 +29605, 29650, 29509, 29872, 30531, 31251, 32608, 33222, // 13608-13615 +33208, 35633, 38388, 37365, 35639, 36857, 38818, 38854, // 13616-13623 +36679, 34543, 35088, 35931, 34035, 32066, 32381, 32917, // 13624-13631 +32221, 31079, 30516, 30774, 30964, 30808, 31142, 31768, // 13632-13639 +32099, 32617, 33316, 33576, 33758, 34323, 34638, 34097, // 13640-13647 +33587, 33860, 33828, 32736, 31784, 31441, 31186, 31023, // 13648-13655 +30590, 29968, 29983, 29997, 29679, 29762, 29910, 30607, // 13656-13663 +32491, 33146, 32169, 32647, 34469, 35153, 34451, 33647, // 13664-13671 +33821, 33939, 32321, 30682, 30784, 30884, 30097, 29591, // 13672-13679 +29216, 28209, 27131, 26710, 26833, 27487, 28727, 29687, // 13680-13687 +30168, 30652, 30498, 30279, 31451, 32446, 32199, 32465, // 13688-13695 +33002, 32501, 31797, 31170, 30493, 30001, 29020, 27825, // 13696-13703 +27690, 27701, 26928, 26871, 28377, 30103, 31087, 31678, // 13704-13711 +32330, 33063, 33380, 33220, 33795, 35150, 35674, 35458, // 13712-13719 +35493, 35114, 34292, 33506, 32493, 31880, 31592, 30713, // 13720-13727 +30275, 30949, 31361, 31361, 31745, 32434, 32947, 33044, // 13728-13735 +33373, 34373, 35169, 35794, 36395, 36148, 35725, 35817, // 13736-13743 +35254, 34022, 33361, 33137, 32349, 30986, 30437, 30838, // 13744-13751 +30304, 29012, 29369, 31187, 32509, 32824, 33148, 34299, // 13752-13759 +35429, 35474, 35397, 36174, 36849, 36889, 37388, 38048, // 13760-13767 +37157, 35305, 34364, 33500, 31712, 30289, 29854, 29863, // 13768-13775 +30247, 30503, 30186, 30052, 30460, 31054, 31973, 33169, // 13776-13783 +33752, 33840, 34491, 35278, 35287, 35079, 34913, 34167, // 13784-13791 +33471, 33484, 33250, 32356, 31830, 32000, 31402, 29663, // 13792-13799 +28759, 29465, 30279, 30407, 30630, 31602, 32645, 32865, // 13800-13807 +33248, 34934, 36911, 38091, 38314, 37687, 36675, 35204, // 13808-13815 +33724, 33303, 33216, 33071, 33276, 32124, 29591, 28390, // 13816-13823 +28026, 26886, 25918, 26114, 27572, 29087, 28985, 28729, // 13824-13831 +30054, 31515, 31813, 31581, 31651, 31981, 31742, 31411, // 13832-13839 +32191, 33179, 32980, 31372, 29378, 28063, 26851, 25644, // 13840-13847 +25561, 25951, 26392, 27531, 28248, 28488, 29481, 30406, // 13848-13855 +31235, 32629, 33449, 33947, 34981, 35780, 36302, 36292, // 13856-13863 +35134, 34248, 33952, 33201, 32539, 32224, 31940, 32058, // 13864-13871 +32043, 31561, 31645, 32146, 32392, 32665, 33010, 33327, // 13872-13879 +34038, 34995, 35600, 35870, 35935, 35543, 35134, 35257, // 13880-13887 +35354, 34909, 34270, 33659, 33204, 32707, 31767, 30761, // 13888-13895 +29977, 29340, 29169, 29569, 30215, 31033, 31650, 31909, // 13896-13903 +32358, 33161, 34062, 34744, 35235, 35848, 36221, 35791, // 13904-13911 +34792, 33810, 33381, 33309, 32736, 31781, 31088, 30621, // 13912-13919 +30333, 30190, 30359, 31110, 31863, 32426, 33128, 33498, // 13920-13927 +33718, 34583, 35433, 35578, 35472, 35569, 35565, 34742, // 13928-13935 +33674, 33374, 32920, 31794, 30966, 30573, 30332, 29990, // 13936-13943 +29428, 29947, 31491, 32503, 33372, 34501, 35016, 35264, // 13944-13951 +35384, 34995, 34439, 33999, 33815, 33807, 33236, 32456, // 13952-13959 +31841, 30978, 30286, 29892, 29328, 28739, 28169, 27772, // 13960-13967 +27895, 28101, 28339, 28739, 29267, 30326, 31147, 31260, // 13968-13975 +31881, 32613, 32705, 32977, 32924, 32424, 32481, 32140, // 13976-13983 +31204, 30582, 29538, 28500, 27974, 26820, 25832, 25629, // 13984-13991 +24903, 24512, 25471, 26609, 27645, 28641, 29529, 31114, // 13992-13999 +32830, 33562, 33934, 34352, 34579, 34973, 35430, 35324, // 14000-14007 +35105, 35527, 35838, 35171, 34406, 34107, 33810, 33625, // 14008-14015 +33517, 33210, 33134, 33160, 33306, 34108, 34634, 34428, // 14016-14023 +34686, 35116, 34889, 34653, 34549, 34288, 34151, 33829, // 14024-14031 +32966, 32506, 32603, 32448, 32081, 31816, 31243, 30615, // 14032-14039 +30388, 30471, 30949, 31435, 31393, 31652, 32463, 32926, // 14040-14047 +33230, 33757, 34269, 34768, 34940, 34629, 34474, 34210, // 14048-14055 +33560, 32844, 32258, 32085, 31819, 31140, 31213, 31924, // 14056-14063 +32085, 32201, 32658, 33109, 33481, 33370, 33490, 34395, // 14064-14071 +34494, 33921, 34025, 33976, 33313, 32681, 32095, 31709, // 14072-14079 +31266, 30348, 29712, 29485, 29454, 29765, 29992, 30348, // 14080-14087 +31096, 31520, 31749, 32161, 33005, 34486, 35415, 35422, // 14088-14095 +35616, 35624, 35162, 34836, 34031, 33105, 32579, 31359, // 14096-14103 +29968, 29298, 28953, 28959, 28771, 28096, 28151, 28860, // 14104-14111 +29306, 29993, 30856, 31568, 32476, 32852, 32984, 33684, // 14112-14119 +33997, 33848, 33671, 33275, 33110, 32766, 31490, 30393, // 14120-14127 +29844, 28957, 27849, 26974, 26378, 26079, 25998, 25845, // 14128-14135 +25796, 26387, 27724, 29210, 30352, 31450, 32536, 33456, // 14136-14143 +34048, 34367, 35252, 35995, 35403, 35126, 35379, 34672, // 14144-14151 +33619, 32918, 32323, 31571, 30205, 28620, 28297, 28920, // 14152-14159 +28971, 28982, 29394, 29980, 31412, 32929, 33551, 34157, // 14160-14167 +35329, 35881, 35831, 36022, 35880, 36069, 36530, 35990, // 14168-14175 +35454, 35113, 34212, 33358, 32899, 32322, 31718, 31592, // 14176-14183 +31493, 31634, 31726, 31472, 31939, 32564, 32805, 32851, // 14184-14191 +32874, 33229, 33197, 33161, 33307, 33036, 32809, 33057, // 14192-14199 +33244, 32754, 32164, 31879, 31645, 31306, 30671, 30650, // 14200-14207 +30841, 30418, 30422, 31084, 31732, 32014, 32100, 32529, // 14208-14215 +33277, 33557, 33327, 33352, 33382, 33354, 33023, 32391, // 14216-14223 +32523, 32833, 32688, 32618, 32337, 31932, 32037, 31752, // 14224-14231 +31149, 31415, 31518, 31546, 32135, 32108, 32385, 32985, // 14232-14239 +32847, 32964, 33532, 33684, 33300, 32961, 32582, 32329, // 14240-14247 +32083, 31184, 30515, 30006, 29532, 29677, 29851, 30197, // 14248-14255 +30641, 31308, 32183, 32894, 33882, 34603, 35016, 35221, // 14256-14263 +34809, 34555, 34278, 33763, 33518, 33145, 32140, 31086, // 14264-14271 +30417, 29555, 28688, 28188, 27644, 27315, 27288, 27345, // 14272-14279 +27682, 28400, 29143, 30125, 31122, 31474, 31805, 32556, // 14280-14287 +33099, 33325, 33543, 33391, 33058, 33210, 32760, 31925, // 14288-14295 +31685, 31134, 30510, 30258, 29815, 29577, 29833, 29817, // 14296-14303 +30044, 30982, 31115, 31253, 32450, 33065, 33429, 34347, // 14304-14311 +34938, 35251, 35994, 36286, 36244, 36585, 36251, 35918, // 14312-14319 +35429, 34443, 34023, 33371, 32774, 32151, 31401, 31313, // 14320-14327 +31065, 31030, 31106, 31036, 31419, 32044, 32398, 32264, // 14328-14335 +32941, 33323, 32917, 33101, 32943, 33167, 33377, 32837, // 14336-14343 +32863, 32673, 32169, 32129, 32156, 31889, 31752, 31816, // 14344-14351 +31755, 31901, 31861, 31884, 32129, 32198, 32529, 32710, // 14352-14359 +32941, 33111, 32937, 32697, 32577, 32731, 32235, 32025, // 14360-14367 +32116, 31942, 32537, 32467, 32263, 32754, 32787, 32914, // 14368-14375 +33021, 33265, 33452, 33760, 34100, 33763, 33930, 34057, // 14376-14383 +34160, 34433, 33918, 33754, 33674, 33342, 32857, 31861, // 14384-14391 +31593, 31747, 31484, 31075, 30858, 30875, 31043, 31335, // 14392-14399 +31439, 31700, 32125, 32338, 32492, 32642, 32812, 32811, // 14400-14407 +32773, 32428, 31947, 31973, 31888, 31584, 30839, 29847, // 14408-14415 +29439, 29242, 28977, 28728, 28575, 28473, 28543, 28985, // 14416-14423 +29538, 29998, 30522, 31276, 31788, 32270, 32911, 32931, // 14424-14431 +32811, 32794, 32394, 31989, 31938, 31481, 31114, 31025, // 14432-14439 +29815, 29333, 29601, 29119, 29270, 29218, 28974, 29365, // 14440-14447 +29924, 30756, 31563, 32746, 33364, 33407, 34030, 34463, // 14448-14455 +34906, 34945, 35010, 35310, 34937, 34788, 34327, 33630, // 14456-14463 +32853, 32077, 32143, 31899, 31525, 31557, 31781, 31984, // 14464-14471 +31973, 32398, 32581, 32623, 33076, 33402, 33654, 33628, // 14472-14479 +33666, 34087, 34449, 34383, 34069, 33854, 33513, 33129, // 14480-14487 +32504, 31940, 31777, 31596, 31248, 30696, 31126, 31912, // 14488-14495 +31896, 32143, 32575, 32526, 32521, 32946, 32989, 32936, // 14496-14503 +33188, 32957, 33132, 33015, 32628, 32935, 32822, 32712, // 14504-14511 +32410, 32145, 32245, 32200, 32695, 32822, 32857, 33012, // 14512-14519 +32799, 32721, 32533, 32819, 32829, 32744, 33208, 33325, // 14520-14527 +33525, 32982, 32665, 32949, 32590, 32733, 32815, 32766, // 14528-14535 +32644, 32527, 32997, 33102, 33300, 33400, 33719, 34144, // 14536-14543 +33738, 33827, 34194, 34345, 34115, 33604, 33490, 33038, // 14544-14551 +32766, 32547, 32318, 32066, 31457, 31333, 30720, 30259, // 14552-14559 +30599, 30219, 30141, 30149, 30044, 30562, 30752, 30831, // 14560-14567 +31230, 31515, 31721, 32013, 32174, 32096, 32148, 31810, // 14568-14575 +31152, 30876, 30362, 29906, 29825, 29170, 28798, 28735, // 14576-14583 +28303, 28495, 28678, 28661, 29057, 29592, 30168, 30694, // 14584-14591 +31846, 32657, 32778, 33441, 33571, 33532, 33616, 33351, // 14592-14599 +33421, 33244, 32839, 32299, 31948, 32050, 31727, 31343, // 14600-14607 +31181, 30983, 30972, 31103, 31140, 31474, 31936, 32078, // 14608-14615 +32783, 33139, 32840, 33434, 33851, 33609, 33678, 34186, // 14616-14623 +34521, 34593, 34309, 33646, 33821, 33482, 32775, 32992, // 14624-14631 +32275, 31937, 32271, 32042, 31880, 31747, 32293, 32440, // 14632-14639 +32271, 32711, 32836, 32831, 32660, 32944, 33202, 32743, // 14640-14647 +32967, 33189, 32934, 32769, 32705, 32808, 32753, 32669, // 14648-14655 +32718, 33024, 32827, 32740, 33291, 33337, 33460, 33648, // 14656-14663 +33847, 33924, 33516, 33610, 33777, 33705, 33420, 33177, // 14664-14671 +33109, 32859, 32941, 32378, 32008, 32459, 32371, 32790, // 14672-14679 +32953, 32746, 32992, 32698, 32713, 32764, 32610, 32697, // 14680-14687 +32718, 33055, 33080, 33023, 33220, 33024, 32997, 32868, // 14688-14695 +32438, 32361, 32066, 31594, 31386, 30979, 30490, 30354, // 14696-14703 +30531, 30626, 30652, 31093, 31149, 30940, 31261, 31515, // 14704-14711 +31897, 32238, 32143, 31884, 31910, 32299, 32065, 32085, // 14712-14719 +32162, 31690, 32086, 31931, 31219, 31224, 30869, 30537, // 14720-14727 +30471, 30212, 30048, 30184, 30358, 30385, 30803, 31337, // 14728-14735 +31621, 31729, 31759, 32028, 32247, 32282, 32394, 32629, // 14736-14743 +32650, 32554, 32797, 32702, 32413, 32543, 32661, 32670, // 14744-14751 +32409, 32380, 32694, 32413, 32271, 32385, 32094, 32422, // 14752-14759 +32970, 32828, 32783, 32944, 32777, 32767, 33039, 32954, // 14760-14767 +32997, 32978, 32237, 32202, 32195, 31611, 31726, 31775, // 14768-14775 +31580, 31522, 31854, 32283, 31907, 31992, 32190, 32100, // 14776-14783 +32428, 32457, 32761, 33090, 33145, 33390, 33597, 33894, // 14784-14791 +33704, 33712, 33838, 33575, 33727, 33380, 33047, 33208, // 14792-14799 +33190, 33105, 32945, 33084, 32894, 32863, 32969, 32552, // 14800-14807 +33109, 33376, 33366, 33627, 33033, 33203, 33500, 33339, // 14808-14815 +33643, 33651, 33664, 33514, 33212, 32792, 32577, 33010, // 14816-14823 +32960, 32821, 32298, 32111, 32815, 32166, 31774, 32284, // 14824-14831 +32072, 32014, 32088, 32262, 32575, 32772, 32755, 32416, // 14832-14839 +32355, 31990, 31842, 32039, 31450, 31279, 31378, 31033, // 14840-14847 +30885, 30944, 31178, 31119, 30867, 30893, 30999, 31043, // 14848-14855 +30988, 31226, 31342, 31004, 30852, 31019, 31182, 31147, // 14856-14863 +31496, 31558, 31154, 31586, 31935, 31923, 32007, 31557, // 14864-14871 +31169, 31385, 31548, 31468, 31775, 31618, 31102, 31653, // 14872-14879 +31766, 31790, 32659, 32443, 32098, 32221, 32207, 32606, // 14880-14887 +32706, 32532, 32710, 32537, 32091, 32306, 32362, 31874, // 14888-14895 +32207, 32553, 32171, 32180, 32407, 32666, 32972, 32805, // 14896-14903 +32815, 33152, 32919, 32892, 33247, 32969, 32615, 32788, // 14904-14911 +32920, 32823, 32713, 32657, 32887, 33085, 32707, 32727, // 14912-14919 +32784, 32205, 32253, 32279, 32329, 32857, 32917, 33185, // 14920-14927 +33296, 33116, 33279, 33071, 33105, 33412, 33479, 33653, // 14928-14935 +33674, 33503, 33310, 33363, 33465, 33224, 32999, 32454, // 14936-14943 +31576, 31275, 31227, 31125, 31159, 31444, 31932, 32084, // 14944-14951 +32527, 33204, 33289, 33510, 33674, 33737, 34120, 33944, // 14952-14959 +33888, 34114, 33609, 32988, 32865, 32934, 32660, 32665, // 14960-14967 +33003, 32767, 32635, 32605, 32233, 32272, 32243, 31901, // 14968-14975 +32179, 32366, 32351, 32569, 32367, 32329, 32519, 32266, // 14976-14983 +32073, 32032, 32303, 32265, 31887, 32000, 31950, 31983, // 14984-14991 +32077, 31686, 31483, 31366, 31284, 31316, 31255, 31135, // 14992-14999 +31349, 31644, 31350, 31538, 31776, 31492, 31809, 32006, // 15000-15007 +31999, 32208, 32064, 32047, 32196, 31817, 31483, 31901, // 15008-15015 +32045, 31779, 31889, 31922, 31806, 31919, 32009, 32103, // 15016-15023 +32504, 32562, 32431, 32877, 32618, 32414, 32843, 32616, // 15024-15031 +32738, 32910, 32596, 32551, 32601, 32701, 32675, 32772, // 15032-15039 +32980, 32890, 32690, 32693, 32938, 32886, 32935, 32892, // 15040-15047 +32646, 32812, 32780, 32821, 32882, 32727, 32792, 32759, // 15048-15055 +32759, 32476, 32322, 32424, 32282, 32357, 32214, 31940, // 15056-15063 +31622, 31372, 31698, 31728, 31846, 32330, 32437, 32424, // 15064-15071 +32659, 32831, 32625, 32715, 32884, 32646, 32622, 32643, // 15072-15079 +32645, 32461, 32004, 32115, 32375, 32064, 31915, 32223, // 15080-15087 +32042, 31828, 32059, 32198, 32510, 32831, 32830, 32835, // 15088-15095 +33024, 33388, 33656, 33827, 33769, 33607, 33808, 33777, // 15096-15103 +33320, 33199, 33154, 32832, 32800, 32761, 32569, 32616, // 15104-15111 +32714, 32705, 32580, 32684, 32785, 32755, 32801, 32576, // 15112-15119 +32787, 33039, 32711, 32942, 33049, 32729, 32719, 32831, // 15120-15127 +32726, 32682, 32787, 32500, 32195, 31804, 31354, 31378, // 15128-15135 +31155, 30831, 30910, 31204, 31313, 31241, 31469, 31535, // 15136-15143 +31730, 32099, 32244, 32587, 32695, 32788, 32797, 32608, // 15144-15151 +32844, 32848, 32685, 32470, 32179, 32183, 32079, 31888, // 15152-15159 +31723, 31770, 31702, 31595, 31976, 32049, 32179, 32747, // 15160-15167 +32914, 32717, 32665, 32737, 32786, 32831, 32762, 32875, // 15168-15175 +32987, 32782, 32735, 32709, 32593, 32471, 32664, 32880, // 15176-15183 +32678, 32851, 32920, 32728, 32879, 32856, 32908, 32889, // 15184-15191 +32843, 32921, 32735, 32801, 32955, 32843, 32784, 32775, // 15192-15199 +32623, 32664, 32706, 32577, 32722, 32544, 32294, 32484, // 15200-15207 +32696, 32919, 32625, 32529, 32835, 32705, 32839, 32843, // 15208-15215 +32785, 32759, 32462, 32572, 32278, 31899, 31883, 31508, // 15216-15223 +31325, 31451, 31489, 31208, 30982, 31084, 31208, 31385, // 15224-15231 +31473, 31685, 31878, 31917, 32223, 32479, 32704, 32959, // 15232-15239 +32996, 32949, 32887, 33064, 33085, 32937, 33069, 32909, // 15240-15247 +32714, 32781, 32502, 32318, 32288, 32106, 32014, 32105, // 15248-15255 +32135, 31947, 32132, 32650, 32677, 32610, 32868, 33101, // 15256-15263 +32924, 32792, 33104, 33354, 33684, 33744, 33429, 33280, // 15264-15271 +33061, 32977, 32776, 32790, 33018, 32757, 32630, 32263, // 15272-15279 +32157, 32424, 32306, 32719, 32978, 32830, 32876, 32949, // 15280-15287 +33137, 33054, 33175, 33241, 33156, 33465, 33198, 33038, // 15288-15295 +33026, 32679, 32514, 32623, 32773, 32474, 32335, 32401, // 15296-15303 +32288, 32396, 32388, 32369, 32269, 32340, 32361, 32076, // 15304-15311 +32292, 32367, 32478, 32696, 32595, 32804, 32728, 32763, // 15312-15319 +32805, 32653, 32766, 32569, 32735, 32900, 32647, 32890, // 15320-15327 +32866, 32713, 32824, 32756, 32774, 32837, 32824, 32950, // 15328-15335 +32934, 32687, 32755, 32547, 32350, 32571, 32234, 32023, // 15336-15343 +31960, 31728, 31800, 31816, 31984, 31913, 32015, 32240, // 15344-15351 +31785, 32165, 32555, 32253, 32472, 32130, 31846, 32286, // 15352-15359 +32071, 31888, 32212, 32123, 32002, 32132, 31908, 31787, // 15360-15367 +31888, 31577, 31285, 31541, 31847, 31751, 31937, 32118, // 15368-15375 +31708, 31915, 32304, 32367, 32686, 32489, 32528, 32876, // 15376-15383 +32675, 32851, 32791, 32661, 32899, 32484, 32157, 32128, // 15384-15391 +32069, 31894, 31632, 31916, 31976, 31858, 31999, 32102, // 15392-15399 +32458, 32704, 32820, 32801, 32994, 33473, 33473, 33538, // 15400-15407 +33553, 33588, 33716, 33622, 33700, 33348, 33217, 33172, // 15408-15415 +32817, 32865, 32620, 32859, 33044, 32692, 32956, 32688, // 15416-15423 +32605, 32869, 32632, 32396, 32301, 32631, 32446, 32409, // 15424-15431 +32742, 32615, 32935, 33019, 32964, 32970, 32833, 33066, // 15432-15439 +32800, 32654, 32753, 32798, 32771, 32588, 32974, 32768, // 15440-15447 +32621, 32679, 32161, 32644, 32846, 32685, 32876, 32697, // 15448-15455 +32732, 32672, 32783, 32769, 32575, 32782, 32635, 32798, // 15456-15463 +32833, 32604, 32870, 32711, 32477, 32703, 32779, 32702, // 15464-15471 +32900, 32734, 32430, 32852, 32851, 32770, 32942, 32893, // 15472-15479 +32961, 32837, 33020, 32919, 32653, 33002, 32791, 32737, // 15480-15487 +32675, 32558, 32900, 32707, 32662, 32727, 32626, 32692, // 15488-15495 +32509, 32378, 32275, 32020, 31938, 32132, 32060, 31912, // 15496-15503 +31812, 31414, 31694, 31848, 31477, 31566, 31423, 31605, // 15504-15511 +31713, 31423, 31451, 31345, 31527, 31472, 31425, 31849, // 15512-15519 +31612, 31685, 31833, 31677, 31833, 31635, 31838, 32271, // 15520-15527 +31964, 31808, 32130, 32299, 32143, 32176, 32294, 32190, // 15528-15535 +32323, 32661, 32769, 32666, 32795, 32898, 32727, 32784, // 15536-15543 +32780, 32716, 32804, 32770, 32799, 32816, 32782, 32831, // 15544-15551 +32778, 32839, 32851, 32758, 32760, 32767, 32855, 32796, // 15552-15559 +32734, 32838, 32758, 32780, 32802, 32738, 32768, 32788, // 15560-15567 +32753, 32757, 32834, 32827, 32815, 32817, 32725, 32759, // 15568-15575 +32793, 32685, 32724, 32776, 32788, 32781, 32764, 32772, // 15576-15583 +32708, 32714, 32739, 32741, 32840, 32653, 32368, 32649, // 15584-15591 +32673, 32341, 32652, 32891, 32649, 32674, 32825, 32748, // 15592-15599 +32749, 32759, 32737, 32795, 32773, 32717, 32585, 32405, // 15600-15607 +32580, 32699, 32585, 32681, 32821, 32752, 32747, 32784, // 15608-15615 +32713, 32772, 32778, 32756, 32778, 32732, 32799, 32752, // 15616-15623 +32764, 32775, 32727, 32795, 32712, 32785, 32733, 32688, // 15624-15631 +32785, 32667, 32849, 32645, 32373, 32346, 32132, 32364, // 15632-15639 +32347, 32235, 32283, 32211, 32277, 32214, 32316, 32195, // 15640-15647 +32301, 32680, 32307, 32426, 32588, 32464, 32545, 32466, // 15648-15655 +32556, 32473, 32517, 32485, 32292, 32475, 32257, 32210, // 15656-15663 +32296, 32218, 32331, 32227, 32265, 32283, 32253, 32251, // 15664-15671 +32240, 32530, 32515, 32520, 32543, 32453, 32569, 32451, // 15672-15679 +32554, 32717, 32562, 32721, 32800, 32713, 32750, 32735, // 15680-15687 +32764, 32773, 32745, 32739, 32768, 32768, 32759, 32763, // 15688-15695 +32769, 32776, 32765, 32762, 32762, 32769, 32787, 32763, // 15696-15703 +32758, 32780, 32768, 32747, 32790, 32768, 32769, 32764, // 15704-15711 +32542, 32481, 32585, 32671, 32591, 32373, 32631, 32862, // 15712-15719 +32610, 32630, 32602, 32441, 32558, 32494, 32492, 32556, // 15720-15727 +32485, 32525, 32463, 32496, 32550, 32450, 32614, 32646, // 15728-15735 +32699, 32882, 32650, 32668, 32878, 32713, 32765, 32807, // 15736-15743 +32753, 32813, 32729, 32788, 32786, 32745, 32787, 32686, // 15744-15751 +32853, 32706, 32372, 32664, 32630, 32447, 32561, 32465, // 15752-15759 +32574, 32781, 32792, 32777, 32761, 32779, 32796, 32797, // 15760-15767 +32769, 32730, 32741, 32791, 32756, 32749, 32758, 32703, // 15768-15775 +32832, 32651, 32379, 32663, 32603, 32441, 32583, 32468, // 15776-15783 +32469, 32535, 32510, 32540, 32500, 32571, 32539, 32467, // 15784-15791 +32553, 32661, 32866, 32617, 32366, 32673, 32614, 32447, // 15792-15799 +32551, 32498, 32534, 32550, 32500, 32525, 32509, 32547, // 15800-15807 +32513, 32507, 32529, 32494, 32532, 32514, 32526, 32510, // 15808-15815 +32504, 32533, 32515, 32529, 32481, 32507, 32520, 32453, // 15816-15823 +32520, 32462, 32535, 32746, 32765, 32745, 32751, 32789, // 15824-15831 +32778, 32737, 32775, 32765, 32756, 32752, 32766, 32763, // 15832-15839 +32730, 32744, 32756, 32746, 32754, 32781, 32752, 32772, // 15840-15847 +32778, 32763, 32797, 32769, 32766, 32794, 32757, 32769, // 15848-15855 +32781, 32768, 32745, 32766, 32747, 32738, 32752, 32745, // 15856-15863 +32788, 32754, 32785, 32749, 32548, 32497, 32526, 32743, // 15864-15871 +32824, 32738, 32873, 32656, 32405, 32647, 32669, 32421, // 15872-15879 +32646, 32894, 32632, 32671, 32811, 32754, 32794, 32728, // 15880-15887 +32750, 32778, 32792, 32711, 32587, 32798, 32804, 32768, // 15888-15895 +32820, 32753, 32775, 32758, 32754, 32781, 32761, 32750, // 15896-15903 +32744, 32782, 32758, 32782, 32772, 32745, 32769, 32756, // 15904-15911 +32777, 32752, 32755, 32771, 32763, 32796, 32775, 32772, // 15912-15919 +32792, 32758, 32771, 32769, 32767, 32764, 32785, 32778, // 15920-15927 +32773, 32788, 32769, 32759, 32751, 32779, 32771, 32765, // 15928-15935 +32794, 32784, 32771, 32774, 32777, 32778, 32764, 32777, // 15936-15943 +32774, 32779, 32755, 32760, 32776, 32762, 32755, 32791, // 15944-15951 +32782, 32764, 32799, 32772, 32760, 32785, 32759, 32774, // 15952-15959 +32779, 32769, 32788, 32776, 32765, 32748, 32766, 32744, // 15960-15967 +32748, 32799, 32773, 32767, 32774, 32765, 32755, 32757, // 15968-15975 +32785, 32766, 32759, 32773, 32749, 32756, 32780, 32783, // 15976-15983 +32767, 32792, 32785, 32766, 32768, 32749, 32771, 32745, // 15984-15991 +32776, 32786, 32746, 32775, 32756, 32753, 32769, 32749, // 15992-15999 +32780, 32769, 32763, 32772, 32762, 32755, 32763, 32778, // 16000-16007 +32767, 32767, 32776, 32774, 32765, 32779, 32791, 32760, // 16008-16015 +32768, 32783, 32754, 32769, 32783, 32764, 32759, 32768, // 16016-16023 +32779, 32786, 32791, 32796, 32784, 32780, 32771, 32763, // 16024-16031 +32774, 32768, 32760, 32781, 32773, 32769, 32783, 32766, // 16032-16039 +32775, 32760, 32771, 32765, 32751, 32764, 32760, 32777, // 16040-16047 +32767, 32769, 32777, 32768, 32761, 32765, 32759, 32745, // 16048-16055 +32769, 32763, 32763, 32778, 32763, 32753, 32771, 32769, // 16056-16063 +32759, 32770, 32779, 32771, 32767, 32770, 32762, 32778, // 16064-16071 +32785, 32784, 32784, 32784, 32782, 32769, 32788, 32771, // 16072-16079 +32764, 32790, 32762, 32774, 32777, 32764, 32766, 32765, // 16080-16087 +32759, 32752, 32760, 32766, 32760, 32769, 32757, 32755, // 16088-16095 +32765, 32769, 32758, 32767, 32775, 32763, 32764, 32765, // 16096-16103 +32760, 32765, 32779, 32768, 32773, 32779, 32773, 32766, // 16104-16111 +32771, 32767, 32761, 32766, 32765, 32781, 32763, 32778, // 16112-16119 +32776, 32772, 32772, 32770, 32768, 32770, 32768, 32776};// 16120-16127
diff -r 0871fbbffcad -r d988c10dcf0b main.cpp --- a/main.cpp Mon Feb 26 21:06:19 2018 +0000 +++ b/main.cpp Wed Feb 28 16:56:18 2018 +0000 @@ -1,13 +1,342 @@ #include "mbed.h" #include "rtos.h" +#include "wave_player.h" +#include "SDFileSystem.h" +#include "uLCD_4DGL.h" +RawSerial Blue(p28,p27); +Serial pc(USBTX, USBRX); +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DigitalOut led3(LED3); +DigitalOut led4(LED4); +PwmOut led_red(p21); +PwmOut led_green(p22); +PwmOut led_blue(p23); +SDFileSystem sd(p5, p6, p7, p8, "sd"); +uLCD_4DGL uLCD(p9,p10,p11); -DigitalOut myled(LED1); +float x = 0.0; +bool gfxstatus = false; +bool textstatus = false; +int soundmode = 0; +int gfxmode = 0; +int rgbmode = 0; + +Mutex stdio_mutex; +Mutex sound_mutex; +Mutex sound_mutex_2; +Mutex blue_mutex; +AnalogOut DACout(p18); +wave_player waver(&DACout); + +Thread t1; +Thread t2; +Thread t3; +Thread t4; + +FILE *wave_file; + +#include "cylonbyc.h" +Ticker sampletick; +#define sample_freq 11025.0 +//get and set the frequency from wav conversion tool GUI +int i=0; + +//interrupt routine to play next audio sample from array in flash +void audio_sample () +{ + sound_mutex_2.lock(); + DACout.write_u16(sound_data[i]); + i++; + if (i>= NUM_ELEMENTS) { + i = 0; + sampletick.detach(); + } + sound_mutex_2.unlock(); +} + +//global variables for main and interrupt routine +volatile bool button_ready = 0; +volatile int bnum = 0; +volatile int bhit ; +//state used to remember previous characters read in a button message +enum statetype {start = 0, got_exclm, got_B, got_num, got_hit}; +statetype state = start; + +//Interrupt routine to parse message with one new character per serial RX interrupt +void parse_message() +{ + + led2 = !led2; -int main() { - while(1) { - myled = 1; - wait(0.2); - myled = 0; - wait(0.2); + while(Blue.readable()) { + blue_mutex.lock(); + switch (state) { + case start: + if (Blue.getc()=='!') { + state = got_exclm; + } else state = start; + break; + case got_exclm: + if (Blue.getc() == 'B') { + state = got_B; + } else state = start; + break; + case got_B: + bnum = Blue.getc(); + state = got_num; + break; + case got_num: + bhit = Blue.getc(); + state = got_hit; + break; + case got_hit: + if (Blue.getc() == char(~('!' + ' B' + bnum + bhit))) button_ready = 1; + state = start; + break; + default: + Blue.getc(); + state = start; + } + blue_mutex.unlock(); + } + + //pc.printf("Left interrupt\n"); + +} + +inline float random_number() +{ + return (rand()/(float(RAND_MAX))); +} + +// mode = 0 shows alternating orbs and SONIC SCREWDRIVER +// mode = 1 shows a rectangle and TARDIS APPROACHING +void LCD_write(int user, int LCD_mode) +{ + stdio_mutex.lock(); + + if(user == 0) { + if(LCD_mode == 0) { + uLCD.filled_rectangle(60,12,68,40, WHITE); + uLCD.filled_rectangle(56,12,72,16, WHITE); + uLCD.filled_rectangle(48,16,80,64, WHITE); + uLCD.filled_rectangle(56,24,60,32, WHITE); + uLCD.filled_rectangle(68,24,72,32, WHITE); + if(gfxstatus) { + uLCD.filled_circle(96, 32, 10, WHITE); + uLCD.filled_circle(32, 32, 10, BLUE); + } else { + uLCD.filled_circle(32, 32, 10, WHITE); + uLCD.filled_circle(96, 32, 10, BLUE); + } + } else if (LCD_mode == 1) { + uLCD.filled_circle(96, 32, 10, WHITE); + uLCD.filled_circle(32, 32, 10, WHITE); + if(gfxstatus) { + uLCD.filled_circle(64,58,10,WHITE); + uLCD.filled_rectangle(60,12,68,40, WHITE); + uLCD.filled_rectangle(56,12,72,16, BLUE); + uLCD.filled_rectangle(48,16,80,64, BLUE); + uLCD.filled_rectangle(56,24,60,32, WHITE); + uLCD.filled_rectangle(68,24,72,32, WHITE); + } else { + uLCD.filled_rectangle(56,12,72,16, WHITE); + uLCD.filled_rectangle(48,16,80,64, WHITE); + uLCD.filled_rectangle(60,12,68,40, BLUE); + uLCD.filled_circle(64,58,10,BLUE); + } + } + } else if (user == 1) { + if(LCD_mode == 0) { + if(textstatus) { + uLCD.locate(6, 9); // Move cursor + uLCD.color(BLUE); + uLCD.printf("SONIC"); + uLCD.locate(4,13); // Move cursor + uLCD.color(WHITE); + uLCD.printf("SCREWDRIVER"); + + } else { + uLCD.locate(6, 9); // Move cursor + uLCD.color(WHITE); + uLCD.printf("SONIC"); + uLCD.locate(4,13); // Move cursor + uLCD.color(BLUE); + uLCD.printf("SCREWDRIVER"); + } + } else if(LCD_mode == 1) { + if(textstatus) { + uLCD.locate(6, 9); // Move cursor + uLCD.color(BLUE); + uLCD.printf("TARDIS"); + uLCD.locate(4,13); // Move cursor + uLCD.color(WHITE); + uLCD.printf("APPROACHING"); + + } else { + uLCD.locate(6, 9); // Move cursor + uLCD.color(WHITE); + uLCD.printf("TARDIS"); + uLCD.locate(4,13); // Move cursor + uLCD.color(BLUE); + uLCD.printf("APPROACHING"); + } + } + + } + stdio_mutex.unlock(); +} + +void LCD_thread_1() // Displays two alternating circles on the LCD +{ + while (true) { + //led1 = !led1; + gfxstatus = !gfxstatus; + LCD_write(0,gfxmode); + Thread::wait(1000); } } + +void LCD_thread_2() // Displays "Please seek shelter" on the LCD +{ + while (true) { + //led2 = !led2; + textstatus = !textstatus; + LCD_write(1,gfxmode); + Thread::wait(1000); + } +} + +// mode = 0 gives Sonic Screwdriver (welding) lighting +// mode = 1 gives Tardis (warmup/cooldown) lighting +void RGB_write(int RGB_mode) +{ + + if(RGB_mode == 0) { + for(int j = 0; j < 80; j++) { + //get a new random number for PWM + x = random_number(); + //add some exponential brightness scaling + //for more of a fast flash effect + led_red = x*x*x; + led_green = x*x*x; + led_blue = x*x*x; + Thread::wait(20); + } + led_red = 0; + led_green = 0; + led_blue = 0; + } else if(RGB_mode == 1) { + //LED warm up effect using PWM + for(int j=0; j<25; j++) { + //led_red = i/25.0; + led_green = j/25.0; + led_blue = j/25.0; + Thread::wait(20); + } + //LED at full brightness level + //led_red = 1.0; + led_blue = 1.0; + led_green = 1.0; + Thread::wait(700); + //LED cool down effect using PWM + for(int j=25; j>0; j--) { + //led_red = i/25.0; + led_green = j/25.0; + led_blue = j/25.0; + Thread::wait(20); + } + //LED off + led_red = 0.0; + led_green = 0.0; + led_blue = 0.0; + } +} +void RGB_thread() +{ + while (true) { + //led3 = !led3; + RGB_write(rgbmode); + Thread::wait(1000); + } +} +void Sound_write(int snd_mode) +{ + stdio_mutex.lock(); + + if(soundmode == 0) { + + //sampletick.attach(&audio_sample, 1.0 / sample_freq); + + wave_file=fopen("/sd/sonic.wav","r"); + waver.play(wave_file); + fclose(wave_file); + } else if(soundmode == 1) { + + wave_file=fopen("/sd/tardis.wav","r"); + waver.play(wave_file); + fclose(wave_file); + } + stdio_mutex.unlock(); +} + +void Sound_thread() +{ + while(true) { + led1 = !led1; + Sound_write(soundmode); + Thread::wait(1310); + } +} + + +int main() +{ + uLCD.background_color(WHITE); + uLCD.cls(); + uLCD.textbackground_color(WHITE); + + t1.start(LCD_thread_1); + t2.start(LCD_thread_2); + t3.start(RGB_thread); + t4.start(Sound_thread); + + //pc.printf("hi\n"); + Blue.attach(&parse_message,Serial::RxIrq); + //pc.printf("bye\n"); + + + + while (true) { + + if(button_ready && (bnum=='5')) { // button 4 changed + pc.printf("Sound Mode Mode = 0\n"); + soundmode = 0; + button_ready = 0; //reset flag after reading button message + } else if(button_ready && (bnum=='6')) { // button 4 changed + pc.printf("Sound Mode = 1\n"); + soundmode = 1; + button_ready = 0; //reset flag after reading button message + } else if(button_ready && (bnum=='1')) { // button 4 changed + pc.printf("Graphics Mode = 0\n"); + gfxmode = 0; + button_ready = 0; //reset flag after reading button message + } else if(button_ready && (bnum=='2')) { // button 4 changed + pc.printf("Graphics Mode = 1\n"); + gfxmode = 1; + button_ready = 0; //reset flag after reading button message + } else if(button_ready && (bnum=='3')) { // button 4 changed + pc.printf("Light Mode = 0\n"); + rgbmode = 0; + button_ready = 0; //reset flag after reading button message + } else if(button_ready && (bnum=='4')) { // button 4 changed + pc.printf("Light Mode = 1\n"); + rgbmode = 1; + button_ready = 0; //reset flag after reading button message + } + + + Thread::wait(50); + } +}
diff -r 0871fbbffcad -r d988c10dcf0b wave_player.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wave_player.lib Wed Feb 28 16:56:18 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/sravet/code/wave_player/#acc3e18e77ad