From bfe468ef1d27b53de50309d29cb905015d2db32c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Jun 2019 02:32:07 -0400 Subject: [PATCH] start morphing wavetable --- quantum/audio/audio_arm.c | 144 ++- quantum/audio/wavetable.h | 2178 +++++++++++++++++++++++++++++++++++++ util/wav_parser.py | 23 + 3 files changed, 2293 insertions(+), 52 deletions(-) create mode 100644 quantum/audio/wavetable.h create mode 100644 util/wav_parser.py diff --git a/quantum/audio/audio_arm.c b/quantum/audio/audio_arm.c index 7f842da3b57..f38f90563b3 100644 --- a/quantum/audio/audio_arm.c +++ b/quantum/audio/audio_arm.c @@ -38,6 +38,33 @@ #define DAC_SAMPLE_MAX 4095U #endif +#define DAC_LOW_QUALITY + +/** + * These presets allow you to quickly switch between quality/voice settings for + * the DAC. The sample rate and number of voices roughly has an inverse + * relationship - slightly higher sample rates may be possible. + */ +#ifdef DAC_VERY_LOW_QUALITY + #define DAC_SAMPLE_RATE 11025U + #define DAC_VOICES_MAX 8 +#endif + +#ifdef DAC_LOW_QUALITY + #define DAC_SAMPLE_RATE 22050U + #define DAC_VOICES_MAX 4 +#endif + +#ifdef DAC_HIGH_QUALITY + #define DAC_SAMPLE_RATE 44100U + #define DAC_VOICES_MAX 2 +#endif + +#ifdef DAC_VERY_HIGH_QUALITY + #define DAC_SAMPLE_RATE 88200U + #define DAC_VOICES_MAX 1 +#endif + /** * Effective bitrate of the DAC. 44.1khz is the standard for most audio - any * lower will sacrifice perceptible audio quality. Any higher will limit the @@ -66,16 +93,8 @@ #endif int voices = 0; -int voice_place = 0; -float frequency = 0; -float frequency_alt = 0; - float frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -bool sliding = false; - -uint8_t * sample; -uint16_t sample_length = 0; bool playing_notes = false; bool playing_note = false; @@ -87,10 +106,8 @@ uint32_t note_position = 0; float (* notes_pointer)[][2]; uint16_t notes_count; bool notes_repeat; -bool note_resting = false; uint16_t current_note = 0; -uint8_t rest_counter = 0; #ifdef VIBRATO_ENABLE float vibrato_counter = 0; @@ -192,51 +209,81 @@ static const dacsample_t dac_buffer_square[DAC_BUFFER_SIZE] = { static dacsample_t dac_buffer_empty[DAC_BUFFER_SIZE] = { DAC_OFF_VALUE }; +#include "wavetable.h" + float dac_if[8] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; +uint8_t dac_voice = 0; +uint8_t dac_voice_flipped = 0; +uint16_t dac_voice_counter = 0; +float dac_voice_count_flipped = 0; /** - * DAC streaming callback. Does all of the main computing for sound synthesis. + * Generation of the sample being passed to the callback. Declared weak so users + * can override it with their own waveforms/noises. */ -static void dac_end(DACDriver * dacp, dacsample_t * sample_p, size_t sample_count) { - - (void)dacp; - (void)dac_buffer; - // (void)dac_buffer_triangle; - (void)dac_buffer_square; - +__attribute__ ((weak)) +uint16_t generate_sample(void) { + uint16_t sample = DAC_OFF_VALUE; uint8_t working_voices = voices; if (working_voices > DAC_VOICES_MAX) working_voices = DAC_VOICES_MAX; - for (uint8_t s = 0; s < sample_count; s++) { - if (working_voices > 0) { - uint16_t sample_sum = 0; - for (uint8_t i = 0; i < working_voices; i++) { - dac_if[i] = dac_if[i] + ((frequencies[i]*DAC_BUFFER_SIZE)/DAC_SAMPLE_RATE); - - // Needed because % doesn't work with floats - // 0.5 less than the size because we use round() later - while (dac_if[i] >= (DAC_BUFFER_SIZE)) - dac_if[i] = dac_if[i] - DAC_BUFFER_SIZE; - - uint16_t dac_i = (uint16_t)dac_if[i]; - // Wavetable generation/lookup - // SINE - sample_sum += dac_buffer[dac_i] / working_voices / 3; - // TRIANGLE - sample_sum += dac_buffer_triangle[dac_i] / working_voices / 3; - // RISING TRIANGLE - // sample_sum += (uint16_t)round((dac_if[i] * DAC_SAMPLE_MAX) / DAC_BUFFER_SIZE / working_voices ); - // SQUARE - // sample_sum += ((dac_if[i] > (DAC_BUFFER_SIZE / 2)) ? DAC_SAMPLE_MAX / working_voices: 0); - sample_sum += dac_buffer_square[dac_i] / working_voices / 3; - - } - sample_p[s] = sample_sum; - } else { - sample_p[s] = DAC_OFF_VALUE; + if (working_voices > 0) { + uint16_t sample_sum = 0; + for (uint8_t i = 0; i < working_voices; i++) { + dac_if[i] = dac_if[i] + ((frequencies[i]*DAC_BUFFER_SIZE)/DAC_SAMPLE_RATE); + + // Needed because % doesn't work with floats + // 0.5 less than the size because we use round() later + while (dac_if[i] >= (DAC_BUFFER_SIZE)) + dac_if[i] = dac_if[i] - DAC_BUFFER_SIZE; + + (void)dac_buffer; + (void)dac_buffer_square; + (void)dac_buffer_triangle; + + #define DAC_MORPH_SPEED 3000 + #define DAC_SAMPLE_CUSTOM_LENGTH 64 + #define DAC_MORPH_SPEED_COMPUTED (DAC_SAMPLE_RATE / DAC_SAMPLE_CUSTOM_LENGTH * DAC_MORPH_SPEED / 1000) + + uint16_t dac_i = (uint16_t)dac_if[i]; + // Wavetable generation/lookup + // SINE + // sample_sum += dac_buffer[dac_i] / working_voices / 3; + // TRIANGLE + // sample_sum += dac_buffer_triangle[dac_i] / working_voices / 3; + // RISING TRIANGLE + // sample_sum += (uint16_t)round((dac_if[i] * DAC_SAMPLE_MAX) / DAC_BUFFER_SIZE / working_voices ); + // SQUARE + // sample_sum += ((dac_if[i] > (DAC_BUFFER_SIZE / 2)) ? DAC_SAMPLE_MAX / working_voices: 0); + // sample_sum += dac_buffer_square[dac_i] / working_voices / 3; + // sample_sum += dac_buffer_custom[dac_voice_flipped][dac_i] / working_voices / 2 * ((dac_voice >= 63) ? 6400 - dac_voice_counter : dac_voice_counter) / 6400; + // sample_sum += dac_buffer_custom[dac_voice_flipped + 1][dac_i] / working_voices / 2 * ((dac_voice >= 63) ? dac_voice_counter : 6400 - dac_voice_counter) / 6400; + sample_sum += dac_buffer_custom[dac_voice][dac_i] / working_voices / 2 * (DAC_MORPH_SPEED_COMPUTED - dac_voice_counter) / DAC_MORPH_SPEED_COMPUTED; + sample_sum += dac_buffer_custom[dac_voice + 1][dac_i] / working_voices / 2 * dac_voice_counter / DAC_MORPH_SPEED_COMPUTED; + } + sample = sample_sum; + dac_voice_counter++; + if (dac_voice_counter >= DAC_MORPH_SPEED_COMPUTED) { + dac_voice_counter = 0; + // dac_voice = (dac_voice + 1) % 125; + // dac_voice_flipped = ((dac_voice >= 63) ? (125 - dac_voice) : dac_voice); + dac_voice = (dac_voice + 1) % (DAC_SAMPLE_CUSTOM_LENGTH - 1); } } + return sample; +} + +/** + * DAC streaming callback. Does all of the main computing for playing songs. + */ +static void dac_end(DACDriver * dacp, dacsample_t * sample_p, size_t sample_count) { + + (void)dacp; + + for (uint8_t s = 0; s < sample_count; s++) { + sample_p[s] = generate_sample(); + } if (playing_notes) { note_position += sample_count; @@ -359,8 +406,6 @@ void stop_all_notes() { playing_notes = false; playing_note = false; - frequency = 0; - frequency_alt = 0; for (uint8_t i = 0; i < 8; i++) { @@ -393,12 +438,7 @@ void stop_note(float freq) { if (voices < 0) { voices = 0; } - if (voice_place >= voices) { - voice_place = 0; - } if (voices == 0) { - frequency = 0; - frequency_alt = 0; playing_note = false; } } diff --git a/quantum/audio/wavetable.h b/quantum/audio/wavetable.h new file mode 100644 index 00000000000..64b80b1f236 --- /dev/null +++ b/quantum/audio/wavetable.h @@ -0,0 +1,2178 @@ +static const dacsample_t dac_buffer_custom[64][256] = { + { + 2049, 2042, 2026, 2000, 1968, 1937, 1912, 1898, + 1896, 1904, 1918, 1932, 1939, 1937, 1926, 1918, + 1929, 1982, 2094, 2262, 2464, 2655, 2792, 2845, + 2817, 2742, 2666, 2628, 2638, 2677, 2716, 2735, + 2742, 2767, 2843, 2982, 3162, 3332, 3439, 3457, + 3398, 3308, 3238, 3220, 3250, 3298, 3328, 3322, + 3286, 3247, 3227, 3235, 3258, 3273, 3270, 3260, + 3271, 3333, 3455, 3619, 3781, 3894, 3932, 3899, + 3828, 3761, 3728, 3735, 3764, 3789, 3792, 3771, + 3740, 3715, 3707, 3712, 3720, 3721, 3711, 3696, + 3682, 3674, 3671, 3669, 3664, 3656, 3648, 3642, + 3638, 3632, 3622, 3611, 3603, 3598, 3587, 3552, + 3474, 3345, 3181, 3017, 2893, 2838, 2853, 2910, + 2969, 2996, 2980, 2939, 2899, 2885, 2898, 2923, + 2938, 2931, 2907, 2883, 2874, 2877, 2870, 2820, + 2708, 2539, 2351, 2193, 2107, 2103, 2158, 2226, + 2267, 2266, 2234, 2198, 2179, 2174, 2153, 2081, + 1936, 1733, 1519, 1352, 1276, 1295, 1376, 1464, + 1513, 1507, 1463, 1416, 1396, 1412, 1449, 1480, + 1488, 1472, 1450, 1438, 1440, 1437, 1400, 1304, + 1150, 969, 810, 716, 705, 761, 842, 903, + 918, 892, 850, 824, 830, 862, 897, 915, + 908, 888, 875, 877, 886, 873, 811, 689, + 527, 367, 255, 219, 253, 323, 388, 419, + 411, 382, 358, 357, 377, 406, 427, 433, + 428, 421, 423, 434, 449, 460, 466, 467, + 470, 477, 487, 495, 499, 501, 506, 515, + 528, 538, 544, 554, 587, 663, 790, 954, + 1120, 1245, 1300, 1284, 1225, 1165, 1139, 1156, + 1198, 1237, 1250, 1235, 1209, 1196, 1206, 1232, + 1255, 1261, 1253, 1260, 1314, 1435, 1610, 1799, + 1948, 2025, 2028, 1994, 1970, 1988, 2051, 2131 + }, + { + 2197, 2242, 2285, 2368, 2517, 2725, 2942, 3103, + 3165, 3132, 3060, 3018, 3057, 3172, 3313, 3415, + 3440, 3401, 3350, 3347, 3419, 3545, 3669, 3737, + 3733, 3685, 3648, 3670, 3760, 3885, 3992, 4038, + 4015, 3948, 3881, 3848, 3855, 3884, 3909, 3910, + 3888, 3856, 3832, 3826, 3832, 3840, 3840, 3829, + 3811, 3795, 3787, 3785, 3786, 3782, 3774, 3762, + 3751, 3744, 3740, 3736, 3730, 3723, 3714, 3706, + 3700, 3695, 3690, 3683, 3674, 3666, 3660, 3655, + 3651, 3646, 3638, 3629, 3621, 3614, 3610, 3607, + 3603, 3597, 3588, 3578, 3569, 3565, 3564, 3564, + 3561, 3552, 3539, 3526, 3518, 3517, 3516, 3505, + 3468, 3397, 3299, 3193, 3106, 3059, 3051, 3062, + 3059, 3014, 2921, 2805, 2703, 2649, 2647, 2671, + 2677, 2630, 2528, 2403, 2303, 2259, 2261, 2262, + 2202, 2047, 1814, 1566, 1384, 1315, 1352, 1432, + 1476, 1432, 1305, 1149, 1034, 1003, 1044, 1102, + 1113, 1045, 918, 786, 706, 702, 748, 790, + 775, 690, 564, 451, 396, 407, 452, 480, + 449, 357, 236, 136, 95, 119, 181, 243, + 274, 268, 241, 219, 218, 240, 270, 292, + 298, 291, 284, 285, 298, 316, 330, 337, + 337, 337, 341, 351, 364, 374, 379, 382, + 385, 391, 401, 411, 419, 423, 426, 431, + 438, 447, 457, 464, 468, 471, 475, 482, + 492, 501, 508, 512, 514, 517, 523, 533, + 543, 552, 558, 559, 559, 563, 571, 584, + 596, 604, 605, 606, 618, 655, 725, 821, + 923, 1006, 1051, 1059, 1049, 1055, 1101, 1194, + 1310, 1413, 1470, 1475, 1452, 1442, 1482, 1579, + 1706, 1814, 1867, 1859, 1823, 1814, 1871, 1998, + 2151, 2269, 2307, 2268, 2209, 2214, 2346, 2613 + }, + { + 2954, 3272, 3477, 3536, 3486, 3414, 3407, 3507, + 3694, 3896, 4036, 4070, 4012, 3914, 3838, 3822, + 3860, 3917, 3953, 3946, 3905, 3855, 3825, 3823, + 3842, 3863, 3866, 3844, 3799, 3737, 3663, 3584, + 3505, 3439, 3394, 3380, 3392, 3419, 3442, 3447, + 3432, 3404, 3381, 3378, 3407, 3465, 3544, 3626, + 3694, 3735, 3745, 3727, 3694, 3661, 3641, 3637, + 3645, 3655, 3658, 3650, 3633, 3615, 3603, 3599, + 3602, 3603, 3596, 3569, 3519, 3446, 3358, 3270, + 3197, 3155, 3147, 3166, 3195, 3217, 3219, 3201, + 3173, 3153, 3154, 3186, 3245, 3321, 3400, 3465, + 3508, 3523, 3513, 3487, 3457, 3432, 3421, 3423, + 3432, 3443, 3446, 3438, 3419, 3396, 3379, 3376, + 3385, 3390, 3367, 3288, 3144, 2953, 2761, 2617, + 2552, 2548, 2547, 2474, 2281, 1982, 1652, 1391, + 1268, 1285, 1366, 1408, 1334, 1139, 892, 693, + 610, 640, 711, 729, 635, 440, 217, 57, + 14, 81, 197, 290, 316, 277, 214, 172, + 175, 216, 266, 297, 300, 283, 267, 268, + 291, 335, 393, 463, 541, 621, 691, 737, + 752, 738, 709, 685, 680, 697, 727, 751, + 753, 723, 663, 584, 503, 436, 395, 385, + 401, 432, 464, 485, 491, 485, 476, 473, + 481, 498, 517, 530, 534, 530, 526, 530, + 555, 605, 679, 768, 857, 929, 970, 977, + 959, 930, 910, 907, 925, 952, 973, 972, + 943, 885, 809, 730, 663, 622, 610, 625, + 654, 684, 705, 710, 704, 691, 682, 682, + 693, 712, 732, 745, 745, 737, 734, 761, + 840, 980, 1164, 1353, 1498, 1566, 1565, 1542, + 1561, 1667, 1858, 2079, 2253, 2331, 2321, 2291, + 2331, 2495, 2766, 3057, 3264, 3323, 3248, 3121 + }, + { + 3038, 3042, 3095, 3098, 2958, 2658, 2283, 1989, + 1928, 2164, 2642, 3206, 3675, 3927, 3947, 3818, + 3667, 3601, 3659, 3803, 3960, 4060, 4073, 4016, + 3937, 3879, 3865, 3886, 3919, 3936, 3925, 3884, + 3823, 3750, 3672, 3594, 3521, 3465, 3441, 3457, + 3513, 3599, 3692, 3772, 3823, 3841, 3830, 3804, + 3776, 3754, 3743, 3742, 3746, 3750, 3748, 3739, + 3724, 3708, 3697, 3694, 3695, 3695, 3681, 3645, + 3584, 3502, 3410, 3325, 3263, 3237, 3251, 3304, + 3383, 3472, 3554, 3613, 3642, 3642, 3620, 3591, + 3566, 3552, 3551, 3556, 3561, 3560, 3552, 3539, + 3526, 3518, 3515, 3516, 3515, 3503, 3474, 3423, + 3350, 3262, 3172, 3098, 3058, 3063, 3112, 3193, + 3285, 3367, 3425, 3456, 3463, 3455, 3439, 3418, + 3395, 3376, 3368, 3374, 3386, 3388, 3358, 3283, + 3170, 3052, 2967, 2933, 2933, 2907, 2783, 2518, + 2133, 1714, 1373, 1196, 1187, 1266, 1305, 1206, + 948, 607, 309, 157, 177, 306, 431, 457, + 361, 194, 45, 0, 29, 131, 224, 259, + 231, 174, 133, 138, 189, 268, 352, 429, + 498, 560, 611, 643, 649, 631, 604, 587, + 591, 615, 644, 658, 643, 594, 521, 439, + 364, 311, 286, 291, 319, 355, 386, 400, + 396, 381, 373, 385, 426, 496, 584, 674, + 754, 810, 833, 821, 773, 698, 610, 526, + 464, 434, 434, 458, 489, 516, 530, 530, + 522, 516, 522, 549, 601, 677, 765, 854, + 925, 968, 977, 960, 931, 908, 904, 920, + 947, 970, 971, 940, 879, 798, 715, 646, + 603, 591, 604, 634, 669, 695, 706, 700, + 684, 673, 684, 731, 814, 918, 1016, 1084, + 1116, 1130, 1164, 1259, 1437, 1685, 1957, 2191 + }, + { + 2338, 2382, 2344, 2274, 2227, 2251, 2371, 2590, + 2891, 3235, 3569, 3835, 3987, 4009, 3927, 3802, + 3703, 3678, 3728, 3814, 3879, 3879, 3808, 3693, + 3578, 3493, 3448, 3430, 3425, 3428, 3446, 3491, + 3564, 3648, 3720, 3758, 3755, 3723, 3684, 3656, + 3647, 3652, 3662, 3665, 3653, 3624, 3577, 3511, + 3433, 3352, 3284, 3242, 3236, 3268, 3329, 3407, + 3484, 3547, 3587, 3600, 3590, 3566, 3538, 3517, + 3510, 3513, 3523, 3529, 3526, 3515, 3498, 3483, + 3474, 3473, 3474, 3471, 3453, 3414, 3354, 3278, + 3195, 3122, 3072, 3058, 3082, 3140, 3218, 3299, + 3366, 3410, 3428, 3422, 3401, 3377, 3357, 3346, + 3345, 3350, 3353, 3346, 3320, 3270, 3198, 3112, + 3028, 2965, 2938, 2954, 3006, 3080, 3157, 3220, + 3266, 3295, 3310, 3313, 3301, 3273, 3237, 3210, + 3208, 3229, 3244, 3195, 3023, 2704, 2272, 1820, + 1460, 1269, 1246, 1306, 1323, 1198, 911, 538, + 208, 32, 47, 198, 376, 480, 468, 372, + 267, 222, 262, 365, 480, 569, 621, 651, + 678, 707, 725, 709, 650, 560, 467, 400, + 376, 388, 420, 451, 471, 476, 474, 470, + 471, 481, 505, 550, 614, 694, 776, 843, + 883, 886, 853, 794, 719, 643, 579, 538, + 523, 533, 560, 589, 611, 619, 614, 606, + 602, 607, 620, 637, 649, 653, 651, 648, + 652, 672, 711, 770, 844, 924, 996, 1046, + 1062, 1039, 982, 903, 820, 751, 707, 692, + 699, 720, 743, 761, 770, 771, 767, 766, + 774, 799, 847, 917, 1002, 1086, 1150, 1178, + 1162, 1109, 1034, 957, 894, 850, 822, 806, + 802, 813, 840, 877, 907, 911, 888, 866, + 895, 1028, 1283, 1627, 1976, 2241, 2369, 2382 + }, + { + 2363, 2408, 2558, 2765, 2917, 2902, 2690, 2372, + 2124, 2121, 2436, 2993, 3598, 4042, 4095, 4086, + 3841, 3629, 3562, 3642, 3788, 3895, 3898, 3807, + 3677, 3569, 3511, 3487, 3465, 3424, 3375, 3348, + 3372, 3450, 3557, 3656, 3715, 3727, 3704, 3670, + 3643, 3631, 3630, 3632, 3633, 3629, 3622, 3613, + 3603, 3594, 3586, 3582, 3579, 3577, 3572, 3563, + 3553, 3544, 3538, 3535, 3533, 3529, 3522, 3513, + 3504, 3498, 3494, 3491, 3487, 3481, 3473, 3465, + 3459, 3454, 3450, 3445, 3438, 3431, 3425, 3421, + 3419, 3417, 3414, 3408, 3400, 3391, 3384, 3378, + 3374, 3370, 3364, 3357, 3351, 3346, 3344, 3342, + 3338, 3332, 3325, 3318, 3310, 3298, 3274, 3229, + 3160, 3074, 2987, 2923, 2899, 2922, 2984, 3065, + 3144, 3206, 3246, 3271, 3285, 3288, 3276, 3248, + 3212, 3185, 3185, 3206, 3216, 3155, 2965, 2626, + 2179, 1723, 1373, 1201, 1196, 1265, 1274, 1127, + 814, 419, 81, 0, 0, 118, 312, 423, + 411, 312, 205, 162, 207, 315, 435, 526, + 577, 605, 627, 650, 660, 639, 578, 490, + 400, 336, 313, 330, 377, 441, 515, 594, + 670, 734, 775, 787, 775, 752, 734, 731, + 745, 767, 785, 788, 767, 723, 658, 584, + 515, 465, 447, 468, 524, 604, 694, 777, + 845, 888, 903, 889, 846, 781, 703, 627, + 569, 539, 543, 579, 641, 719, 801, 877, + 937, 973, 983, 972, 951, 933, 929, 941, + 964, 985, 990, 969, 920, 851, 775, 708, + 662, 646, 664, 712, 784, 869, 955, 1028, + 1078, 1094, 1076, 1027, 958, 883, 815, 764, + 734, 724, 733, 753, 780, 806, 820, 818, + 808, 811, 864, 1005, 1251, 1578, 1925, 2205 + }, + { + 2350, 2341, 2231, 2126, 2144, 2357, 2755, 3249, + 3705, 4005, 4095, 4006, 3821, 3638, 3522, 3484, + 3492, 3503, 3495, 3473, 3467, 3501, 3579, 3679, + 3764, 3807, 3799, 3759, 3711, 3681, 3675, 3687, + 3702, 3706, 3693, 3660, 3608, 3542, 3465, 3387, + 3320, 3279, 3274, 3306, 3368, 3445, 3522, 3584, + 3623, 3635, 3617, 3572, 3503, 3419, 3333, 3259, + 3209, 3191, 3205, 3247, 3310, 3383, 3455, 3513, + 3549, 3553, 3523, 3465, 3386, 3300, 3219, 3156, + 3119, 3112, 3136, 3188, 3260, 3338, 3408, 3458, + 3477, 3464, 3420, 3355, 3277, 3196, 3123, 3067, + 3037, 3039, 3074, 3138, 3217, 3295, 3357, 3393, + 3401, 3388, 3365, 3342, 3327, 3322, 3325, 3331, + 3333, 3321, 3288, 3228, 3145, 3051, 2969, 2922, + 2922, 2964, 3029, 3097, 3154, 3201, 3246, 3283, + 3285, 3203, 2992, 2639, 2193, 1751, 1421, 1267, + 1272, 1339, 1339, 1181, 862, 470, 143, 0, + 42, 239, 470, 635, 693, 670, 625, 608, + 627, 650, 637, 567, 460, 359, 305, 313, + 364, 422, 458, 460, 440, 418, 412, 429, + 468, 522, 588, 662, 738, 803, 843, 849, + 817, 756, 680, 605, 544, 504, 490, 506, + 551, 621, 705, 790, 862, 910, 928, 915, + 876, 816, 743, 670, 608, 570, 566, 597, + 659, 739, 824, 901, 960, 995, 1002, 980, + 930, 860, 782, 709, 657, 636, 650, 695, + 762, 841, 922, 994, 1049, 1078, 1077, 1043, + 980, 903, 825, 763, 726, 717, 729, 752, + 775, 792, 800, 801, 798, 797, 806, 836, + 892, 973, 1066, 1151, 1201, 1204, 1162, 1093, + 1021, 963, 919, 881, 847, 836, 890, 1051, + 1331, 1689, 2038, 2285, 2385, 2370, 2347, 2432 + }, + { + 2682, 3039, 3350, 3441, 3219, 2740, 2199, 1842, + 1851, 2249, 2895, 3553, 4010, 4095, 4059, 3829, + 3618, 3508, 3495, 3521, 3522, 3478, 3413, 3377, + 3403, 3492, 3608, 3706, 3756, 3755, 3721, 3682, + 3656, 3650, 3656, 3663, 3663, 3654, 3641, 3628, + 3620, 3615, 3613, 3610, 3605, 3597, 3588, 3579, + 3573, 3569, 3565, 3560, 3553, 3545, 3538, 3532, + 3527, 3523, 3517, 3510, 3503, 3496, 3491, 3487, + 3482, 3476, 3469, 3462, 3456, 3451, 3447, 3442, + 3436, 3429, 3422, 3416, 3412, 3408, 3404, 3398, + 3391, 3384, 3378, 3374, 3371, 3367, 3361, 3354, + 3348, 3342, 3337, 3334, 3331, 3327, 3322, 3316, + 3309, 3303, 3297, 3293, 3290, 3287, 3282, 3276, + 3268, 3259, 3252, 3248, 3243, 3229, 3195, 3134, + 3050, 2957, 2882, 2845, 2858, 2910, 2980, 3048, + 3102, 3146, 3186, 3213, 3192, 3073, 2818, 2434, + 1986, 1576, 1304, 1210, 1248, 1306, 1262, 1050, + 700, 323, 52, 0, 87, 307, 519, 642, + 659, 616, 576, 577, 609, 631, 601, 514, + 400, 309, 277, 306, 367, 421, 441, 428, + 402, 387, 394, 418, 442, 456, 456, 450, + 448, 455, 467, 480, 488, 492, 495, 499, + 505, 514, 524, 540, 571, 623, 697, 782, + 861, 914, 927, 900, 840, 764, 689, 627, + 585, 566, 572, 606, 665, 743, 829, 909, + 967, 994, 988, 952, 893, 822, 750, 689, + 649, 635, 645, 671, 700, 720, 725, 719, + 710, 707, 713, 727, 741, 751, 754, 753, + 753, 756, 763, 772, 781, 787, 792, 794, + 797, 804, 823, 861, 923, 1004, 1090, 1160, + 1195, 1188, 1145, 1082, 1014, 951, 894, 847, + 823, 849, 959, 1168, 1461, 1788, 2078, 2271 + }, + { + 2335, 2286, 2174, 2062, 1999, 2010, 2093, 2231, + 2399, 2570, 2719, 2822, 2868, 2862, 2828, 2803, + 2817, 2878, 2967, 3047, 3088, 3083, 3054, 3038, + 3065, 3136, 3225, 3294, 3317, 3297, 3266, 3260, + 3301, 3381, 3467, 3523, 3532, 3506, 3479, 3484, + 3535, 3617, 3697, 3742, 3743, 3715, 3692, 3703, + 3758, 3839, 3914, 3953, 3945, 3903, 3853, 3819, + 3813, 3828, 3846, 3852, 3840, 3818, 3796, 3785, + 3783, 3787, 3787, 3780, 3767, 3754, 3745, 3740, + 3737, 3733, 3725, 3716, 3709, 3704, 3699, 3692, + 3683, 3674, 3666, 3659, 3646, 3617, 3565, 3493, + 3415, 3350, 3313, 3307, 3313, 3308, 3270, 3198, + 3109, 3035, 2997, 2998, 3017, 3019, 2981, 2902, + 2807, 2732, 2700, 2711, 2734, 2734, 2687, 2599, + 2503, 2436, 2418, 2440, 2465, 2456, 2396, 2301, + 2209, 2155, 2147, 2159, 2144, 2065, 1915, 1730, + 1569, 1480, 1478, 1530, 1580, 1579, 1510, 1400, + 1297, 1244, 1251, 1292, 1320, 1300, 1227, 1131, + 1053, 1024, 1041, 1076, 1087, 1050, 971, 881, + 817, 800, 823, 851, 851, 805, 724, 641, + 590, 584, 611, 638, 633, 582, 500, 421, + 376, 375, 403, 427, 417, 364, 284, 209, + 170, 178, 220, 270, 302, 305, 288, 268, + 263, 278, 304, 328, 339, 337, 330, 328, + 336, 350, 365, 375, 378, 378, 380, 388, + 398, 408, 415, 420, 426, 434, 442, 450, + 458, 470, 497, 546, 616, 694, 760, 799, + 808, 802, 805, 840, 909, 995, 1071, 1111, + 1112, 1095, 1093, 1129, 1206, 1300, 1376, 1409, + 1400, 1377, 1376, 1421, 1507, 1603, 1671, 1690, + 1669, 1641, 1646, 1704, 1801, 1899, 1958, 1963, + 1930, 1904, 1925, 2003, 2114, 2210, 2252, 2238 + }, + { + 2210, 2227, 2327, 2496, 2663, 2738, 2661, 2443, + 2167, 1948, 1873, 1956, 2139, 2325, 2446, 2497, + 2534, 2626, 2806, 3041, 3250, 3359, 3346, 3262, + 3194, 3217, 3340, 3511, 3645, 3688, 3647, 3582, + 3570, 3650, 3800, 3955, 4045, 4040, 3962, 3866, + 3808, 3808, 3849, 3893, 3907, 3885, 3843, 3808, + 3797, 3806, 3821, 3827, 3817, 3796, 3776, 3765, + 3764, 3766, 3766, 3759, 3747, 3735, 3726, 3721, + 3717, 3713, 3706, 3698, 3691, 3683, 3677, 3671, + 3665, 3658, 3652, 3645, 3639, 3633, 3627, 3620, + 3613, 3606, 3600, 3595, 3589, 3583, 3578, 3573, + 3568, 3563, 3557, 3549, 3542, 3534, 3528, 3522, + 3517, 3512, 3506, 3500, 3495, 3491, 3487, 3482, + 3474, 3466, 3459, 3457, 3457, 3456, 3450, 3439, + 3424, 3414, 3411, 3410, 3396, 3351, 3264, 3143, + 3014, 2913, 2864, 2865, 2884, 2878, 2814, 2693, + 2553, 2443, 2397, 2401, 2404, 2339, 2170, 1917, + 1651, 1457, 1386, 1421, 1489, 1500, 1400, 1203, + 983, 827, 786, 841, 920, 944, 871, 723, + 566, 468, 459, 510, 557, 541, 442, 294, + 158, 87, 99, 169, 248, 295, 295, 264, + 232, 224, 242, 275, 303, 313, 308, 298, + 296, 306, 323, 340, 349, 351, 350, 352, + 360, 371, 382, 391, 397, 400, 405, 411, + 418, 425, 432, 438, 444, 451, 457, 464, + 471, 477, 483, 489, 495, 501, 507, 512, + 519, 525, 532, 539, 544, 548, 552, 557, + 563, 569, 576, 581, 586, 592, 598, 607, + 615, 621, 624, 627, 631, 638, 648, 656, + 661, 662, 662, 666, 676, 689, 700, 705, + 707, 721, 765, 851, 971, 1099, 1199, 1246, + 1243, 1223, 1230, 1295, 1415, 1553, 1658, 1699 + }, + { + 1689, 1674, 1713, 1831, 2008, 2186, 2307, 2354, + 2366, 2413, 2553, 2787, 3055, 3268, 3362, 3339, + 3269, 3248, 3339, 3536, 3766, 3934, 3982, 3919, + 3812, 3743, 3762, 3858, 3977, 4056, 4057, 3988, + 3886, 3790, 3726, 3693, 3677, 3664, 3647, 3622, + 3589, 3544, 3488, 3429, 3379, 3347, 3328, 3296, + 3222, 3087, 2905, 2720, 2585, 2532, 2556, 2613, + 2648, 2624, 2543, 2441, 2364, 2340, 2361, 2390, + 2390, 2340, 2253, 2164, 2109, 2106, 2150, 2222, + 2297, 2359, 2401, 2425, 2435, 2438, 2442, 2458, + 2493, 2547, 2606, 2652, 2675, 2682, 2701, 2766, + 2892, 3067, 3246, 3377, 3425, 3396, 3332, 3288, + 3301, 3371, 3465, 3536, 3557, 3535, 3501, 3493, + 3530, 3604, 3683, 3735, 3739, 3697, 3622, 3538, + 3461, 3402, 3368, 3355, 3347, 3320, 3246, 3112, + 2929, 2741, 2597, 2531, 2529, 2535, 2475, 2304, + 2036, 1743, 1522, 1433, 1465, 1541, 1560, 1458, + 1246, 1003, 827, 774, 824, 893, 889, 764, + 546, 321, 177, 156, 232, 331, 377, 335, + 228, 113, 50, 62, 138, 239, 328, 388, + 422, 441, 457, 475, 498, 528, 570, 626, + 686, 737, 769, 788, 818, 892, 1025, 1205, + 1389, 1523, 1576, 1553, 1496, 1461, 1484, 1565, + 1667, 1744, 1768, 1748, 1718, 1718, 1767, 1854, + 1943, 2000, 2004, 1960, 1888, 1813, 1751, 1708, + 1684, 1674, 1672, 1668, 1652, 1616, 1562, 1502, + 1455, 1432, 1425, 1407, 1344, 1218, 1045, 867, + 737, 689, 718, 782, 826, 813, 743, 649, + 578, 557, 580, 615, 623, 586, 512, 432, + 380, 376, 420, 495, 580, 657, 713, 744, + 754, 761, 791, 869, 1006, 1188, 1370, 1504, + 1562, 1559, 1545, 1582, 1704, 1894, 2093, 2237 + }, + { + 2297, 2299, 2300, 2353, 2469, 2609, 2719, 2770, + 2787, 2834, 2970, 3202, 3474, 3694, 3792, 3766, + 3682, 3635, 3689, 3834, 4001, 4095, 4082, 3958, + 3794, 3666, 3617, 3639, 3684, 3701, 3661, 3565, + 3438, 3307, 3195, 3112, 3059, 3030, 3010, 2980, + 2918, 2814, 2680, 2550, 2465, 2458, 2536, 2675, + 2835, 2974, 3066, 3106, 3108, 3103, 3117, 3172, + 3269, 3394, 3516, 3604, 3639, 3624, 3589, 3569, + 3591, 3657, 3744, 3813, 3834, 3797, 3714, 3614, + 3526, 3468, 3440, 3433, 3426, 3400, 3338, 3236, + 3106, 2973, 2866, 2806, 2790, 2793, 2778, 2712, + 2591, 2440, 2307, 2237, 2253, 2350, 2496, 2651, + 2779, 2862, 2899, 2906, 2908, 2930, 2990, 3089, + 3212, 3329, 3411, 3440, 3425, 3392, 3374, 3396, + 3459, 3541, 3608, 3628, 3582, 3473, 3323, 3164, + 3033, 2955, 2930, 2924, 2879, 2737, 2473, 2116, + 1749, 1469, 1340, 1349, 1414, 1418, 1282, 1007, + 678, 415, 303, 347, 467, 548, 512, 354, + 144, 0, 0, 5, 152, 300, 396, 426, + 414, 400, 415, 477, 587, 736, 910, 1086, + 1235, 1332, 1365, 1346, 1310, 1298, 1336, 1420, + 1518, 1588, 1594, 1527, 1403, 1256, 1122, 1026, + 977, 965, 969, 960, 913, 821, 696, 571, + 480, 446, 463, 502, 524, 502, 435, 349, + 283, 267, 307, 388, 483, 567, 624, 653, + 663, 672, 698, 757, 854, 980, 1113, 1220, + 1280, 1295, 1290, 1305, 1373, 1496, 1648, 1780, + 1849, 1838, 1759, 1649, 1551, 1489, 1469, 1476, + 1484, 1464, 1396, 1273, 1107, 924, 761, 654, + 617, 639, 686, 716, 701, 638, 551, 477, + 452, 497, 606, 759, 920, 1052, 1130, 1150, + 1144, 1164, 1267, 1476, 1765, 2058, 2267, 2348 + }, + { + 2328, 2304, 2384, 2619, 2955, 3257, 3386, 3286, + 3033, 2803, 2776, 3028, 3487, 3962, 4095, 4095, + 4050, 3758, 3564, 3553, 3694, 3870, 3960, 3910, + 3755, 3578, 3457, 3417, 3432, 3452, 3444, 3411, + 3377, 3367, 3383, 3408, 3417, 3403, 3381, 3377, + 3411, 3482, 3570, 3648, 3694, 3702, 3681, 3648, + 3617, 3598, 3593, 3599, 3608, 3610, 3595, 3554, + 3487, 3402, 3316, 3245, 3202, 3189, 3200, 3220, + 3236, 3240, 3231, 3216, 3201, 3191, 3189, 3191, + 3194, 3193, 3187, 3177, 3168, 3168, 3184, 3222, + 3281, 3352, 3422, 3475, 3499, 3492, 3463, 3427, + 3401, 3393, 3402, 3416, 3422, 3407, 3365, 3299, + 3218, 3135, 3064, 3016, 2997, 3004, 3027, 3052, + 3062, 3053, 3029, 3005, 2997, 3017, 3065, 3132, + 3201, 3261, 3305, 3333, 3344, 3338, 3313, 3276, + 3241, 3225, 3238, 3263, 3253, 3148, 2900, 2514, + 2054, 1630, 1345, 1242, 1279, 1341, 1301, 1089, + 733, 344, 58, 0, 60, 254, 427, 494, + 443, 331, 242, 232, 305, 423, 535, 610, + 649, 672, 697, 726, 746, 747, 728, 705, + 697, 712, 741, 760, 749, 700, 624, 541, + 473, 434, 425, 438, 465, 493, 515, 525, + 522, 512, 507, 520, 560, 628, 714, 801, + 871, 913, 925, 914, 895, 880, 876, 884, + 900, 917, 928, 931, 929, 924, 923, 929, + 939, 950, 952, 937, 898, 836, 761, 689, + 637, 616, 627, 658, 694, 718, 723, 713, + 700, 697, 714, 756, 820, 898, 978, 1049, + 1098, 1119, 1112, 1088, 1062, 1050, 1060, 1086, + 1111, 1119, 1096, 1046, 980, 913, 857, 814, + 784, 767, 769, 795, 838, 882, 900, 882, + 842, 831, 911, 1122, 1448, 1816, 2124, 2300 + }, + { + 2343, 2331, 2375, 2550, 2838, 3132, 3300, 3265, + 3067, 2849, 2778, 2949, 3319, 3735, 4012, 4044, + 3851, 3564, 3339, 3265, 3330, 3440, 3497, 3459, + 3358, 3270, 3249, 3300, 3374, 3415, 3400, 3358, + 3347, 3414, 3564, 3754, 3917, 4002, 3991, 3901, + 3767, 3620, 3478, 3351, 3247, 3177, 3155, 3185, + 3256, 3347, 3432, 3492, 3522, 3525, 3513, 3495, + 3477, 3463, 3454, 3452, 3453, 3453, 3444, 3417, + 3369, 3300, 3220, 3143, 3087, 3063, 3076, 3122, + 3190, 3265, 3332, 3381, 3406, 3409, 3395, 3371, + 3348, 3333, 3329, 3333, 3340, 3338, 3319, 3277, + 3213, 3135, 3057, 2992, 2956, 2959, 3007, 3100, + 3226, 3368, 3501, 3600, 3645, 3625, 3542, 3409, + 3248, 3089, 2956, 2871, 2840, 2855, 2895, 2934, + 2950, 2938, 2906, 2878, 2874, 2907, 2977, 3075, + 3188, 3310, 3430, 3524, 3552, 3460, 3210, 2805, + 2308, 1825, 1463, 1282, 1259, 1294, 1265, 1088, + 764, 384, 74, 0, 0, 189, 416, 586, + 664, 673, 664, 680, 724, 772, 791, 771, + 730, 701, 705, 737, 770, 771, 723, 637, + 542, 471, 444, 460, 507, 569, 636, 705, + 772, 833, 875, 889, 868, 815, 742, 667, + 604, 563, 549, 557, 579, 604, 624, 633, + 632, 626, 624, 635, 665, 717, 786, 864, + 939, 994, 1019, 1007, 962, 894, 819, 752, + 703, 678, 675, 688, 711, 733, 750, 755, + 752, 745, 745, 763, 804, 870, 949, 1029, + 1092, 1126, 1126, 1094, 1037, 968, 898, 838, + 797, 781, 794, 834, 898, 978, 1059, 1129, + 1176, 1195, 1188, 1167, 1148, 1142, 1153, 1173, + 1190, 1187, 1158, 1098, 1011, 900, 773, 645, + 545, 516, 602, 827, 1171, 1572, 1939, 2200 + }, + { + 2330, 2368, 2395, 2482, 2654, 2871, 3061, 3168, + 3195, 3203, 3274, 3450, 3697, 3921, 4016, 3933, + 3705, 3437, 3239, 3174, 3225, 3322, 3394, 3410, + 3392, 3389, 3434, 3522, 3609, 3647, 3613, 3520, + 3407, 3314, 3258, 3232, 3220, 3209, 3200, 3197, + 3203, 3214, 3218, 3210, 3192, 3180, 3189, 3228, + 3291, 3363, 3428, 3470, 3483, 3465, 3420, 3354, + 3275, 3196, 3129, 3086, 3072, 3087, 3127, 3184, + 3249, 3313, 3366, 3397, 3401, 3375, 3320, 3247, + 3167, 3094, 3037, 3005, 3002, 3025, 3072, 3134, + 3201, 3263, 3309, 3331, 3323, 3286, 3223, 3146, + 3067, 3000, 2954, 2932, 2931, 2944, 2961, 2971, + 2970, 2959, 2942, 2930, 2933, 2957, 3005, 3068, + 3136, 3194, 3229, 3236, 3213, 3163, 3094, 3014, + 2934, 2869, 2834, 2839, 2887, 2970, 3078, 3196, + 3314, 3420, 3490, 3488, 3371, 3107, 2705, 2223, + 1763, 1428, 1276, 1287, 1362, 1376, 1240, 947, + 584, 278, 138, 191, 380, 600, 752, 801, + 771, 723, 707, 728, 756, 749, 687, 586, + 489, 438, 449, 512, 595, 674, 737, 786, + 829, 865, 889, 894, 880, 859, 846, 850, + 871, 895, 904, 888, 844, 782, 714, 655, + 615, 600, 615, 658, 724, 804, 883, 949, + 992, 1005, 989, 950, 894, 829, 766, 713, + 682, 678, 704, 758, 831, 911, 984, 1041, + 1072, 1076, 1052, 1006, 944, 878, 816, 769, + 747, 756, 794, 857, 933, 1011, 1078, 1124, + 1146, 1147, 1135, 1118, 1107, 1107, 1119, 1136, + 1149, 1147, 1122, 1074, 1010, 944, 889, 855, + 848, 869, 917, 986, 1069, 1152, 1218, 1250, + 1243, 1204, 1149, 1097, 1052, 1011, 964, 918, + 902, 961, 1132, 1411, 1743, 2041, 2229, 2291 + }, + { + 2289, 2325, 2482, 2764, 3083, 3307, 3343, 3199, + 2995, 2894, 3008, 3325, 3710, 3985, 4029, 3848, + 3561, 3329, 3256, 3342, 3495, 3604, 3613, 3548, + 3488, 3506, 3613, 3758, 3862, 3870, 3782, 3646, + 3520, 3441, 3407, 3391, 3374, 3355, 3354, 3391, + 3469, 3567, 3655, 3703, 3707, 3678, 3639, 3610, + 3599, 3602, 3610, 3614, 3610, 3599, 3585, 3573, + 3565, 3562, 3562, 3560, 3555, 3546, 3535, 3526, + 3521, 3518, 3516, 3511, 3502, 3492, 3482, 3476, + 3473, 3472, 3470, 3467, 3462, 3457, 3451, 3445, + 3438, 3431, 3425, 3421, 3419, 3416, 3410, 3403, + 3394, 3386, 3382, 3378, 3367, 3338, 3285, 3208, + 3118, 3034, 2976, 2957, 2983, 3043, 3123, 3203, + 3270, 3317, 3341, 3342, 3318, 3268, 3191, 3097, + 3003, 2931, 2898, 2912, 2961, 3027, 3092, 3147, + 3197, 3244, 3278, 3261, 3143, 2884, 2489, 2023, + 1592, 1296, 1184, 1214, 1275, 1241, 1035, 678, + 280, 0, 0, 0, 198, 433, 582, 618, + 581, 535, 525, 550, 572, 550, 469, 354, + 252, 206, 229, 305, 401, 490, 560, 615, + 660, 694, 707, 687, 633, 553, 466, 395, + 352, 344, 370, 423, 497, 582, 666, 737, + 785, 806, 803, 787, 769, 760, 765, 781, + 800, 811, 804, 771, 714, 641, 565, 503, + 470, 473, 513, 582, 669, 758, 836, 894, + 925, 930, 917, 896, 881, 878, 891, 913, + 931, 933, 909, 858, 787, 709, 641, 596, + 584, 606, 661, 738, 827, 913, 983, 1027, + 1038, 1016, 966, 897, 822, 752, 699, 669, + 667, 697, 758, 842, 936, 1024, 1087, 1115, + 1105, 1066, 1011, 949, 886, 822, 764, 731, + 754, 864, 1076, 1377, 1716, 2026, 2244, 2338 + }, + { + 2315, 2218, 2102, 2015, 1981, 2000, 2055, 2126, + 2191, 2237, 2263, 2279, 2306, 2372, 2494, 2668, + 2861, 3024, 3116, 3127, 3086, 3052, 3076, 3177, + 3323, 3457, 3527, 3522, 3477, 3452, 3497, 3616, + 3767, 3888, 3934, 3903, 3838, 3796, 3814, 3893, + 3993, 4065, 4079, 4038, 3974, 3924, 3909, 3927, + 3954, 3967, 3956, 3929, 3900, 3884, 3884, 3892, + 3896, 3890, 3875, 3858, 3845, 3840, 3839, 3838, + 3832, 3822, 3811, 3801, 3795, 3790, 3786, 3779, + 3771, 3762, 3755, 3748, 3743, 3737, 3730, 3722, + 3714, 3708, 3702, 3697, 3691, 3684, 3676, 3667, + 3661, 3655, 3651, 3647, 3641, 3632, 3622, 3614, + 3608, 3605, 3604, 3600, 3592, 3580, 3568, 3560, + 3557, 3555, 3542, 3508, 3449, 3372, 3298, 3246, + 3226, 3226, 3221, 3179, 3085, 2954, 2820, 2726, + 2693, 2708, 2728, 2705, 2614, 2473, 2329, 2234, + 2209, 2227, 2228, 2154, 1985, 1757, 1543, 1414, + 1396, 1455, 1514, 1504, 1398, 1229, 1070, 984, + 989, 1046, 1085, 1050, 930, 769, 634, 577, + 599, 653, 674, 618, 489, 336, 222, 186, + 223, 287, 324, 299, 218, 122, 56, 46, + 88, 149, 196, 208, 191, 165, 154, 166, + 193, 221, 235, 234, 225, 221, 228, 245, + 262, 274, 277, 277, 278, 285, 297, 309, + 318, 323, 325, 329, 336, 346, 356, 364, + 368, 372, 377, 385, 394, 403, 410, 414, + 418, 423, 430, 440, 449, 456, 460, 463, + 467, 473, 482, 493, 502, 507, 509, 510, + 514, 523, 535, 547, 554, 556, 558, 572, + 607, 666, 740, 812, 862, 883, 884, 892, + 934, 1023, 1149, 1279, 1375, 1413, 1403, 1383, + 1399, 1480, 1617, 1766, 1872, 1904, 1874, 1834 + }, + { + 1847, 1946, 2110, 2270, 2343, 2282, 2105, 1895, + 1757, 1761, 1906, 2123, 2318, 2429, 2463, 2493, + 2607, 2851, 3191, 3530, 3760, 3823, 3743, 3615, + 3544, 3590, 3736, 3905, 4014, 4018, 3938, 3838, + 3780, 3791, 3849, 3907, 3925, 3894, 3838, 3793, + 3782, 3800, 3826, 3837, 3823, 3794, 3767, 3756, + 3759, 3768, 3770, 3761, 3745, 3729, 3720, 3718, + 3718, 3715, 3707, 3696, 3687, 3680, 3675, 3671, + 3665, 3657, 3650, 3643, 3637, 3632, 3626, 3619, + 3612, 3605, 3599, 3594, 3589, 3583, 3576, 3569, + 3562, 3556, 3551, 3546, 3540, 3534, 3527, 3520, + 3514, 3509, 3504, 3499, 3493, 3486, 3480, 3474, + 3468, 3463, 3457, 3452, 3446, 3441, 3436, 3431, + 3424, 3417, 3410, 3405, 3402, 3400, 3396, 3389, + 3378, 3368, 3362, 3363, 3366, 3366, 3358, 3341, + 3323, 3315, 3317, 3320, 3300, 3237, 3127, 2992, + 2871, 2799, 2781, 2779, 2724, 2557, 2266, 1904, + 1568, 1353, 1296, 1355, 1428, 1409, 1252, 992, + 726, 555, 522, 591, 668, 664, 544, 345, + 154, 50, 60, 151, 253, 304, 287, 228, + 174, 163, 196, 250, 289, 297, 279, 257, + 250, 265, 292, 316, 325, 322, 315, 315, + 325, 340, 355, 362, 364, 365, 370, 378, + 389, 398, 404, 408, 412, 419, 427, 436, + 442, 447, 452, 457, 465, 473, 481, 486, + 491, 495, 501, 508, 516, 524, 529, 534, + 538, 544, 551, 559, 566, 571, 576, 580, + 585, 592, 599, 606, 612, 616, 621, 626, + 633, 639, 645, 650, 655, 660, 667, 674, + 680, 683, 685, 690, 698, 708, 718, 722, + 720, 717, 719, 732, 750, 765, 768, 761, + 764, 803, 901, 1056, 1236, 1393, 1487, 1514 + }, + { + 1508, 1526, 1615, 1783, 1994, 2195, 2351, 2472, + 2605, 2800, 3072, 3376, 3631, 3765, 3758, 3663, + 3574, 3572, 3684, 3864, 4025, 4089, 4023, 3859, + 3663, 3503, 3413, 3389, 3396, 3391, 3338, 3222, + 3047, 2837, 2628, 2462, 2368, 2347, 2371, 2386, + 2347, 2237, 2077, 1924, 1839, 1861, 1988, 2186, + 2402, 2587, 2710, 2768, 2782, 2789, 2830, 2935, + 3111, 3328, 3535, 3676, 3720, 3679, 3600, 3544, + 3553, 3629, 3735, 3817, 3835, 3782, 3682, 3575, + 3493, 3453, 3446, 3450, 3435, 3375, 3252, 3069, + 2850, 2639, 2479, 2399, 2389, 2404, 2383, 2282, + 2101, 1885, 1706, 1624, 1664, 1805, 1992, 2167, + 2287, 2342, 2351, 2348, 2371, 2448, 2592, 2788, + 3001, 3184, 3297, 3328, 3300, 3261, 3263, 3334, + 3461, 3600, 3697, 3712, 3636, 3494, 3329, 3185, + 3091, 3055, 3054, 3043, 2967, 2784, 2487, 2123, + 1774, 1530, 1433, 1456, 1505, 1473, 1295, 991, + 658, 413, 330, 397, 524, 601, 557, 400, + 204, 63, 39, 134, 299, 471, 600, 674, + 704, 718, 741, 797, 901, 1059, 1260, 1471, + 1647, 1751, 1773, 1744, 1721, 1756, 1869, 2034, + 2191, 2276, 2251, 2120, 1920, 1705, 1523, 1401, + 1342, 1326, 1319, 1279, 1176, 1004, 788, 582, + 441, 396, 437, 517, 574, 564, 488, 382, + 300, 282, 336, 436, 543, 623, 662, 667, + 663, 678, 739, 862, 1044, 1260, 1468, 1625, + 1704, 1715, 1702, 1724, 1825, 2006, 2221, 2400, + 2481, 2441, 2300, 2113, 1938, 1818, 1762, 1754, + 1757, 1735, 1657, 1514, 1319, 1108, 928, 816, + 785, 811, 848, 846, 778, 654, 518, 422, + 405, 476, 614, 779, 926, 1024, 1062, 1057, + 1052, 1103, 1251, 1502, 1808, 2089, 2270, 2327 + }, + { + 2309, 2315, 2430, 2669, 2948, 3135, 3124, 2919, + 2647, 2496, 2610, 3003, 3537, 4001, 4095, 4095, + 3891, 3626, 3505, 3569, 3746, 3904, 3935, 3811, + 3583, 3336, 3136, 3005, 2925, 2876, 2851, 2864, + 2925, 3023, 3126, 3197, 3215, 3192, 3166, 3178, + 3249, 3372, 3515, 3640, 3718, 3737, 3703, 3629, + 3538, 3448, 3376, 3333, 3315, 3314, 3310, 3289, + 3242, 3173, 3098, 3035, 2996, 2986, 2998, 3019, + 3035, 3039, 3029, 3011, 2995, 2985, 2985, 2991, + 2996, 2997, 2990, 2978, 2968, 2968, 2986, 3024, + 3079, 3142, 3199, 3238, 3253, 3251, 3246, 3256, + 3293, 3354, 3425, 3481, 3496, 3459, 3369, 3241, + 3098, 2966, 2865, 2807, 2788, 2795, 2803, 2790, + 2743, 2665, 2578, 2516, 2512, 2582, 2724, 2910, + 3106, 3276, 3394, 3453, 3455, 3415, 3352, 3291, + 3256, 3259, 3296, 3332, 3312, 3177, 2895, 2486, + 2029, 1630, 1380, 1303, 1343, 1382, 1305, 1058, + 682, 292, 22, 0, 76, 304, 518, 636, + 642, 583, 529, 533, 607, 727, 857, 973, + 1069, 1147, 1204, 1228, 1207, 1139, 1044, 952, + 895, 881, 897, 910, 891, 821, 708, 575, + 455, 373, 347, 377, 450, 546, 639, 711, + 751, 764, 763, 769, 794, 844, 913, 986, + 1046, 1084, 1095, 1085, 1066, 1050, 1045, 1053, + 1070, 1086, 1097, 1098, 1092, 1086, 1085, 1091, + 1103, 1114, 1115, 1098, 1060, 1004, 940, 882, + 845, 831, 835, 840, 829, 792, 730, 660, + 607, 593, 631, 719, 845, 985, 1116, 1217, + 1277, 1295, 1288, 1278, 1290, 1339, 1418, 1505, + 1567, 1573, 1515, 1404, 1269, 1141, 1041, 978, + 944, 930, 926, 925, 918, 894, 844, 773, + 713, 716, 836, 1096, 1462, 1847, 2150, 2306 + }, + { + 2325, 2301, 2351, 2549, 2871, 3195, 3368, 3298, + 3023, 2699, 2526, 2632, 3000, 3477, 3853, 3981, + 3846, 3562, 3294, 3164, 3186, 3284, 3355, 3338, + 3249, 3155, 3119, 3156, 3230, 3281, 3277, 3233, + 3203, 3238, 3356, 3524, 3685, 3786, 3805, 3754, + 3667, 3576, 3501, 3445, 3404, 3376, 3356, 3341, + 3323, 3291, 3239, 3170, 3099, 3044, 3022, 3038, + 3089, 3158, 3230, 3288, 3325, 3339, 3333, 3316, + 3296, 3280, 3272, 3270, 3272, 3274, 3273, 3267, + 3257, 3247, 3239, 3236, 3236, 3234, 3224, 3200, + 3157, 3097, 3027, 2959, 2908, 2884, 2894, 2936, + 2999, 3069, 3131, 3174, 3195, 3199, 3196, 3202, + 3226, 3271, 3333, 3395, 3438, 3445, 3403, 3313, + 3184, 3039, 2904, 2804, 2754, 2752, 2784, 2826, + 2853, 2852, 2827, 2795, 2779, 2795, 2847, 2929, + 3030, 3138, 3246, 3338, 3387, 3350, 3187, 2880, + 2461, 2008, 1624, 1388, 1315, 1347, 1371, 1284, + 1041, 685, 327, 87, 35, 162, 390, 617, + 770, 831, 834, 826, 838, 869, 897, 900, + 879, 852, 842, 856, 878, 874, 819, 708, + 564, 425, 330, 302, 343, 438, 567, 706, + 836, 941, 1010, 1039, 1033, 1005, 975, 957, + 960, 980, 1007, 1023, 1018, 986, 932, 866, + 803, 758, 737, 740, 760, 785, 804, 814, + 813, 808, 805, 806, 814, 825, 836, 843, + 846, 846, 847, 857, 881, 924, 985, 1055, + 1123, 1173, 1197, 1195, 1174, 1151, 1138, 1143, + 1162, 1185, 1193, 1173, 1117, 1025, 908, 785, + 679, 612, 601, 653, 760, 903, 1053, 1183, + 1272, 1312, 1309, 1281, 1249, 1230, 1234, 1253, + 1276, 1285, 1270, 1226, 1154, 1061, 950, 832, + 728, 674, 710, 866, 1138, 1484, 1831, 2106 + }, + { + 2268, 2332, 2352, 2396, 2500, 2652, 2807, 2921, + 2989, 3051, 3170, 3379, 3654, 3908, 4040, 3987, + 3764, 3455, 3172, 2995, 2945, 2982, 3050, 3113, + 3171, 3250, 3365, 3502, 3623, 3687, 3682, 3634, + 3592, 3600, 3670, 3775, 3865, 3894, 3840, 3707, + 3520, 3311, 3109, 2941, 2830, 2792, 2834, 2946, + 3100, 3260, 3393, 3476, 3508, 3503, 3486, 3480, + 3500, 3552, 3624, 3695, 3738, 3728, 3649, 3501, + 3303, 3086, 2886, 2738, 2670, 2693, 2803, 2981, + 3195, 3407, 3581, 3689, 3722, 3685, 3600, 3494, + 3394, 3320, 3278, 3262, 3256, 3239, 3191, 3102, + 2976, 2830, 2695, 2603, 2584, 2649, 2792, 2990, + 3205, 3398, 3539, 3608, 3604, 3542, 3443, 3337, + 3245, 3183, 3155, 3150, 3148, 3124, 3057, 2942, + 2792, 2638, 2521, 2477, 2521, 2644, 2820, 3014, + 3201, 3359, 3473, 3514, 3447, 3238, 2882, 2420, + 1943, 1557, 1339, 1293, 1343, 1364, 1245, 950, + 540, 144, 0, 0, 57, 359, 667, 898, + 1030, 1086, 1105, 1105, 1079, 1005, 876, 714, + 564, 469, 447, 479, 524, 540, 504, 425, + 333, 265, 250, 302, 419, 590, 793, 1000, + 1178, 1294, 1330, 1282, 1165, 1011, 855, 728, + 647, 613, 614, 630, 637, 619, 570, 498, + 426, 382, 393, 473, 620, 816, 1031, 1227, + 1373, 1441, 1420, 1311, 1135, 921, 710, 537, + 430, 399, 437, 522, 626, 723, 795, 836, + 852, 860, 878, 925, 1012, 1136, 1280, 1415, + 1507, 1528, 1463, 1320, 1123, 909, 718, 580, + 513, 516, 577, 672, 777, 868, 931, 960, + 964, 965, 987, 1053, 1169, 1321, 1475, 1589, + 1630, 1583, 1461, 1291, 1104, 923, 763, 641, + 587, 639, 826, 1143, 1536, 1916, 2194, 2329 + }, + { + 2352, 2354, 2429, 2621, 2892, 3146, 3287, 3287, + 3208, 3166, 3262, 3507, 3812, 4032, 4047, 3835, + 3479, 3121, 2886, 2822, 2890, 3013, 3127, 3222, + 3325, 3469, 3652, 3827, 3929, 3915, 3787, 3596, + 3404, 3261, 3183, 3153, 3149, 3152, 3157, 3164, + 3174, 3178, 3172, 3156, 3140, 3141, 3167, 3218, + 3284, 3348, 3397, 3419, 3410, 3364, 3280, 3162, + 3023, 2886, 2777, 2721, 2735, 2821, 2967, 3152, + 3349, 3526, 3653, 3705, 3671, 3552, 3369, 3152, + 2940, 2767, 2658, 2624, 2662, 2758, 2889, 3032, + 3162, 3259, 3311, 3316, 3279, 3213, 3132, 3053, + 2988, 2942, 2917, 2911, 2917, 2929, 2940, 2945, + 2939, 2926, 2913, 2914, 2944, 3012, 3118, 3246, + 3373, 3471, 3515, 3490, 3392, 3230, 3027, 2812, + 2623, 2495, 2454, 2505, 2635, 2814, 3008, 3188, + 3338, 3440, 3470, 3397, 3189, 2843, 2398, 1940, + 1572, 1367, 1327, 1378, 1397, 1277, 986, 585, + 202, 0, 0, 149, 447, 742, 959, 1078, + 1128, 1145, 1140, 1099, 993, 814, 590, 378, + 235, 197, 260, 389, 542, 687, 808, 899, + 962, 993, 994, 972, 941, 920, 921, 942, + 971, 988, 980, 944, 888, 824, 765, 720, + 698, 705, 748, 831, 951, 1091, 1229, 1336, + 1389, 1375, 1291, 1147, 964, 768, 592, 465, + 412, 446, 564, 746, 961, 1172, 1343, 1451, + 1484, 1447, 1352, 1221, 1079, 950, 853, 801, + 796, 833, 900, 980, 1058, 1123, 1167, 1192, + 1199, 1194, 1182, 1170, 1166, 1171, 1185, 1199, + 1199, 1170, 1102, 996, 868, 742, 646, 603, + 627, 723, 882, 1083, 1297, 1486, 1614, 1653, + 1598, 1466, 1290, 1103, 931, 786, 680, 635, + 686, 862, 1166, 1551, 1927, 2200, 2324, 2329 + }, + { + 2315, 2394, 2620, 2947, 3252, 3400, 3337, 3130, + 2939, 2924, 3150, 3540, 3915, 4095, 3994, 3666, + 3267, 2958, 2829, 2861, 2966, 3060, 3115, 3165, + 3267, 3443, 3659, 3838, 3909, 3847, 3685, 3490, + 3324, 3215, 3158, 3131, 3118, 3121, 3150, 3209, + 3287, 3361, 3411, 3425, 3406, 3365, 3312, 3250, + 3185, 3120, 3066, 3033, 3026, 3040, 3061, 3076, + 3076, 3062, 3044, 3032, 3034, 3055, 3093, 3145, + 3204, 3259, 3301, 3316, 3298, 3249, 3178, 3099, + 3029, 2978, 2951, 2944, 2950, 2960, 2969, 2971, + 2966, 2956, 2944, 2938, 2946, 2973, 3020, 3082, + 3147, 3198, 3222, 3213, 3173, 3112, 3041, 2972, + 2914, 2871, 2851, 2860, 2905, 2988, 3100, 3226, + 3341, 3421, 3448, 3409, 3305, 3144, 2948, 2745, + 2571, 2460, 2434, 2499, 2635, 2813, 2999, 3169, + 3306, 3394, 3409, 3317, 3092, 2736, 2297, 1863, + 1533, 1366, 1352, 1405, 1405, 1259, 951, 558, + 209, 22, 51, 259, 552, 825, 1015, 1116, + 1157, 1171, 1164, 1116, 1000, 816, 597, 400, + 279, 261, 335, 467, 615, 752, 864, 949, + 1005, 1026, 1009, 957, 884, 810, 751, 718, + 710, 722, 752, 798, 858, 928, 996, 1050, + 1078, 1081, 1065, 1046, 1035, 1039, 1054, 1071, + 1081, 1076, 1054, 1015, 964, 907, 854, 815, + 800, 816, 862, 930, 1007, 1078, 1131, 1161, + 1170, 1164, 1151, 1140, 1136, 1140, 1151, 1164, + 1171, 1164, 1136, 1087, 1024, 961, 912, 890, + 900, 938, 996, 1064, 1131, 1191, 1237, 1260, + 1252, 1206, 1120, 1005, 878, 763, 684, 659, + 699, 803, 962, 1157, 1357, 1528, 1638, 1665, + 1605, 1473, 1297, 1107, 931, 789, 703, 692, + 780, 977, 1270, 1615, 1948, 2203, 2338, 2351 + }, + { + 2275, 2164, 2062, 1995, 1968, 1971, 1998, 2044, + 2106, 2173, 2231, 2271, 2305, 2361, 2473, 2657, + 2890, 3115, 3269, 3320, 3288, 3240, 3250, 3359, + 3547, 3747, 3879, 3903, 3837, 3746, 3702, 3739, + 3842, 3953, 4015, 4005, 3940, 3865, 3822, 3826, + 3860, 3893, 3899, 3877, 3840, 3812, 3803, 3812, + 3824, 3827, 3816, 3796, 3778, 3769, 3767, 3769, + 3767, 3759, 3747, 3735, 3727, 3722, 3718, 3714, + 3708, 3701, 3694, 3688, 3683, 3677, 3670, 3663, + 3656, 3649, 3643, 3638, 3632, 3626, 3619, 3611, + 3603, 3596, 3589, 3583, 3578, 3573, 3568, 3562, + 3555, 3548, 3542, 3537, 3532, 3526, 3520, 3513, + 3507, 3501, 3498, 3495, 3492, 3486, 3478, 3469, + 3461, 3457, 3456, 3453, 3446, 3434, 3419, 3409, + 3405, 3406, 3401, 3375, 3321, 3245, 3168, 3113, + 3092, 3094, 3084, 3024, 2896, 2716, 2531, 2398, + 2345, 2355, 2364, 2302, 2130, 1871, 1599, 1403, + 1337, 1384, 1472, 1512, 1450, 1298, 1123, 1004, + 977, 1020, 1059, 1023, 885, 682, 489, 379, + 374, 438, 496, 484, 384, 230, 89, 18, + 34, 110, 194, 243, 241, 206, 170, 159, + 179, 215, 245, 257, 251, 239, 234, 243, + 261, 280, 292, 296, 295, 295, 301, 311, + 323, 333, 340, 345, 349, 354, 360, 368, + 377, 385, 393, 400, 406, 411, 417, 423, + 431, 438, 446, 452, 457, 463, 469, 475, + 482, 488, 493, 499, 505, 512, 520, 528, + 534, 538, 542, 547, 555, 564, 571, 576, + 578, 580, 586, 595, 607, 615, 618, 617, + 616, 621, 635, 651, 663, 664, 663, 677, + 726, 821, 950, 1080, 1172, 1209, 1204, 1199, + 1244, 1364, 1541, 1724, 1857, 1911, 1906, 1896 + }, + { + 1934, 2037, 2180, 2313, 2404, 2468, 2562, 2752, + 3059, 3434, 3775, 3980, 4004, 3884, 3722, 3627, + 3653, 3779, 3926, 4012, 3999, 3911, 3810, 3755, + 3767, 3820, 3869, 3879, 3847, 3795, 3758, 3751, + 3770, 3792, 3798, 3782, 3755, 3732, 3723, 3726, + 3733, 3733, 3724, 3709, 3695, 3687, 3684, 3683, + 3679, 3672, 3663, 3654, 3647, 3641, 3636, 3631, + 3624, 3618, 3611, 3605, 3599, 3592, 3586, 3580, + 3574, 3569, 3563, 3556, 3549, 3543, 3537, 3532, + 3526, 3520, 3514, 3508, 3502, 3498, 3494, 3490, + 3484, 3477, 3469, 3462, 3456, 3451, 3446, 3441, + 3435, 3430, 3424, 3420, 3416, 3412, 3406, 3400, + 3393, 3388, 3384, 3383, 3380, 3375, 3366, 3355, + 3346, 3342, 3345, 3348, 3347, 3337, 3319, 3303, + 3296, 3301, 3308, 3299, 3257, 3184, 3100, 3036, + 3010, 3011, 2987, 2873, 2629, 2267, 1862, 1524, + 1334, 1307, 1367, 1396, 1288, 1016, 650, 315, + 127, 127, 263, 422, 499, 450, 312, 170, + 100, 129, 223, 318, 360, 340, 286, 243, + 241, 277, 326, 358, 361, 342, 323, 321, + 337, 362, 382, 389, 385, 380, 381, 391, + 405, 418, 426, 430, 432, 436, 443, 451, + 461, 469, 476, 481, 485, 489, 494, 500, + 508, 516, 523, 528, 533, 537, 544, 551, + 559, 566, 571, 574, 578, 583, 591, 600, + 607, 612, 615, 618, 621, 627, 635, 642, + 648, 651, 654, 659, 666, 675, 684, 690, + 694, 695, 697, 703, 711, 721, 729, 733, + 733, 733, 736, 745, 757, 769, 774, 772, + 766, 765, 774, 793, 812, 822, 817, 808, + 813, 850, 923, 1012, 1084, 1112, 1105, 1108, + 1186, 1388, 1703, 2057, 2343, 2482, 2474, 2408 + }, + { + 2414, 2583, 2895, 3221, 3377, 3235, 2801, 2226, + 1732, 1500, 1581, 1888, 2261, 2566, 2768, 2925, + 3124, 3401, 3708, 3945, 4027, 3950, 3795, 3679, + 3682, 3798, 3952, 4047, 4035, 3939, 3829, 3776, + 3800, 3871, 3932, 3944, 3904, 3843, 3800, 3791, + 3810, 3833, 3842, 3829, 3797, 3749, 3686, 3614, + 3546, 3498, 3476, 3458, 3396, 3236, 2956, 2592, + 2231, 1972, 1866, 1886, 1935, 1896, 1700, 1369, + 1006, 737, 640, 710, 861, 983, 999, 906, + 763, 648, 615, 672, 783, 896, 976, 1009, + 1009, 999, 1010, 1076, 1224, 1460, 1762, 2068, + 2306, 2429, 2445, 2426, 2476, 2670, 3007, 3402, + 3727, 3881, 3845, 3692, 3542, 3494, 3574, 3729, + 3869, 3921, 3874, 3773, 3686, 3657, 3686, 3739, + 3774, 3768, 3733, 3693, 3670, 3667, 3676, 3683, + 3683, 3674, 3656, 3623, 3565, 3487, 3407, 3351, + 3329, 3318, 3257, 3079, 2753, 2317, 1873, 1541, + 1394, 1411, 1483, 1470, 1277, 916, 494, 163, + 28, 96, 274, 431, 466, 366, 199, 63, + 26, 89, 198, 282, 301, 262, 208, 179, + 193, 235, 276, 295, 292, 280, 273, 277, + 292, 316, 353, 410, 484, 558, 609, 630, + 643, 701, 861, 1142, 1509, 1870, 2128, 2230, + 2208, 2160, 2202, 2402, 2734, 3095, 3362, 3457, + 3395, 3266, 3182, 3216, 3365, 3559, 3707, 3746, + 3667, 3511, 3338, 3197, 3110, 3073, 3065, 3051, + 2995, 2861, 2635, 2337, 2027, 1780, 1650, 1632, + 1654, 1610, 1423, 1090, 695, 368, 212, 249, + 405, 560, 611, 532, 375, 233, 179, 226, + 328, 417, 448, 419, 366, 330, 333, 368, + 410, 436, 440, 430, 419, 416, 424, 446, + 486, 548, 623, 694, 739, 755, 767, 828 + }, + { + 986, 1258, 1604, 1946, 2203, 2342, 2404, 2478, + 2654, 2967, 3366, 3742, 3984, 4037, 3935, 3772, + 3654, 3641, 3721, 3834, 3906, 3892, 3798, 3658, + 3520, 3415, 3350, 3316, 3294, 3258, 3181, 3042, + 2836, 2582, 2331, 2141, 2051, 2058, 2114, 2149, + 2106, 1977, 1804, 1657, 1600, 1660, 1821, 2034, + 2242, 2400, 2492, 2527, 2539, 2575, 2681, 2881, + 3165, 3481, 3750, 3905, 3918, 3817, 3672, 3561, + 3530, 3577, 3657, 3715, 3720, 3674, 3608, 3559, + 3551, 3578, 3616, 3631, 3586, 3456, 3236, 2944, + 2628, 2349, 2164, 2095, 2115, 2158, 2148, 2040, + 1844, 1622, 1455, 1405, 1483, 1652, 1845, 2003, + 2093, 2118, 2111, 2114, 2167, 2294, 2495, 2746, + 2998, 3195, 3299, 3305, 3252, 3200, 3206, 3291, + 3429, 3566, 3647, 3645, 3575, 3480, 3410, 3396, + 3437, 3497, 3524, 3461, 3269, 2942, 2520, 2081, + 1715, 1491, 1417, 1431, 1429, 1317, 1060, 707, + 365, 144, 95, 191, 342, 449, 460, 384, + 282, 221, 238, 329, 459, 588, 690, 758, + 797, 824, 860, 932, 1065, 1268, 1522, 1776, + 1969, 2059, 2048, 1989, 1954, 1998, 2129, 2304, + 2451, 2506, 2443, 2281, 2069, 1862, 1705, 1612, + 1575, 1562, 1527, 1423, 1227, 946, 633, 365, + 209, 195, 296, 441, 552, 583, 536, 457, + 398, 393, 439, 505, 554, 564, 537, 498, + 484, 529, 658, 877, 1166, 1480, 1755, 1938, + 2005, 1985, 1942, 1954, 2063, 2260, 2483, 2650, + 2701, 2622, 2453, 2259, 2101, 2012, 1986, 1994, + 1992, 1939, 1812, 1611, 1362, 1114, 921, 821, + 814, 863, 909, 898, 814, 682, 554, 477, + 476, 535, 620, 688, 711, 688, 638, 603, + 635, 781, 1059, 1442, 1847, 2174, 2347, 2367 + }, + { + 2323, 2353, 2557, 2930, 3342, 3601, 3563, 3229, + 2764, 2420, 2400, 2747, 3315, 3854, 4095, 4095, + 3828, 3510, 3326, 3341, 3497, 3661, 3717, 3620, + 3406, 3150, 2915, 2725, 2578, 2463, 2384, 2353, + 2372, 2417, 2445, 2419, 2337, 2236, 2182, 2233, + 2413, 2698, 3026, 3323, 3533, 3633, 3634, 3574, + 3504, 3468, 3488, 3560, 3653, 3719, 3718, 3626, + 3450, 3227, 3004, 2826, 2717, 2676, 2674, 2672, + 2630, 2530, 2379, 2210, 2072, 2009, 2044, 2169, + 2349, 2537, 2688, 2778, 2812, 2814, 2824, 2878, + 2995, 3171, 3374, 3558, 3676, 3701, 3637, 3516, + 3386, 3293, 3257, 3270, 3295, 3286, 3201, 3022, + 2760, 2455, 2165, 1946, 1839, 1853, 1959, 2105, + 2232, 2298, 2297, 2256, 2223, 2245, 2350, 2535, + 2772, 3014, 3217, 3348, 3396, 3375, 3317, 3262, + 3248, 3292, 3383, 3475, 3505, 3411, 3163, 2777, + 2325, 1903, 1602, 1460, 1443, 1463, 1413, 1226, + 910, 545, 247, 104, 139, 297, 482, 605, + 628, 571, 498, 475, 541, 703, 938, 1213, + 1491, 1734, 1908, 1988, 1971, 1884, 1776, 1703, + 1699, 1758, 1838, 1877, 1821, 1650, 1383, 1073, + 782, 566, 455, 444, 502, 577, 622, 607, + 535, 438, 366, 366, 460, 637, 861, 1083, + 1257, 1362, 1402, 1404, 1408, 1451, 1552, 1702, + 1869, 2007, 2070, 2036, 1912, 1732, 1544, 1393, + 1302, 1269, 1267, 1258, 1206, 1090, 915, 713, + 531, 415, 390, 454, 575, 703, 795, 830, + 817, 792, 802, 887, 1065, 1326, 1630, 1918, + 2134, 2239, 2231, 2141, 2027, 1947, 1934, 1986, + 2063, 2110, 2074, 1933, 1696, 1402, 1108, 865, + 711, 657, 687, 762, 832, 852, 803, 701, + 598, 563, 653, 887, 1234, 1619, 1955, 2183 + }, + { + 2293, 2327, 2354, 2430, 2569, 2739, 2891, 2990, + 3048, 3115, 3243, 3450, 3690, 3879, 3934, 3829, + 3612, 3381, 3235, 3216, 3292, 3377, 3385, 3274, + 3062, 2812, 2593, 2450, 2392, 2405, 2467, 2560, + 2670, 2780, 2871, 2925, 2940, 2934, 2940, 2991, + 3101, 3254, 3412, 3532, 3581, 3552, 3459, 3332, + 3202, 3095, 3024, 2989, 2980, 2981, 2977, 2955, + 2913, 2857, 2801, 2760, 2742, 2749, 2769, 2789, + 2798, 2791, 2774, 2755, 2745, 2746, 2754, 2762, + 2764, 2756, 2743, 2732, 2732, 2747, 2779, 2823, + 2871, 2912, 2941, 2954, 2959, 2971, 3005, 3071, + 3164, 3266, 3348, 3384, 3354, 3257, 3111, 2944, + 2788, 2669, 2600, 2577, 2579, 2578, 2549, 2476, + 2369, 2252, 2166, 2145, 2210, 2355, 2554, 2765, + 2948, 3074, 3137, 3149, 3137, 3131, 3156, 3224, + 3330, 3445, 3523, 3509, 3357, 3055, 2634, 2172, + 1769, 1506, 1410, 1435, 1479, 1434, 1238, 912, + 549, 272, 167, 245, 439, 644, 771, 789, + 730, 663, 650, 721, 866, 1051, 1242, 1414, + 1552, 1642, 1671, 1630, 1527, 1388, 1252, 1158, + 1119, 1126, 1147, 1149, 1109, 1029, 925, 825, + 755, 728, 747, 801, 875, 947, 1004, 1038, + 1050, 1052, 1055, 1070, 1104, 1153, 1207, 1257, + 1291, 1306, 1301, 1286, 1271, 1264, 1268, 1282, + 1298, 1308, 1309, 1303, 1297, 1295, 1301, 1312, + 1321, 1320, 1306, 1277, 1236, 1190, 1147, 1116, + 1101, 1100, 1103, 1100, 1078, 1037, 984, 937, + 916, 934, 997, 1093, 1205, 1310, 1390, 1436, + 1453, 1457, 1471, 1513, 1593, 1701, 1810, 1889, + 1903, 1839, 1699, 1509, 1306, 1125, 995, 925, + 911, 936, 974, 1000, 991, 939, 860, 790, + 785, 892, 1125, 1451, 1795, 2070, 2224, 2267 + }, + { + 2271, 2332, 2506, 2776, 3050, 3219, 3225, 3104, + 2976, 2976, 3172, 3515, 3860, 4040, 3959, 3641, + 3212, 2826, 2592, 2525, 2568, 2645, 2718, 2793, + 2905, 3068, 3257, 3413, 3489, 3475, 3418, 3385, + 3430, 3559, 3725, 3860, 3903, 3827, 3643, 3384, + 3092, 2809, 2571, 2412, 2361, 2429, 2605, 2853, + 3119, 3352, 3512, 3586, 3584, 3534, 3466, 3410, + 3383, 3390, 3418, 3443, 3434, 3367, 3227, 3023, + 2783, 2549, 2369, 2280, 2301, 2431, 2643, 2894, + 3138, 3332, 3450, 3486, 3457, 3392, 3324, 3282, + 3277, 3302, 3336, 3347, 3307, 3197, 3019, 2791, + 2550, 2341, 2208, 2184, 2282, 2488, 2770, 3077, + 3355, 3558, 3660, 3656, 3564, 3418, 3255, 3111, + 3009, 2957, 2943, 2940, 2915, 2839, 2703, 2520, + 2327, 2177, 2114, 2166, 2327, 2571, 2853, 3130, + 3366, 3529, 3586, 3508, 3277, 2903, 2440, 1976, + 1611, 1409, 1366, 1407, 1413, 1285, 988, 581, + 187, 0, 0, 99, 435, 807, 1128, 1355, + 1487, 1544, 1540, 1474, 1344, 1160, 957, 783, + 677, 651, 677, 709, 700, 628, 504, 366, + 260, 228, 292, 455, 698, 989, 1284, 1532, + 1692, 1738, 1670, 1512, 1308, 1105, 941, 837, + 794, 796, 818, 836, 829, 792, 729, 662, + 620, 629, 710, 865, 1078, 1319, 1545, 1714, + 1796, 1772, 1646, 1442, 1197, 956, 760, 638, + 600, 637, 724, 827, 919, 981, 1009, 1014, + 1016, 1040, 1106, 1221, 1380, 1560, 1726, 1838, + 1861, 1775, 1585, 1316, 1016, 737, 529, 421, + 421, 512, 661, 827, 973, 1073, 1123, 1133, + 1134, 1158, 1234, 1372, 1557, 1750, 1898, 1957, + 1904, 1743, 1504, 1230, 957, 721, 552, 482, + 544, 755, 1097, 1507, 1892, 2165, 2291, 2307 + }, + { + 2306, 2385, 2589, 2877, 3148, 3300, 3302, 3212, + 3153, 3235, 3479, 3801, 4051, 4095, 3906, 3550, + 3174, 2914, 2828, 2886, 3009, 3127, 3220, 3316, + 3454, 3638, 3825, 3947, 3946, 3812, 3585, 3330, + 3109, 2954, 2867, 2839, 2861, 2930, 3043, 3185, + 3331, 3448, 3512, 3516, 3471, 3398, 3316, 3241, + 3177, 3130, 3100, 3088, 3091, 3104, 3116, 3120, + 3113, 3099, 3084, 3080, 3092, 3125, 3177, 3240, + 3302, 3351, 3374, 3364, 3323, 3258, 3180, 3104, + 3041, 2999, 2981, 2982, 2996, 3011, 3019, 3016, + 3002, 2987, 2977, 2983, 3009, 3054, 3112, 3176, + 3232, 3267, 3270, 3233, 3152, 3035, 2895, 2756, + 2640, 2573, 2571, 2640, 2776, 2959, 3161, 3350, + 3491, 3562, 3547, 3448, 3278, 3065, 2843, 2649, + 2517, 2468, 2509, 2626, 2795, 2985, 3171, 3333, + 3451, 3499, 3443, 3251, 2916, 2475, 2009, 1619, + 1384, 1319, 1359, 1387, 1293, 1028, 638, 242, + 0, 0, 80, 369, 678, 919, 1059, 1119, + 1135, 1128, 1090, 996, 830, 612, 392, 228, + 167, 219, 361, 555, 763, 957, 1119, 1234, + 1289, 1274, 1191, 1057, 902, 761, 658, 607, + 606, 644, 708, 784, 861, 929, 981, 1011, + 1021, 1015, 1001, 990, 986, 993, 1007, 1022, + 1027, 1015, 982, 929, 865, 803, 756, 735, + 745, 785, 848, 924, 999, 1063, 1106, 1126, + 1124, 1110, 1093, 1085, 1088, 1103, 1119, 1129, + 1122, 1095, 1050, 991, 929, 874, 839, 835, + 872, 951, 1068, 1207, 1347, 1461, 1527, 1529, + 1460, 1326, 1145, 945, 759, 618, 548, 564, + 664, 833, 1044, 1261, 1448, 1576, 1624, 1590, + 1481, 1319, 1128, 935, 766, 648, 606, 667, + 842, 1121, 1469, 1826, 2127, 2320, 2388, 2347 + }, + { + 2243, 2125, 2032, 1982, 1977, 2008, 2064, 2131, + 2195, 2246, 2280, 2311, 2366, 2474, 2644, 2855, + 3056, 3194, 3245, 3228, 3208, 3251, 3394, 3614, + 3842, 3996, 4028, 3952, 3826, 3726, 3696, 3736, + 3803, 3847, 3842, 3796, 3741, 3709, 3712, 3738, + 3760, 3762, 3740, 3710, 3688, 3683, 3690, 3699, + 3698, 3686, 3669, 3654, 3647, 3647, 3647, 3644, + 3636, 3625, 3616, 3609, 3604, 3600, 3595, 3589, + 3582, 3575, 3568, 3562, 3557, 3551, 3545, 3539, + 3533, 3528, 3521, 3515, 3509, 3503, 3498, 3493, + 3487, 3481, 3474, 3468, 3463, 3458, 3453, 3447, + 3441, 3435, 3429, 3424, 3419, 3414, 3408, 3401, + 3395, 3390, 3387, 3383, 3378, 3371, 3362, 3355, + 3351, 3349, 3349, 3345, 3337, 3325, 3313, 3308, + 3310, 3316, 3317, 3308, 3289, 3271, 3263, 3266, + 3265, 3230, 3130, 2958, 2737, 2521, 2368, 2308, + 2321, 2344, 2303, 2156, 1918, 1662, 1473, 1403, + 1440, 1509, 1522, 1427, 1239, 1032, 888, 850, + 890, 929, 886, 726, 485, 248, 102, 87, + 179, 306, 396, 411, 364, 300, 266, 279, + 327, 377, 401, 394, 371, 353, 355, 377, + 404, 423, 427, 421, 415, 417, 428, 443, + 456, 463, 465, 466, 470, 476, 486, 495, + 502, 508, 513, 517, 522, 528, 535, 542, + 549, 556, 561, 566, 570, 576, 583, 590, + 597, 603, 607, 611, 616, 623, 630, 637, + 643, 647, 651, 656, 662, 669, 677, 682, + 686, 689, 693, 700, 708, 715, 721, 723, + 726, 729, 736, 745, 754, 760, 761, 761, + 762, 769, 780, 793, 801, 801, 796, 793, + 798, 812, 830, 843, 847, 853, 886, 976, + 1136, 1351, 1572, 1740, 1812, 1792, 1735, 1721 + }, + { + 1808, 1996, 2210, 2342, 2302, 2084, 1772, 1515, + 1441, 1598, 1921, 2276, 2532, 2642, 2662, 2717, + 2914, 3273, 3711, 4081, 4095, 4095, 4036, 3832, + 3725, 3750, 3861, 3968, 4002, 3951, 3860, 3792, + 3786, 3832, 3889, 3913, 3889, 3837, 3791, 3775, + 3791, 3817, 3829, 3816, 3788, 3761, 3749, 3752, + 3761, 3763, 3754, 3737, 3722, 3714, 3712, 3712, + 3708, 3699, 3688, 3679, 3673, 3669, 3665, 3659, + 3650, 3642, 3636, 3630, 3626, 3620, 3613, 3605, + 3598, 3592, 3587, 3582, 3577, 3570, 3563, 3556, + 3549, 3543, 3538, 3532, 3527, 3522, 3517, 3512, + 3508, 3502, 3496, 3488, 3481, 3473, 3467, 3462, + 3458, 3454, 3449, 3443, 3438, 3433, 3428, 3423, + 3417, 3412, 3406, 3402, 3399, 3396, 3390, 3382, + 3372, 3364, 3362, 3363, 3365, 3361, 3349, 3332, + 3319, 3316, 3326, 3338, 3339, 3322, 3293, 3269, + 3265, 3277, 3264, 3168, 2936, 2561, 2104, 1670, + 1369, 1253, 1282, 1340, 1295, 1071, 691, 270, + 0, 0, 0, 128, 308, 377, 324, 207, + 114, 100, 165, 257, 318, 320, 276, 228, + 212, 238, 286, 325, 335, 320, 299, 292, + 306, 331, 353, 362, 360, 354, 355, 366, + 381, 394, 400, 401, 402, 407, 417, 427, + 435, 440, 444, 449, 457, 466, 474, 479, + 482, 485, 491, 498, 507, 515, 521, 525, + 529, 534, 542, 550, 559, 565, 570, 574, + 579, 585, 592, 598, 604, 608, 611, 615, + 620, 627, 634, 640, 646, 651, 657, 663, + 670, 676, 681, 685, 689, 695, 702, 708, + 713, 717, 720, 726, 733, 741, 747, 750, + 750, 752, 759, 772, 786, 792, 789, 779, + 775, 785, 809, 835, 844, 831, 813, 833 + }, + { + 939, 1157, 1466, 1808, 2109, 2324, 2465, 2594, + 2786, 3078, 3436, 3769, 3978, 4008, 3888, 3711, + 3584, 3570, 3656, 3776, 3850, 3839, 3762, 3672, + 3624, 3635, 3683, 3727, 3735, 3706, 3662, 3629, + 3620, 3630, 3644, 3650, 3647, 3636, 3620, 3600, + 3579, 3565, 3567, 3577, 3561, 3457, 3213, 2818, + 2328, 1858, 1526, 1390, 1411, 1463, 1407, 1161, + 757, 322, 10, 0, 29, 241, 415, 459, + 371, 226, 120, 109, 185, 287, 353, 352, + 305, 254, 237, 261, 306, 342, 353, 345, + 333, 331, 341, 357, 378, 412, 468, 543, + 617, 668, 687, 704, 781, 980, 1320, 1751, + 2167, 2456, 2565, 2531, 2472, 2517, 2741, 3112, + 3512, 3801, 3894, 3804, 3629, 3495, 3482, 3590, + 3751, 3874, 3901, 3829, 3701, 3576, 3494, 3464, + 3470, 3481, 3462, 3379, 3207, 2939, 2607, 2274, + 2020, 1891, 1874, 1883, 1805, 1560, 1158, 701, + 333, 169, 222, 408, 586, 645, 557, 384, + 230, 176, 233, 347, 444, 472, 434, 370, + 331, 339, 383, 430, 455, 454, 438, 426, + 426, 434, 446, 459, 474, 493, 506, 505, + 495, 507, 595, 807, 1148, 1565, 1957, 2227, + 2336, 2333, 2339, 2478, 2805, 3270, 3736, 4053, + 4095, 4014, 3801, 3639, 3613, 3717, 3871, 3978, + 3983, 3900, 3793, 3729, 3733, 3786, 3838, 3853, + 3824, 3776, 3739, 3731, 3744, 3758, 3759, 3748, + 3733, 3725, 3721, 3712, 3695, 3677, 3671, 3672, + 3646, 3532, 3277, 2871, 2377, 1910, 1591, 1473, + 1515, 1591, 1562, 1348, 978, 572, 274, 176, + 267, 447, 588, 606, 498, 334, 205, 173, + 245, 377, 509, 597, 627, 614, 591, 602, + 686, 871, 1154, 1494, 1815, 2046, 2153, 2175 + }, + { + 2202, 2328, 2586, 2917, 3197, 3310, 3227, 3033, + 2887, 2928, 3189, 3577, 3922, 4080, 4014, 3807, + 3608, 3538, 3624, 3791, 3921, 3925, 3790, 3579, + 3383, 3272, 3255, 3288, 3302, 3237, 3065, 2795, + 2470, 2154, 1907, 1770, 1744, 1787, 1828, 1803, + 1681, 1486, 1288, 1168, 1186, 1352, 1629, 1949, + 2239, 2450, 2563, 2598, 2605, 2648, 2779, 3018, + 3331, 3644, 3869, 3950, 3888, 3742, 3600, 3530, + 3551, 3631, 3709, 3739, 3708, 3642, 3581, 3555, + 3571, 3611, 3640, 3623, 3529, 3344, 3075, 2759, + 2457, 2231, 2117, 2100, 2117, 2081, 1928, 1658, + 1335, 1064, 934, 980, 1171, 1426, 1659, 1813, + 1876, 1878, 1871, 1907, 2027, 2244, 2538, 2860, + 3143, 3325, 3380, 3333, 3249, 3205, 3249, 3378, + 3539, 3662, 3699, 3646, 3543, 3450, 3411, 3440, + 3508, 3562, 3541, 3398, 3116, 2720, 2276, 1872, + 1590, 1462, 1453, 1468, 1402, 1193, 858, 489, + 206, 91, 147, 300, 444, 500, 452, 346, + 256, 236, 300, 422, 561, 679, 761, 807, + 832, 861, 927, 1065, 1293, 1597, 1925, 2200, + 2360, 2388, 2329, 2268, 2285, 2414, 2622, 2831, + 2950, 2924, 2749, 2468, 2150, 1864, 1657, 1544, + 1507, 1499, 1457, 1327, 1090, 778, 466, 243, + 166, 232, 380, 521, 588, 563, 482, 404, + 377, 410, 476, 537, 561, 543, 503, 476, + 495, 589, 773, 1039, 1350, 1648, 1872, 1986, + 2004, 1988, 2025, 2177, 2447, 2769, 3042, 3173, + 3127, 2936, 2680, 2446, 2292, 2231, 2231, 2241, + 2204, 2082, 1863, 1567, 1245, 966, 788, 736, + 784, 865, 905, 860, 735, 582, 465, 428, + 474, 566, 654, 697, 683, 631, 581, 583, + 686, 918, 1265, 1669, 2035, 2274, 2352, 2323 + }, + { + 2308, 2433, 2748, 3177, 3544, 3668, 3471, 3043, + 2609, 2418, 2602, 3107, 3715, 4095, 4095, 4046, + 3616, 3185, 2897, 2787, 2788, 2806, 2786, 2731, + 2689, 2696, 2748, 2804, 2822, 2794, 2756, 2766, + 2869, 3064, 3305, 3525, 3665, 3701, 3639, 3509, + 3345, 3176, 3025, 2909, 2838, 2812, 2819, 2835, + 2836, 2806, 2748, 2678, 2622, 2603, 2631, 2702, + 2801, 2908, 3003, 3069, 3101, 3101, 3077, 3044, + 3017, 3005, 3008, 3020, 3031, 3034, 3026, 3010, + 2994, 2986, 2988, 2995, 2998, 2985, 2945, 2876, + 2783, 2678, 2580, 2509, 2477, 2490, 2540, 2610, + 2679, 2730, 2754, 2756, 2753, 2768, 2820, 2918, + 3055, 3208, 3345, 3430, 3438, 3358, 3200, 2991, + 2767, 2569, 2428, 2360, 2361, 2409, 2472, 2517, + 2524, 2495, 2450, 2425, 2449, 2544, 2710, 2930, + 3175, 3407, 3585, 3664, 3602, 3379, 3006, 2540, + 2075, 1708, 1500, 1447, 1474, 1469, 1336, 1047, + 657, 281, 40, 5, 171, 465, 788, 1060, + 1245, 1349, 1398, 1415, 1410, 1385, 1347, 1314, + 1304, 1326, 1362, 1377, 1334, 1213, 1024, 806, + 608, 476, 432, 478, 596, 758, 934, 1092, + 1212, 1280, 1300, 1289, 1272, 1275, 1308, 1367, + 1436, 1489, 1507, 1479, 1409, 1311, 1205, 1110, + 1042, 1010, 1011, 1035, 1068, 1095, 1107, 1103, + 1090, 1079, 1077, 1086, 1102, 1117, 1124, 1122, + 1115, 1112, 1126, 1166, 1234, 1327, 1430, 1526, + 1597, 1629, 1617, 1568, 1498, 1428, 1378, 1354, + 1353, 1356, 1341, 1289, 1191, 1055, 904, 770, + 687, 680, 758, 913, 1120, 1342, 1539, 1679, + 1747, 1745, 1696, 1634, 1591, 1586, 1614, 1656, + 1678, 1652, 1560, 1400, 1187, 946, 711, 527, + 440, 494, 706, 1050, 1462, 1849, 2132, 2278 + }, + { + 2319, 2331, 2394, 2542, 2751, 2949, 3073, 3109, + 3107, 3151, 3303, 3555, 3826, 4002, 4003, 3830, + 3568, 3340, 3237, 3272, 3376, 3445, 3394, 3202, + 2912, 2606, 2358, 2209, 2165, 2204, 2299, 2425, + 2556, 2669, 2743, 2772, 2770, 2770, 2814, 2929, + 3111, 3324, 3517, 3640, 3669, 3612, 3505, 3392, + 3309, 3269, 3267, 3280, 3282, 3254, 3190, 3097, + 2990, 2890, 2814, 2772, 2765, 2784, 2812, 2835, + 2841, 2829, 2807, 2785, 2775, 2778, 2789, 2800, + 2801, 2791, 2775, 2765, 2773, 2811, 2879, 2969, + 3067, 3152, 3208, 3228, 3218, 3198, 3189, 3208, + 3257, 3322, 3374, 3382, 3325, 3195, 3007, 2793, + 2594, 2444, 2363, 2348, 2368, 2384, 2357, 2271, + 2141, 2009, 1928, 1941, 2063, 2280, 2546, 2808, + 3018, 3151, 3204, 3200, 3173, 3161, 3191, 3274, + 3394, 3511, 3568, 3508, 3293, 2930, 2474, 2018, + 1663, 1469, 1429, 1464, 1460, 1319, 1013, 604, + 214, 0, 0, 95, 355, 598, 744, 775, + 735, 695, 714, 818, 999, 1226, 1467, 1687, + 1857, 1950, 1949, 1857, 1704, 1539, 1409, 1346, + 1343, 1366, 1368, 1309, 1178, 990, 785, 609, + 497, 468, 516, 613, 723, 811, 858, 865, + 850, 842, 863, 923, 1017, 1126, 1227, 1302, + 1342, 1347, 1328, 1299, 1277, 1271, 1283, 1304, + 1325, 1335, 1332, 1321, 1310, 1308, 1318, 1334, + 1344, 1336, 1299, 1233, 1143, 1046, 961, 905, + 885, 895, 916, 925, 905, 855, 790, 739, + 731, 789, 918, 1104, 1314, 1511, 1659, 1739, + 1756, 1736, 1722, 1749, 1835, 1964, 2095, 2175, + 2161, 2038, 1824, 1562, 1305, 1097, 962, 902, + 900, 925, 943, 921, 846, 726, 599, 526, + 571, 771, 1112, 1525, 1910, 2177, 2297, 2314 + }, + { + 2323, 2419, 2632, 2912, 3149, 3244, 3173, 3014, + 2908, 2973, 3238, 3608, 3918, 4019, 3859, 3505, + 3101, 2783, 2620, 2591, 2628, 2672, 2714, 2788, + 2927, 3129, 3341, 3496, 3547, 3509, 3442, 3422, + 3493, 3644, 3818, 3944, 3963, 3855, 3630, 3317, + 2958, 2600, 2295, 2096, 2046, 2159, 2413, 2751, + 3101, 3394, 3587, 3670, 3665, 3613, 3558, 3539, + 3572, 3648, 3739, 3796, 3774, 3640, 3388, 3043, + 2659, 2303, 2045, 1935, 1997, 2221, 2563, 2960, + 3340, 3639, 3819, 3868, 3808, 3680, 3536, 3419, + 3356, 3346, 3365, 3372, 3322, 3183, 2951, 2650, + 2330, 2056, 1891, 1877, 2024, 2310, 2684, 3077, + 3421, 3662, 3772, 3754, 3635, 3461, 3280, 3131, + 3037, 2997, 2991, 2988, 2954, 2863, 2711, 2517, + 2321, 2175, 2124, 2190, 2369, 2629, 2928, 3218, + 3461, 3621, 3665, 3563, 3300, 2892, 2403, 1927, + 1566, 1378, 1349, 1391, 1380, 1220, 892, 469, + 86, 0, 0, 118, 470, 835, 1134, 1339, + 1459, 1515, 1514, 1447, 1306, 1104, 885, 705, + 604, 589, 626, 660, 644, 558, 420, 275, + 173, 156, 248, 453, 754, 1115, 1485, 1799, + 1997, 2040, 1918, 1662, 1330, 989, 703, 510, + 423, 426, 489, 572, 640, 670, 656, 617, + 584, 599, 695, 889, 1165, 1485, 1788, 2013, + 2110, 2059, 1869, 1579, 1245, 930, 684, 539, + 498, 541, 628, 715, 767, 768, 729, 681, + 668, 729, 886, 1133, 1440, 1754, 2016, 2171, + 2182, 2039, 1762, 1396, 1005, 660, 415, 303, + 323, 444, 620, 801, 946, 1037, 1074, 1079, + 1083, 1119, 1211, 1364, 1557, 1751, 1895, 1944, + 1877, 1700, 1444, 1154, 870, 629, 463, 408, + 493, 732, 1100, 1528, 1919, 2188, 2304, 2314 + }, + { + 2317, 2411, 2628, 2911, 3144, 3223, 3127, 2944, + 2824, 2892, 3171, 3558, 3878, 3980, 3821, 3483, + 3118, 2868, 2787, 2839, 2940, 3028, 3098, 3195, + 3364, 3609, 3870, 4057, 4095, 3974, 3729, 3436, + 3165, 2956, 2819, 2748, 2739, 2789, 2892, 3031, + 3176, 3292, 3359, 3372, 3343, 3289, 3225, 3160, + 3098, 3043, 3004, 2984, 2985, 2998, 3012, 3019, + 3014, 3001, 2987, 2980, 2986, 3009, 3049, 3101, + 3158, 3209, 3241, 3246, 3220, 3167, 3099, 3028, + 2966, 2921, 2897, 2891, 2898, 2911, 2921, 2924, + 2917, 2903, 2891, 2888, 2902, 2936, 2987, 3046, + 3102, 3142, 3156, 3135, 3076, 2984, 2867, 2740, + 2624, 2540, 2512, 2555, 2677, 2868, 3104, 3345, + 3550, 3679, 3706, 3626, 3449, 3205, 2935, 2685, + 2496, 2398, 2401, 2495, 2649, 2829, 3004, 3156, + 3272, 3337, 3327, 3209, 2962, 2599, 2175, 1780, + 1502, 1384, 1396, 1443, 1413, 1233, 911, 535, + 233, 106, 182, 410, 693, 938, 1099, 1180, + 1210, 1213, 1185, 1099, 934, 695, 429, 201, + 71, 71, 193, 403, 654, 906, 1126, 1289, + 1380, 1390, 1324, 1203, 1057, 920, 817, 760, + 746, 767, 813, 874, 943, 1010, 1067, 1105, + 1120, 1118, 1105, 1093, 1087, 1092, 1104, 1117, + 1124, 1119, 1097, 1058, 1004, 946, 895, 863, + 860, 887, 939, 1005, 1075, 1136, 1181, 1207, + 1214, 1207, 1193, 1181, 1178, 1186, 1201, 1215, + 1219, 1204, 1169, 1117, 1058, 1003, 964, 951, + 972, 1028, 1118, 1234, 1360, 1477, 1561, 1589, + 1545, 1424, 1235, 1002, 764, 561, 431, 402, + 481, 658, 903, 1173, 1419, 1602, 1694, 1690, + 1602, 1458, 1285, 1108, 947, 820, 750, 763, + 880, 1103, 1406, 1735, 2026, 2224, 2309, 2292 + }, + { + 2211, 2106, 2007, 1930, 1882, 1874, 1912, 1998, + 2117, 2239, 2337, 2403, 2465, 2566, 2744, 2996, + 3274, 3500, 3615, 3610, 3539, 3489, 3528, 3669, + 3863, 4029, 4095, 4068, 3974, 3886, 3854, 3885, + 3944, 3986, 3983, 3939, 3886, 3854, 3856, 3879, + 3900, 3900, 3878, 3849, 3827, 3822, 3829, 3835, + 3833, 3820, 3803, 3789, 3783, 3782, 3781, 3775, + 3766, 3755, 3747, 3741, 3736, 3731, 3724, 3716, + 3708, 3703, 3698, 3693, 3687, 3678, 3670, 3663, + 3658, 3653, 3648, 3642, 3634, 3625, 3618, 3612, + 3607, 3602, 3596, 3589, 3582, 3575, 3569, 3563, + 3558, 3552, 3546, 3540, 3533, 3527, 3521, 3515, + 3509, 3504, 3498, 3493, 3488, 3481, 3474, 3466, + 3461, 3457, 3455, 3452, 3445, 3434, 3423, 3415, + 3415, 3418, 3420, 3414, 3397, 3378, 3366, 3367, + 3369, 3348, 3276, 3139, 2955, 2769, 2632, 2574, + 2575, 2574, 2495, 2296, 1995, 1671, 1424, 1317, + 1341, 1414, 1427, 1310, 1070, 787, 570, 487, + 531, 623, 661, 584, 401, 186, 30, 0, + 49, 157, 241, 258, 217, 159, 127, 141, + 188, 236, 259, 251, 229, 214, 219, 242, + 269, 286, 288, 282, 278, 283, 297, 313, + 325, 329, 330, 332, 339, 350, 360, 368, + 372, 376, 382, 390, 398, 406, 412, 417, + 422, 428, 436, 445, 452, 457, 461, 466, + 473, 481, 489, 496, 501, 505, 510, 516, + 524, 532, 539, 544, 548, 553, 558, 566, + 573, 580, 585, 590, 595, 601, 607, 613, + 619, 624, 629, 636, 643, 649, 654, 657, + 660, 666, 675, 685, 693, 694, 692, 692, + 698, 713, 729, 739, 739, 739, 763, 838, + 973, 1151, 1331, 1463, 1520, 1519, 1512, 1562 + }, + { + 1707, 1931, 2171, 2349, 2413, 2363, 2253, 2151, + 2108, 2140, 2228, 2354, 2516, 2734, 3020, 3356, + 3684, 3923, 4013, 3952, 3799, 3649, 3577, 3606, + 3697, 3783, 3810, 3768, 3692, 3630, 3616, 3646, + 3689, 3710, 3695, 3656, 3619, 3603, 3612, 3631, + 3640, 3632, 3610, 3588, 3577, 3578, 3583, 3585, + 3578, 3564, 3551, 3543, 3541, 3540, 3537, 3530, + 3520, 3512, 3506, 3502, 3498, 3493, 3486, 3479, + 3472, 3468, 3463, 3458, 3453, 3446, 3439, 3433, + 3429, 3424, 3419, 3414, 3408, 3401, 3395, 3390, + 3386, 3381, 3376, 3370, 3364, 3358, 3353, 3348, + 3344, 3339, 3334, 3328, 3322, 3317, 3312, 3307, + 3303, 3298, 3293, 3288, 3283, 3278, 3272, 3266, + 3262, 3258, 3255, 3252, 3246, 3238, 3230, 3223, + 3221, 3223, 3224, 3220, 3208, 3193, 3181, 3180, + 3190, 3200, 3200, 3183, 3155, 3134, 3134, 3145, + 3130, 3034, 2811, 2462, 2046, 1665, 1414, 1330, + 1367, 1413, 1352, 1122, 760, 381, 116, 45, + 153, 346, 506, 555, 493, 382, 301, 297, + 363, 447, 498, 492, 448, 406, 396, 425, + 470, 503, 508, 491, 471, 467, 483, 508, + 529, 535, 530, 523, 524, 535, 550, 562, + 568, 568, 568, 573, 582, 593, 601, 606, + 609, 611, 617, 625, 633, 640, 645, 648, + 651, 656, 663, 671, 677, 682, 686, 690, + 695, 701, 708, 715, 720, 724, 728, 732, + 738, 745, 752, 757, 761, 764, 768, 774, + 781, 787, 792, 796, 800, 804, 809, 815, + 821, 826, 830, 835, 839, 845, 851, 855, + 859, 862, 867, 874, 881, 887, 890, 890, + 890, 895, 906, 918, 926, 926, 920, 915, + 919, 934, 954, 968, 976, 996, 1068, 1233 + }, + { + 1507, 1856, 2193, 2413, 2442, 2290, 2057, 1904, + 1976, 2331, 2901, 3518, 3992, 4095, 4095, 3903, + 3665, 3542, 3570, 3694, 3817, 3865, 3821, 3726, + 3645, 3621, 3652, 3704, 3735, 3726, 3687, 3646, + 3624, 3626, 3639, 3647, 3645, 3635, 3624, 3615, + 3603, 3587, 3573, 3569, 3574, 3560, 3475, 3265, + 2908, 2446, 1976, 1611, 1425, 1405, 1455, 1442, + 1271, 937, 530, 186, 14, 38, 191, 357, + 438, 404, 299, 200, 170, 216, 301, 368, + 384, 353, 308, 285, 297, 332, 367, 384, + 383, 375, 372, 376, 382, 387, 395, 411, + 434, 452, 453, 443, 464, 584, 868, 1332, + 1914, 2487, 2911, 3104, 3087, 2972, 2911, 3008, + 3268, 3599, 3869, 3982, 3926, 3774, 3632, 3580, + 3628, 3728, 3810, 3827, 3782, 3709, 3653, 3636, + 3655, 3689, 3712, 3701, 3635, 3495, 3276, 2998, + 2715, 2493, 2374, 2338, 2299, 2141, 1783, 1237, + 622, 113, 0, 0, 116, 392, 562, 561, + 431, 278, 200, 232, 337, 440, 481, 451, + 387, 341, 342, 385, 436, 466, 466, 447, + 431, 430, 443, 460, 473, 484, 496, 507, + 511, 509, 521, 592, 769, 1071, 1465, 1866, + 2174, 2328, 2349, 2333, 2410, 2665, 3089, 3575, + 3972, 4095, 4095, 3941, 3739, 3634, 3661, 3776, + 3890, 3933, 3888, 3796, 3719, 3696, 3728, 3778, + 3808, 3797, 3759, 3719, 3698, 3699, 3711, 3718, + 3715, 3707, 3699, 3689, 3674, 3654, 3638, 3638, + 3646, 3626, 3515, 3255, 2831, 2302, 1782, 1398, + 1222, 1229, 1308, 1322, 1178, 880, 522, 236, + 115, 168, 319, 461, 513, 463, 357, 267, + 243, 290, 372, 442, 468, 444, 393, 353, + 362, 452, 639, 911, 1230, 1534, 1767, 1903 + }, + { + 1962, 2005, 2092, 2251, 2456, 2649, 2781, 2850, + 2908, 3022, 3228, 3493, 3728, 3842, 3794, 3627, + 3443, 3341, 3365, 3480, 3601, 3644, 3580, 3441, + 3300, 3222, 3226, 3278, 3305, 3239, 3041, 2722, + 2338, 1968, 1689, 1544, 1526, 1580, 1626, 1592, + 1451, 1235, 1020, 891, 909, 1082, 1369, 1698, + 1993, 2202, 2310, 2341, 2348, 2396, 2537, 2784, + 3102, 3416, 3640, 3720, 3658, 3514, 3372, 3302, + 3323, 3402, 3482, 3514, 3486, 3420, 3359, 3332, + 3347, 3388, 3420, 3405, 3312, 3126, 2854, 2536, + 2231, 2003, 1889, 1873, 1891, 1857, 1707, 1440, + 1119, 847, 715, 760, 954, 1220, 1470, 1644, + 1726, 1740, 1737, 1776, 1905, 2144, 2477, 2849, + 3180, 3394, 3456, 3386, 3256, 3152, 3136, 3212, + 3334, 3437, 3471, 3429, 3345, 3268, 3237, 3259, + 3311, 3352, 3333, 3215, 2982, 2647, 2263, 1907, + 1655, 1544, 1548, 1579, 1534, 1344, 1020, 652, + 364, 248, 314, 489, 664, 748, 719, 618, + 522, 489, 535, 632, 733, 802, 827, 821, + 811, 834, 924, 1107, 1389, 1743, 2108, 2405, + 2573, 2602, 2542, 2481, 2504, 2645, 2871, 3097, + 3229, 3206, 3024, 2731, 2402, 2111, 1906, 1798, + 1765, 1755, 1707, 1569, 1326, 1012, 699, 475, + 394, 454, 598, 739, 809, 789, 711, 631, + 599, 626, 689, 751, 778, 764, 724, 693, + 706, 798, 982, 1252, 1570, 1873, 2100, 2213, + 2229, 2211, 2247, 2398, 2668, 2990, 3262, 3393, + 3346, 3150, 2883, 2631, 2456, 2374, 2361, 2364, + 2326, 2197, 1958, 1626, 1255, 927, 715, 654, + 723, 852, 953, 970, 898, 779, 678, 641, + 677, 757, 833, 872, 859, 811, 764, 764, + 855, 1060, 1365, 1715, 2023, 2215, 2272, 2249 + }, + { + 2257, 2389, 2661, 2971, 3150, 3053, 2652, 2077, + 1558, 1308, 1411, 1787, 2248, 2610, 2801, 2879, + 2974, 3182, 3494, 3795, 3942, 3850, 3543, 3141, + 2782, 2556, 2470, 2472, 2499, 2521, 2547, 2595, + 2666, 2737, 2777, 2776, 2764, 2795, 2915, 3136, + 3415, 3680, 3859, 3910, 3830, 3653, 3427, 3197, + 3000, 2856, 2776, 2752, 2766, 2791, 2799, 2773, + 2714, 2642, 2583, 2563, 2596, 2674, 2779, 2887, + 2976, 3032, 3055, 3049, 3026, 2999, 2977, 2967, + 2969, 2977, 2986, 2989, 2983, 2970, 2955, 2947, + 2946, 2952, 2955, 2941, 2902, 2832, 2738, 2634, + 2540, 2475, 2451, 2470, 2522, 2591, 2656, 2701, + 2721, 2722, 2724, 2753, 2830, 2967, 3152, 3355, + 3531, 3636, 3637, 3523, 3312, 3043, 2767, 2532, + 2374, 2306, 2312, 2359, 2404, 2412, 2368, 2285, + 2199, 2156, 2194, 2328, 2550, 2829, 3122, 3382, + 3565, 3629, 3543, 3297, 2914, 2455, 2012, 1674, + 1492, 1454, 1481, 1467, 1325, 1032, 647, 283, + 58, 40, 226, 548, 909, 1224, 1451, 1586, + 1647, 1657, 1633, 1587, 1537, 1503, 1503, 1536, + 1577, 1578, 1495, 1304, 1023, 704, 417, 228, + 171, 246, 424, 657, 894, 1094, 1234, 1307, + 1323, 1307, 1286, 1284, 1313, 1371, 1440, 1494, + 1513, 1483, 1408, 1305, 1197, 1107, 1050, 1027, + 1034, 1058, 1086, 1107, 1116, 1114, 1106, 1098, + 1095, 1101, 1114, 1127, 1136, 1137, 1132, 1130, + 1143, 1181, 1250, 1344, 1448, 1542, 1607, 1630, + 1611, 1559, 1491, 1427, 1383, 1364, 1362, 1359, + 1330, 1253, 1120, 938, 738, 561, 455, 457, + 581, 816, 1123, 1446, 1727, 1921, 2007, 1995, + 1921, 1833, 1773, 1764, 1801, 1856, 1888, 1858, + 1743, 1541, 1272, 975, 702, 507, 441, 531 + }, + { + 774, 1124, 1511, 1857, 2118, 2294, 2437, 2619, + 2894, 3258, 3648, 3959, 4095, 4007, 3717, 3307, + 2882, 2528, 2295, 2189, 2191, 2278, 2428, 2623, + 2835, 3029, 3168, 3235, 3238, 3215, 3215, 3278, + 3411, 3583, 3742, 3829, 3801, 3645, 3376, 3036, + 2679, 2361, 2135, 2037, 2079, 2245, 2497, 2779, + 3036, 3225, 3329, 3352, 3323, 3276, 3246, 3254, + 3302, 3373, 3434, 3448, 3384, 3226, 2983, 2688, + 2388, 2141, 1994, 1978, 2099, 2333, 2637, 2953, + 3227, 3416, 3500, 3488, 3405, 3292, 3187, 3118, + 3093, 3099, 3111, 3094, 3018, 2869, 2654, 2402, + 2160, 1980, 1910, 1975, 2176, 2482, 2842, 3191, + 3472, 3641, 3682, 3606, 3444, 3242, 3049, 2899, + 2810, 2777, 2774, 2762, 2704, 2579, 2391, 2173, + 1980, 1868, 1878, 2023, 2282, 2612, 2958, 3268, + 3497, 3609, 3576, 3386, 3050, 2617, 2165, 1786, + 1550, 1469, 1489, 1508, 1425, 1185, 816, 418, + 118, 15, 140, 449, 849, 1244, 1563, 1780, + 1895, 1916, 1852, 1708, 1503, 1272, 1067, 929, + 875, 886, 916, 912, 840, 702, 530, 378, + 298, 329, 482, 744, 1079, 1435, 1754, 1981, + 2079, 2036, 1868, 1617, 1337, 1082, 894, 791, + 766, 795, 842, 872, 865, 817, 746, 684, + 671, 736, 894, 1136, 1429, 1726, 1971, 2117, + 2133, 2014, 1780, 1477, 1160, 887, 699, 614, + 628, 710, 823, 927, 996, 1022, 1015, 1003, + 1020, 1094, 1242, 1456, 1707, 1950, 2130, 2200, + 2135, 1934, 1629, 1271, 925, 648, 481, 440, + 515, 674, 872, 1064, 1213, 1302, 1335, 1336, + 1344, 1397, 1520, 1709, 1931, 2128, 2243, 2231, + 2083, 1821, 1493, 1154, 854, 629, 511, 526, + 689, 993, 1390, 1797, 2119, 2292, 2322, 2291 + }, + { + 2314, 2477, 2774, 3101, 3304, 3269, 2996, 2616, + 2327, 2289, 2534, 2943, 3314, 3465, 3329, 2981, + 2577, 2272, 2135, 2143, 2217, 2293, 2362, 2459, + 2629, 2873, 3136, 3336, 3402, 3317, 3119, 2875, + 2646, 2469, 2348, 2279, 2254, 2274, 2335, 2425, + 2519, 2592, 2629, 2631, 2615, 2602, 2605, 2627, + 2661, 2697, 2726, 2738, 2725, 2679, 2596, 2477, + 2338, 2202, 2098, 2053, 2084, 2196, 2379, 2609, + 2850, 3062, 3206, 3253, 3193, 3035, 2807, 2549, + 2305, 2114, 2001, 1978, 2037, 2157, 2310, 2463, + 2591, 2678, 2718, 2716, 2683, 2633, 2582, 2538, + 2510, 2496, 2492, 2489, 2477, 2447, 2397, 2331, + 2260, 2201, 2172, 2191, 2269, 2406, 2591, 2794, + 2982, 3116, 3165, 3116, 2973, 2757, 2503, 2255, + 2054, 1930, 1903, 1972, 2119, 2315, 2524, 2715, + 2864, 2950, 2961, 2886, 2724, 2491, 2223, 1971, + 1787, 1696, 1687, 1710, 1698, 1602, 1413, 1175, + 963, 848, 869, 1014, 1236, 1474, 1680, 1830, + 1921, 1953, 1923, 1822, 1647, 1415, 1162, 942, + 800, 766, 840, 999, 1206, 1422, 1617, 1764, + 1851, 1872, 1835, 1757, 1663, 1577, 1518, 1490, + 1486, 1495, 1501, 1496, 1478, 1449, 1415, 1385, + 1370, 1381, 1428, 1513, 1632, 1770, 1905, 2008, + 2053, 2024, 1913, 1731, 1501, 1261, 1050, 908, + 862, 922, 1078, 1303, 1559, 1802, 1993, 2106, + 2129, 2070, 1950, 1798, 1645, 1517, 1431, 1391, + 1392, 1424, 1472, 1524, 1566, 1595, 1608, 1611, + 1615, 1627, 1658, 1708, 1774, 1845, 1904, 1932, + 1913, 1836, 1700, 1518, 1317, 1131, 998, 947, + 994, 1135, 1351, 1604, 1853, 2054, 2176, 2199, + 2128, 1981, 1788, 1585, 1398, 1250, 1158, 1137, + 1201, 1350, 1563, 1801, 2007, 2140, 2189, 2186 + }, + { + 2189, 2248, 2375, 2527, 2635, 2643, 2551, 2422, + 2354, 2421, 2630, 2905, 3131, 3208, 3107, 2880, + 2624, 2431, 2342, 2340, 2379, 2423, 2468, 2540, + 2662, 2834, 3015, 3151, 3196, 3140, 3009, 2847, + 2695, 2577, 2495, 2447, 2430, 2450, 2510, 2605, + 2717, 2822, 2898, 2932, 2923, 2881, 2818, 2746, + 2675, 2613, 2568, 2545, 2543, 2555, 2572, 2583, + 2585, 2576, 2563, 2553, 2552, 2563, 2586, 2616, + 2648, 2676, 2695, 2700, 2689, 2665, 2632, 2593, + 2557, 2529, 2511, 2504, 2507, 2514, 2522, 2526, + 2523, 2515, 2507, 2504, 2516, 2546, 2595, 2658, + 2723, 2778, 2807, 2802, 2760, 2685, 2587, 2482, + 2385, 2314, 2282, 2295, 2356, 2458, 2586, 2720, + 2838, 2919, 2948, 2917, 2825, 2683, 2510, 2334, + 2186, 2093, 2071, 2118, 2221, 2352, 2488, 2609, + 2702, 2760, 2770, 2719, 2597, 2408, 2178, 1954, + 1784, 1698, 1689, 1714, 1713, 1638, 1482, 1280, + 1098, 997, 1009, 1121, 1288, 1458, 1594, 1684, + 1734, 1751, 1736, 1678, 1568, 1411, 1232, 1071, + 966, 940, 992, 1104, 1245, 1388, 1514, 1609, + 1667, 1682, 1653, 1584, 1487, 1379, 1282, 1211, + 1177, 1181, 1219, 1280, 1354, 1428, 1490, 1533, + 1554, 1555, 1544, 1529, 1518, 1517, 1524, 1536, + 1545, 1546, 1536, 1514, 1484, 1451, 1423, 1404, + 1399, 1409, 1432, 1465, 1502, 1538, 1567, 1587, + 1595, 1593, 1585, 1576, 1571, 1573, 1581, 1590, + 1593, 1582, 1552, 1502, 1440, 1376, 1324, 1296, + 1302, 1343, 1417, 1514, 1618, 1715, 1786, 1819, + 1805, 1744, 1643, 1517, 1386, 1269, 1188, 1156, + 1185, 1277, 1420, 1595, 1770, 1915, 2003, 2022, + 1977, 1883, 1760, 1626, 1499, 1393, 1326, 1316, + 1375, 1500, 1668, 1846, 1998, 2102, 2152, 2156 + }, + { + 2126, 2069, 1990, 1899, 1820, 1789, 1831, 1951, + 2117, 2280, 2399, 2473, 2545, 2676, 2908, 3223, + 3547, 3784, 3872, 3816, 3691, 3602, 3618, 3744, + 3917, 4050, 4087, 4029, 3930, 3856, 3845, 3890, + 3948, 3976, 3956, 3905, 3856, 3837, 3849, 3875, + 3890, 3881, 3854, 3825, 3809, 3810, 3818, 3823, + 3817, 3801, 3784, 3772, 3768, 3768, 3767, 3760, + 3750, 3739, 3731, 3725, 3721, 3716, 3709, 3701, + 3693, 3686, 3680, 3675, 3669, 3662, 3655, 3648, + 3642, 3635, 3629, 3623, 3617, 3611, 3604, 3598, + 3592, 3586, 3581, 3575, 3568, 3561, 3554, 3548, + 3543, 3539, 3535, 3529, 3523, 3515, 3508, 3502, + 3497, 3493, 3489, 3484, 3476, 3467, 3459, 3453, + 3449, 3447, 3445, 3440, 3431, 3419, 3409, 3404, + 3406, 3410, 3409, 3399, 3381, 3364, 3356, 3359, + 3362, 3342, 3278, 3167, 3029, 2905, 2830, 2810, + 2807, 2753, 2586, 2293, 1924, 1579, 1354, 1287, + 1336, 1393, 1348, 1149, 834, 511, 297, 251, + 342, 473, 536, 475, 313, 131, 17, 13, + 95, 201, 266, 262, 211, 157, 139, 167, + 218, 261, 274, 258, 235, 224, 236, 264, + 290, 303, 301, 293, 290, 297, 313, 330, + 341, 345, 345, 346, 352, 362, 374, 383, + 389, 392, 396, 401, 409, 418, 427, 433, + 438, 443, 448, 454, 462, 471, 478, 483, + 487, 492, 498, 506, 514, 521, 526, 531, + 535, 541, 548, 556, 563, 569, 573, 577, + 582, 589, 597, 604, 611, 615, 618, 622, + 627, 635, 643, 651, 657, 660, 662, 664, + 670, 679, 691, 700, 705, 703, 700, 701, + 710, 727, 744, 753, 751, 749, 768, 829, + 937, 1074, 1201, 1278, 1296, 1287, 1314, 1439 + }, + { + 1679, 1983, 2247, 2369, 2302, 2087, 1843, 1700, + 1737, 1938, 2211, 2449, 2598, 2684, 2791, 2997, + 3316, 3676, 3960, 4077, 4013, 3844, 3683, 3621, + 3676, 3792, 3885, 3900, 3836, 3743, 3680, 3678, + 3723, 3774, 3791, 3766, 3717, 3677, 3666, 3682, + 3705, 3713, 3700, 3674, 3651, 3641, 3644, 3651, + 3652, 3643, 3628, 3615, 3607, 3605, 3604, 3600, + 3593, 3584, 3576, 3569, 3565, 3560, 3554, 3547, + 3541, 3535, 3529, 3523, 3517, 3511, 3505, 3500, + 3494, 3489, 3483, 3476, 3470, 3465, 3460, 3454, + 3449, 3442, 3437, 3431, 3426, 3421, 3416, 3410, + 3404, 3398, 3393, 3389, 3385, 3380, 3375, 3368, + 3362, 3357, 3353, 3349, 3345, 3339, 3332, 3324, + 3317, 3313, 3311, 3309, 3305, 3298, 3288, 3279, + 3273, 3273, 3276, 3276, 3269, 3255, 3239, 3229, + 3232, 3243, 3252, 3247, 3225, 3197, 3180, 3185, + 3196, 3167, 3042, 2782, 2401, 1970, 1594, 1363, + 1298, 1341, 1373, 1284, 1029, 658, 289, 49, + 2, 120, 305, 443, 472, 400, 292, 224, + 233, 303, 383, 426, 415, 371, 334, 329, + 360, 403, 433, 437, 421, 404, 402, 417, + 440, 459, 466, 463, 459, 460, 469, 482, + 494, 501, 505, 507, 511, 517, 525, 533, + 540, 546, 551, 557, 562, 567, 573, 579, + 586, 593, 599, 603, 608, 613, 619, 627, + 634, 639, 643, 647, 652, 659, 666, 673, + 678, 682, 686, 690, 697, 704, 711, 716, + 720, 723, 728, 734, 741, 748, 754, 757, + 759, 763, 769, 777, 786, 792, 794, 794, + 795, 800, 810, 823, 831, 833, 829, 825, + 827, 840, 860, 875, 878, 866, 849, 845, + 863, 897, 927, 930, 904, 879, 908, 1042 + }, + { + 1292, 1614, 1922, 2135, 2224, 2239, 2286, 2469, + 2821, 3277, 3702, 3959, 3986, 3827, 3612, 3474, + 3484, 3616, 3775, 3864, 3839, 3731, 3617, 3564, + 3590, 3659, 3717, 3725, 3683, 3625, 3586, 3582, + 3603, 3626, 3633, 3622, 3604, 3586, 3570, 3558, + 3551, 3553, 3555, 3529, 3422, 3183, 2804, 2335, + 1886, 1568, 1442, 1469, 1530, 1482, 1241, 834, + 384, 50, 0, 38, 259, 458, 536, 479, + 354, 251, 233, 296, 391, 454, 458, 415, + 368, 351, 372, 414, 448, 459, 452, 442, + 440, 447, 455, 461, 467, 482, 504, 520, + 520, 516, 558, 721, 1066, 1597, 2230, 2820, + 3221, 3360, 3278, 3112, 3025, 3118, 3381, 3706, + 3952, 4026, 3931, 3752, 3600, 3551, 3606, 3706, + 3781, 3788, 3734, 3660, 3608, 3599, 3625, 3661, + 3680, 3662, 3590, 3455, 3261, 3036, 2826, 2679, + 2610, 2574, 2477, 2221, 1762, 1156, 546, 102, + 0, 33, 287, 531, 639, 584, 432, 293, + 250, 312, 425, 513, 530, 484, 420, 387, + 403, 452, 499, 519, 509, 489, 478, 484, + 499, 513, 522, 531, 544, 556, 560, 558, + 576, 663, 865, 1193, 1595, 1975, 2236, 2335, + 2322, 2314, 2442, 2765, 3238, 3723, 4063, 4095, + 4040, 3809, 3614, 3552, 3628, 3770, 3878, 3894, + 3822, 3720, 3653, 3652, 3699, 3750, 3768, 3744, + 3699, 3664, 3653, 3662, 3673, 3675, 3667, 3658, + 3652, 3646, 3632, 3610, 3593, 3592, 3595, 3554, + 3391, 3045, 2511, 1874, 1281, 879, 742, 827, + 996, 1085, 993, 731, 406, 161, 88, 184, + 363, 513, 562, 508, 408, 333, 324, 375, + 448, 501, 515, 493, 457, 433, 443, 510, + 648, 851, 1086, 1295, 1427, 1476, 1501, 1604 + }, + { + 1873, 2315, 2828, 3239, 3395, 3259, 2944, 2665, + 2622, 2890, 3375, 3857, 4095, 4038, 3680, 3215, + 2844, 2686, 2728, 2850, 2894, 2743, 2370, 1837, + 1266, 781, 472, 367, 430, 577, 712, 763, + 708, 582, 450, 376, 391, 475, 577, 641, + 639, 582, 516, 500, 588, 801, 1125, 1507, + 1867, 2134, 2272, 2305, 2319, 2417, 2670, 3068, + 3520, 3889, 4070, 4037, 3861, 3665, 3559, 3583, + 3699, 3824, 3884, 3850, 3745, 3620, 3524, 3480, + 3480, 3496, 3485, 3395, 3178, 2813, 2321, 1781, + 1307, 1002, 908, 981, 1105, 1149, 1037, 782, + 479, 260, 229, 422, 801, 1277, 1745, 2120, + 2355, 2453, 2465, 2472, 2561, 2787, 3136, 3532, + 3861, 4026, 3999, 3835, 3640, 3517, 3514, 3604, + 3716, 3779, 3761, 3684, 3598, 3551, 3560, 3608, + 3656, 3659, 3577, 3388, 3094, 2731, 2364, 2067, + 1893, 1836, 1829, 1768, 1563, 1196, 738, 318, + 67, 54, 259, 586, 917, 1156, 1271, 1286, + 1270, 1306, 1464, 1779, 2238, 2773, 3277, 3639, + 3791, 3737, 3562, 3385, 3310, 3371, 3525, 3683, + 3763, 3735, 3631, 3516, 3452, 3466, 3535, 3604, + 3611, 3503, 3257, 2887, 2447, 2021, 1695, 1521, + 1486, 1511, 1481, 1309, 984, 585, 241, 61, + 81, 241, 427, 535, 523, 422, 307, 250, + 279, 375, 493, 587, 635, 640, 626, 637, + 723, 936, 1301, 1794, 2337, 2813, 3116, 3204, + 3127, 3002, 2960, 3077, 3338, 3643, 3861, 3889, + 3691, 3308, 2828, 2358, 1983, 1748, 1651, 1641, + 1635, 1546, 1322, 974, 581, 256, 94, 120, + 281, 471, 590, 595, 509, 403, 341, 354, + 423, 503, 553, 554, 516, 470, 457, 521, + 698, 996, 1379, 1768, 2069, 2221, 2237, 2214 + }, + { + 2279, 2510, 2874, 3226, 3379, 3210, 2744, 2152, + 1669, 1477, 1618, 1994, 2440, 2822, 3098, 3310, + 3522, 3751, 3949, 4039, 3972, 3776, 3543, 3381, + 3349, 3425, 3518, 3526, 3382, 3084, 2688, 2274, + 1916, 1668, 1562, 1605, 1784, 2059, 2367, 2637, + 2814, 2885, 2880, 2865, 2910, 3057, 3302, 3595, + 3863, 4036, 4077, 3991, 3820, 3627, 3465, 3367, + 3333, 3337, 3344, 3326, 3267, 3171, 3058, 2949, + 2866, 2820, 2808, 2816, 2823, 2808, 2763, 2695, + 2625, 2579, 2576, 2618, 2689, 2764, 2821, 2850, + 2853, 2848, 2854, 2887, 2954, 3048, 3153, 3246, + 3308, 3334, 3333, 3332, 3358, 3430, 3543, 3667, + 3759, 3773, 3680, 3482, 3207, 2907, 2640, 2452, + 2359, 2341, 2345, 2307, 2181, 1960, 1687, 1441, + 1308, 1348, 1573, 1940, 2372, 2784, 3106, 3303, + 3377, 3359, 3302, 3259, 3274, 3363, 3508, 3655, + 3728, 3654, 3397, 2975, 2469, 1988, 1637, 1462, + 1434, 1455, 1410, 1219, 883, 482, 142, 0, + 0, 179, 418, 606, 687, 669, 609, 580, + 639, 808, 1078, 1421, 1794, 2148, 2424, 2566, + 2541, 2352, 2051, 1722, 1448, 1284, 1233, 1248, + 1259, 1202, 1044, 797, 512, 256, 93, 55, + 139, 305, 494, 652, 749, 782, 779, 772, + 792, 851, 944, 1055, 1162, 1244, 1292, 1306, + 1299, 1291, 1304, 1347, 1415, 1486, 1533, 1536, + 1493, 1420, 1344, 1288, 1262, 1261, 1268, 1262, + 1228, 1161, 1068, 966, 876, 816, 790, 788, + 786, 758, 686, 575, 453, 364, 350, 442, + 638, 911, 1209, 1473, 1658, 1748, 1766, 1764, + 1804, 1933, 2155, 2426, 2668, 2799, 2761, 2542, + 2181, 1751, 1337, 1009, 807, 735, 759, 824, + 870, 850, 750, 597, 451, 388, 466, 705 + }, + { + 1070, 1486, 1860, 2115, 2220, 2192, 2089, 1981, + 1927, 1954, 2066, 2251, 2498, 2802, 3152, 3520, + 3849, 4068, 4095, 3958, 3642, 3244, 2865, 2584, + 2435, 2403, 2441, 2503, 2553, 2578, 2577, 2557, + 2528, 2512, 2538, 2639, 2833, 3112, 3429, 3720, + 3915, 3973, 3886, 3690, 3437, 3188, 2986, 2855, + 2793, 2781, 2788, 2784, 2744, 2663, 2553, 2441, + 2362, 2346, 2403, 2527, 2691, 2859, 2996, 3083, + 3114, 3105, 3080, 3064, 3076, 3118, 3177, 3233, + 3263, 3256, 3211, 3142, 3067, 3007, 2971, 2958, + 2953, 2935, 2884, 2789, 2652, 2495, 2349, 2247, + 2214, 2256, 2358, 2488, 2613, 2704, 2751, 2764, + 2768, 2796, 2873, 3010, 3198, 3404, 3584, 3687, + 3677, 3538, 3286, 2963, 2629, 2344, 2155, 2078, + 2100, 2182, 2273, 2331, 2333, 2287, 2228, 2199, + 2241, 2376, 2598, 2879, 3177, 3442, 3625, 3681, + 3577, 3308, 2903, 2429, 1982, 1650, 1481, 1455, + 1488, 1468, 1307, 989, 577, 195, 0, 0, + 169, 523, 913, 1249, 1481, 1609, 1656, 1653, + 1620, 1574, 1530, 1505, 1511, 1545, 1579, 1570, + 1474, 1272, 982, 658, 372, 187, 139, 227, + 418, 662, 906, 1107, 1240, 1304, 1316, 1306, + 1309, 1348, 1431, 1542, 1654, 1731, 1746, 1687, + 1564, 1403, 1237, 1100, 1014, 982, 995, 1033, + 1074, 1103, 1111, 1102, 1086, 1074, 1072, 1083, + 1101, 1117, 1124, 1121, 1112, 1112, 1135, 1198, + 1303, 1444, 1600, 1740, 1836, 1865, 1825, 1728, + 1602, 1479, 1388, 1338, 1322, 1318, 1293, 1220, + 1086, 901, 695, 515, 411, 421, 560, 812, + 1133, 1464, 1744, 1931, 2006, 1985, 1905, 1816, + 1759, 1756, 1800, 1857, 1886, 1845, 1714, 1496, + 1217, 919, 652, 469, 412, 508, 757, 1121 + }, + { + 1529, 1894, 2138, 2224, 2171, 2044, 1924, 1875, + 1917, 2030, 2181, 2351, 2550, 2802, 3122, 3481, + 3804, 4000, 3999, 3790, 3427, 3009, 2633, 2364, + 2225, 2208, 2298, 2490, 2778, 3143, 3537, 3889, + 4095, 4095, 4052, 3779, 3424, 3058, 2741, 2510, + 2383, 2361, 2427, 2555, 2707, 2844, 2939, 2984, + 2989, 2979, 2981, 3015, 3087, 3188, 3298, 3391, + 3438, 3412, 3299, 3102, 2840, 2554, 2291, 2103, + 2029, 2094, 2296, 2614, 3001, 3396, 3732, 3949, + 4007, 3894, 3628, 3255, 2839, 2447, 2141, 1963, + 1934, 2047, 2273, 2564, 2865, 3125, 3308, 3395, + 3388, 3305, 3175, 3033, 2905, 2812, 2759, 2740, + 2736, 2726, 2689, 2614, 2506, 2384, 2280, 2231, + 2267, 2407, 2647, 2957, 3291, 3589, 3794, 3862, + 3771, 3529, 3172, 2757, 2353, 2030, 1839, 1810, + 1938, 2189, 2512, 2851, 3156, 3389, 3523, 3533, + 3401, 3127, 2737, 2296, 1890, 1601, 1468, 1464, + 1501, 1471, 1298, 979, 590, 255, 86, 138, + 387, 752, 1137, 1467, 1707, 1850, 1897, 1838, + 1660, 1362, 975, 564, 212, 0, 0, 88, + 355, 697, 1051, 1364, 1598, 1730, 1755, 1686, + 1555, 1402, 1267, 1175, 1132, 1126, 1132, 1128, + 1094, 1026, 929, 820, 727, 679, 703, 815, + 1013, 1275, 1560, 1820, 2005, 2077, 2014, 1813, + 1500, 1117, 724, 390, 173, 115, 228, 493, + 864, 1278, 1667, 1970, 2144, 2171, 2057, 1832, + 1543, 1243, 983, 800, 714, 721, 804, 932, + 1075, 1202, 1295, 1349, 1369, 1373, 1383, 1419, + 1491, 1598, 1718, 1821, 1870, 1834, 1696, 1460, + 1154, 824, 530, 328, 261, 350, 589, 943, + 1354, 1755, 2076, 2266, 2296, 2171, 1923, 1603, + 1265, 960, 725, 591, 578, 699, 945, 1284 + }, + { + 1654, 1980, 2202, 2302, 2323, 2348, 2464, 2715, + 3075, 3450, 3725, 3816, 3707, 3453, 3150, 2882, + 2696, 2591, 2549, 2556, 2624, 2780, 3036, 3370, + 3720, 4001, 4095, 4095, 3928, 3632, 3287, 2950, + 2666, 2464, 2366, 2382, 2507, 2712, 2956, 3189, + 3369, 3473, 3497, 3453, 3362, 3245, 3121, 3007, + 2920, 2868, 2853, 2865, 2890, 2912, 2919, 2911, + 2893, 2875, 2868, 2876, 2902, 2942, 2990, 3039, + 3078, 3100, 3098, 3072, 3025, 2965, 2904, 2851, + 2814, 2795, 2792, 2800, 2812, 2821, 2822, 2814, + 2801, 2791, 2796, 2827, 2890, 2982, 3090, 3193, + 3265, 3284, 3236, 3118, 2941, 2727, 2507, 2317, + 2195, 2169, 2259, 2460, 2749, 3082, 3403, 3656, + 3797, 3801, 3665, 3410, 3077, 2721, 2400, 2168, + 2061, 2087, 2225, 2432, 2662, 2873, 3044, 3160, + 3212, 3182, 3046, 2796, 2452, 2072, 1740, 1526, + 1455, 1483, 1519, 1466, 1273, 967, 637, 398, + 328, 441, 681, 964, 1212, 1390, 1500, 1555, + 1559, 1494, 1334, 1070, 734, 390, 118, 0, + 13, 193, 480, 817, 1152, 1440, 1646, 1744, + 1725, 1597, 1390, 1148, 920, 744, 641, 615, + 654, 743, 861, 987, 1102, 1189, 1238, 1250, + 1236, 1211, 1192, 1187, 1196, 1213, 1228, 1233, + 1224, 1198, 1158, 1110, 1061, 1020, 996, 998, + 1026, 1076, 1137, 1199, 1251, 1286, 1304, 1306, + 1299, 1288, 1279, 1278, 1285, 1297, 1306, 1301, + 1271, 1209, 1117, 1010, 908, 837, 819, 868, + 985, 1160, 1371, 1588, 1776, 1898, 1925, 1838, + 1639, 1353, 1022, 702, 450, 309, 306, 443, + 698, 1030, 1382, 1697, 1922, 2027, 2005, 1875, + 1675, 1447, 1229, 1048, 926, 877, 914, 1045, + 1261, 1535, 1821, 2068, 2235, 2307, 2293, 2223 + }, + { + 2125, 2026, 1944, 1894, 1887, 1932, 2022, 2137, + 2250, 2346, 2435, 2555, 2752, 3044, 3403, 3751, + 4001, 4093, 4033, 3890, 3762, 3719, 3776, 3889, + 3988, 4022, 3986, 3919, 3869, 3867, 3905, 3949, + 3966, 3945, 3900, 3860, 3846, 3856, 3876, 3886, + 3875, 3851, 3826, 3814, 3814, 3820, 3821, 3813, + 3798, 3784, 3775, 3771, 3769, 3765, 3757, 3748, + 3739, 3732, 3727, 3721, 3714, 3707, 3700, 3693, + 3688, 3682, 3675, 3668, 3660, 3653, 3648, 3643, + 3637, 3630, 3623, 3616, 3609, 3604, 3599, 3593, + 3587, 3580, 3573, 3567, 3561, 3556, 3550, 3544, + 3537, 3531, 3525, 3520, 3514, 3508, 3502, 3495, + 3489, 3485, 3480, 3475, 3468, 3461, 3453, 3447, + 3444, 3442, 3439, 3432, 3421, 3410, 3403, 3402, + 3406, 3408, 3401, 3385, 3366, 3354, 3356, 3364, + 3361, 3329, 3261, 3173, 3096, 3056, 3052, 3041, + 2957, 2743, 2394, 1972, 1585, 1334, 1257, 1303, + 1355, 1292, 1057, 693, 319, 65, 1, 104, + 276, 399, 407, 308, 172, 79, 71, 133, + 211, 254, 242, 195, 154, 148, 179, 225, + 259, 264, 249, 231, 228, 244, 269, 289, + 296, 294, 290, 293, 303, 317, 329, 335, + 339, 342, 348, 356, 365, 373, 378, 384, + 390, 398, 406, 412, 417, 423, 429, 436, + 444, 452, 457, 462, 467, 474, 482, 491, + 498, 503, 507, 511, 517, 525, 533, 541, + 546, 550, 553, 559, 566, 574, 581, 587, + 591, 595, 600, 607, 615, 622, 627, 630, + 634, 639, 647, 656, 663, 666, 668, 670, + 676, 687, 698, 705, 706, 703, 702, 709, + 724, 741, 751, 749, 744, 750, 784, 851, + 933, 1004, 1040, 1045, 1056, 1128, 1305, 1590 + }, + { + 1930, 2238, 2433, 2476, 2394, 2256, 2144, 2105, + 2144, 2238, 2364, 2524, 2742, 3034, 3380, 3718, + 3963, 4056, 3998, 3854, 3717, 3664, 3711, 3815, + 3906, 3931, 3883, 3800, 3735, 3722, 3754, 3800, + 3823, 3808, 3767, 3727, 3709, 3718, 3738, 3749, + 3741, 3719, 3694, 3680, 3680, 3685, 3688, 3681, + 3668, 3654, 3644, 3640, 3639, 3636, 3630, 3621, + 3612, 3605, 3599, 3595, 3590, 3583, 3577, 3570, + 3563, 3557, 3552, 3546, 3540, 3534, 3528, 3522, + 3516, 3510, 3504, 3499, 3493, 3487, 3481, 3475, + 3469, 3464, 3459, 3454, 3448, 3441, 3435, 3430, + 3425, 3420, 3415, 3409, 3403, 3397, 3391, 3386, + 3381, 3377, 3373, 3367, 3360, 3353, 3347, 3342, + 3339, 3337, 3334, 3327, 3318, 3308, 3301, 3300, + 3302, 3304, 3299, 3286, 3269, 3256, 3256, 3267, + 3279, 3279, 3260, 3229, 3206, 3206, 3222, 3215, + 3126, 2905, 2548, 2112, 1700, 1414, 1299, 1317, + 1359, 1305, 1090, 741, 366, 95, 8, 98, + 274, 421, 460, 390, 272, 185, 178, 244, + 333, 390, 389, 345, 299, 285, 311, 358, + 395, 405, 390, 369, 362, 374, 399, 423, + 433, 431, 424, 422, 430, 445, 459, 468, + 471, 472, 474, 480, 489, 499, 507, 513, + 517, 521, 526, 532, 540, 547, 554, 560, + 564, 569, 574, 580, 588, 595, 601, 606, + 610, 614, 620, 628, 635, 641, 646, 650, + 654, 660, 667, 674, 680, 684, 688, 692, + 698, 706, 713, 720, 725, 728, 731, 735, + 742, 749, 757, 763, 766, 768, 770, 774, + 781, 791, 800, 806, 807, 805, 805, 810, + 822, 837, 849, 850, 842, 831, 831, 847, + 875, 897, 900, 887, 890, 961, 1146, 1451 + }, + { + 1822, 2159, 2358, 2359, 2187, 1935, 1729, 1660, + 1748, 1944, 2173, 2384, 2578, 2797, 3076, 3406, + 3722, 3936, 3993, 3904, 3749, 3626, 3602, 3675, + 3786, 3859, 3855, 3785, 3700, 3651, 3657, 3700, + 3741, 3751, 3727, 3687, 3656, 3646, 3650, 3659, + 3663, 3663, 3658, 3649, 3631, 3606, 3585, 3582, + 3593, 3578, 3461, 3167, 2663, 2004, 1324, 791, + 523, 533, 713, 896, 937, 789, 517, 255, + 120, 153, 302, 463, 547, 526, 439, 354, + 326, 364, 434, 493, 512, 493, 459, 437, + 444, 490, 578, 707, 867, 1029, 1160, 1240, + 1291, 1382, 1603, 2014, 2596, 3241, 3789, 4095, + 4095, 3955, 3706, 3535, 3516, 3626, 3773, 3861, + 3845, 3751, 3647, 3594, 3612, 3670, 3721, 3729, + 3695, 3646, 3611, 3606, 3620, 3635, 3639, 3631, + 3619, 3607, 3596, 3582, 3569, 3563, 3568, 3562, + 3496, 3314, 2985, 2539, 2067, 1688, 1485, 1459, + 1518, 1522, 1364, 1025, 593, 215, 17, 36, + 209, 409, 525, 511, 405, 292, 243, 278, + 363, 439, 465, 439, 393, 365, 371, 404, + 440, 460, 461, 454, 450, 453, 457, 459, + 465, 480, 505, 528, 532, 520, 534, 650, + 946, 1452, 2111, 2787, 3315, 3577, 3568, 3392, + 3216, 3177, 3319, 3576, 3822, 3946, 3913, 3774, + 3630, 3561, 3591, 3679, 3759, 3781, 3742, 3674, + 3619, 3602, 3618, 3648, 3669, 3664, 3623, 3539, + 3408, 3240, 3068, 2932, 2857, 2818, 2740, 2521, + 2095, 1481, 800, 227, 0, 0, 117, 404, + 599, 625, 507, 346, 249, 263, 361, 470, + 526, 507, 444, 389, 379, 415, 469, 508, + 516, 500, 479, 470, 476, 492, 511, 530, + 546, 554, 547, 534, 539, 608, 782, 1071 + }, + { + 1438, 1802, 2085, 2246, 2311, 2358, 2470, 2684, + 2967, 3233, 3400, 3439, 3392, 3352, 3401, 3559, + 3770, 3922, 3907, 3674, 3257, 2764, 2325, 2036, + 1925, 1934, 1949, 1855, 1581, 1144, 640, 205, + 0, 0, 90, 311, 476, 519, 446, 323, + 232, 221, 285, 380, 451, 465, 424, 364, + 336, 393, 574, 892, 1319, 1788, 2203, 2482, + 2594, 2586, 2568, 2660, 2928, 3341, 3782, 4095, + 4095, 4075, 3782, 3454, 3204, 3083, 3078, 3117, + 3110, 2972, 2654, 2160, 1551, 939, 454, 193, + 180, 346, 562, 698, 685, 541, 357, 231, + 221, 313, 442, 534, 546, 489, 409, 371, + 429, 611, 914, 1300, 1699, 2032, 2238, 2310, + 2312, 2356, 2547, 2924, 3424, 3907, 4095, 4095, + 4095, 3905, 3706, 3642, 3716, 3854, 3962, 3978, + 3897, 3764, 3637, 3559, 3541, 3561, 3573, 3514, + 3323, 2958, 2424, 1795, 1194, 758, 567, 611, + 781, 927, 927, 752, 471, 216, 112, 221, + 527, 949, 1386, 1751, 1998, 2123, 2169, 2206, + 2317, 2560, 2939, 3393, 3809, 4076, 4095, 4017, + 3816, 3651, 3600, 3666, 3787, 3882, 3898, 3835, + 3738, 3664, 3648, 3689, 3751, 3780, 3724, 3541, + 3219, 2788, 2317, 1900, 1622, 1511, 1518, 1534, + 1441, 1178, 777, 352, 44, 0, 84, 364, + 673, 906, 1015, 1018, 983, 997, 1139, 1458, + 1952, 2560, 3172, 3658, 3919, 3932, 3765, 3549, + 3413, 3427, 3571, 3757, 3884, 3894, 3801, 3670, + 3576, 3562, 3622, 3704, 3742, 3675, 3466, 3115, + 2664, 2191, 1791, 1542, 1461, 1486, 1498, 1378, + 1076, 640, 206, 0, 0, 0, 219, 401, + 456, 387, 264, 172, 162, 234, 348, 458, + 535, 571, 575, 577, 624, 783, 1118, 1646 + }, + { + 2301, 2928, 3333, 3373, 3033, 2452, 1865, 1493, + 1442, 1663, 2005, 2313, 2518, 2665, 2852, 3153, + 3549, 3931, 4095, 4095, 4015, 3777, 3611, 3599, + 3729, 3902, 3989, 3888, 3565, 3054, 2440, 1832, + 1333, 1019, 921, 1018, 1236, 1473, 1634, 1670, + 1597, 1492, 1459, 1587, 1911, 2402, 2971, 3507, + 3906, 4095, 4095, 3979, 3794, 3651, 3606, 3663, + 3772, 3860, 3861, 3745, 3531, 3271, 3030, 2857, + 2766, 2729, 2688, 2577, 2343, 1979, 1529, 1083, + 755, 639, 778, 1144, 1650, 2178, 2619, 2906, + 3031, 3037, 2999, 2995, 3075, 3251, 3484, 3711, + 3863, 3901, 3831, 3701, 3581, 3529, 3561, 3646, + 3713, 3681, 3488, 3115, 2598, 2022, 1495, 1119, + 953, 989, 1154, 1335, 1429, 1385, 1227, 1048, + 966, 1077, 1417, 1945, 2565, 3155, 3609, 3865, + 3918, 3816, 3642, 3486, 3414, 3449, 3561, 3677, + 3707, 3580, 3275, 2832, 2339, 1906, 1614, 1487, + 1476, 1481, 1397, 1168, 815, 428, 124, 0, + 39, 206, 385, 483, 459, 345, 219, 175, + 284, 577, 1039, 1614, 2212, 2729, 3073, 3189, + 3091, 2856, 2600, 2431, 2402, 2488, 2603, 2635, + 2498, 2166, 1676, 1119, 600, 213, 13, 0, + 122, 298, 439, 488, 436, 328, 239, 239, + 367, 610, 914, 1208, 1430, 1557, 1606, 1632, + 1707, 1889, 2197, 2596, 3001, 3304, 3414, 3289, + 2955, 2496, 2023, 1636, 1390, 1289, 1284, 1301, + 1266, 1133, 903, 621, 360, 192, 155, 237, + 381, 510, 564, 526, 434, 362, 394, 590, + 967, 1485, 2058, 2579, 2949, 3113, 3078, 2918, + 2742, 2651, 2695, 2848, 3022, 3101, 2993, 2661, + 2141, 1525, 933, 469, 203, 144, 248, 430, + 595, 669, 630, 513, 396, 370, 495, 776 + }, + { + 1160, 1558, 1882, 2075, 2129, 2081, 1993, 1922, + 1910, 1972, 2109, 2320, 2600, 2941, 3319, 3683, + 3966, 4095, 4081, 3913, 3676, 3464, 3347, 3341, + 3404, 3455, 3411, 3223, 2890, 2460, 2009, 1619, + 1361, 1280, 1385, 1646, 1996, 2354, 2641, 2812, + 2869, 2859, 2854, 2918, 3084, 3334, 3613, 3849, + 3981, 3984, 3874, 3700, 3521, 3385, 3311, 3292, + 3298, 3297, 3266, 3197, 3098, 2989, 2889, 2816, + 2779, 2772, 2782, 2785, 2765, 2714, 2644, 2578, + 2543, 2553, 2605, 2680, 2751, 2800, 2819, 2817, + 2812, 2824, 2866, 2939, 3034, 3134, 3218, 3270, + 3289, 3288, 3293, 3331, 3413, 3530, 3649, 3724, + 3713, 3594, 3373, 3089, 2795, 2552, 2395, 2329, + 2318, 2299, 2210, 2014, 1726, 1409, 1156, 1055, + 1157, 1455, 1893, 2379, 2820, 3146, 3327, 3373, + 3330, 3258, 3219, 3252, 3362, 3517, 3652, 3689, + 3568, 3269, 2828, 2331, 1884, 1577, 1442, 1438, + 1465, 1407, 1193, 828, 402, 46, 0, 0, + 125, 399, 622, 728, 719, 659, 630, 701, + 903, 1227, 1633, 2062, 2447, 2716, 2815, 2721, + 2457, 2094, 1725, 1436, 1272, 1224, 1237, 1237, + 1165, 999, 759, 500, 284, 163, 157, 254, + 411, 577, 708, 781, 802, 799, 805, 849, + 944, 1083, 1245, 1396, 1508, 1561, 1556, 1509, + 1453, 1416, 1413, 1442, 1483, 1513, 1517, 1498, + 1471, 1455, 1460, 1482, 1506, 1511, 1477, 1395, + 1271, 1120, 970, 850, 779, 761, 775, 788, + 764, 687, 566, 440, 360, 369, 492, 716, + 1001, 1290, 1526, 1676, 1740, 1752, 1775, 1869, + 2067, 2355, 2672, 2924, 3025, 2923, 2624, 2186, + 1702, 1263, 940, 761, 716, 758, 829, 869, + 839, 732, 578, 440, 394, 499, 773, 1173 + }, + { + 1604, 1952, 2125, 2096, 1917, 1698, 1557, 1568, + 1730, 1980, 2235, 2444, 2616, 2802, 3057, 3384, + 3720, 3959, 4001, 3808, 3418, 2926, 2441, 2043, + 1773, 1639, 1642, 1783, 2052, 2415, 2807, 3142, + 3354, 3421, 3383, 3316, 3301, 3384, 3557, 3766, + 3936, 3997, 3904, 3646, 3246, 2755, 2247, 1808, + 1516, 1428, 1563, 1892, 2349, 2844, 3284, 3602, + 3765, 3787, 3713, 3611, 3543, 3547, 3625, 3740, + 3828, 3822, 3671, 3361, 2918, 2406, 1913, 1533, + 1343, 1384, 1654, 2103, 2645, 3178, 3611, 3883, + 3977, 3918, 3765, 3588, 3448, 3380, 3383, 3423, + 3444, 3386, 3204, 2888, 2466, 2006, 1598, 1332, + 1274, 1445, 1818, 2323, 2864, 3348, 3698, 3876, + 3880, 3744, 3522, 3278, 3068, 2929, 2868, 2859, + 2855, 2797, 2641, 2374, 2027, 1668, 1386, 1260, + 1335, 1610, 2038, 2546, 3048, 3471, 3753, 3854, + 3752, 3459, 3018, 2512, 2039, 1690, 1508, 1471, + 1494, 1468, 1309, 1000, 600, 223, 0, 0, + 199, 601, 1096, 1595, 2026, 2341, 2509, 2512, + 2352, 2051, 1667, 1277, 962, 771, 712, 743, + 794, 799, 718, 557, 360, 194, 128, 211, + 461, 860, 1354, 1864, 2303, 2591, 2674, 2538, + 2211, 1758, 1268, 829, 511, 346, 324, 398, + 502, 571, 567, 489, 374, 286, 294, 445, + 756, 1198, 1708, 2197, 2573, 2761, 2718, 2450, + 2004, 1467, 936, 505, 234, 140, 198, 350, + 526, 665, 733, 730, 691, 670, 728, 909, + 1224, 1644, 2102, 2508, 2771, 2829, 2658, 2286, + 1785, 1247, 767, 419, 241, 236, 370, 590, + 832, 1040, 1178, 1238, 1246, 1250, 1307, 1464, + 1731, 2077, 2434, 2715, 2841, 2768, 2496, 2070, + 1564, 1062, 639, 358, 258, 353, 626, 1023 + }, + { + 1459, 1835, 2070, 2132, 2053, 1917, 1822, 1830, + 1935, 2069, 2134, 2052, 1809, 1462, 1112, 856, + 753, 809, 989, 1242, 1520, 1786, 2008, 2165, + 2250, 2284, 2320, 2424, 2645, 2975, 3348, 3656, + 3800, 3736, 3491, 3151, 2813, 2543, 2368, 2279, + 2266, 2335, 2508, 2797, 3180, 3591, 3941, 4095, + 4095, 4001, 3709, 3357, 3008, 2711, 2495, 2379, + 2371, 2469, 2653, 2888, 3127, 3325, 3453, 3499, + 3469, 3384, 3267, 3141, 3024, 2933, 2875, 2852, + 2857, 2879, 2902, 2914, 2911, 2895, 2876, 2865, + 2869, 2893, 2932, 2982, 3032, 3073, 3098, 3102, + 3081, 3039, 2981, 2918, 2860, 2817, 2794, 2790, + 2799, 2812, 2822, 2822, 2814, 2801, 2791, 2794, + 2821, 2877, 2961, 3064, 3168, 3249, 3284, 3255, + 3155, 2990, 2780, 2556, 2355, 2216, 2168, 2231, + 2407, 2675, 2999, 3326, 3602, 3777, 3815, 3701, + 3447, 3087, 2677, 2284, 1976, 1805, 1794, 1931, + 2173, 2465, 2751, 2990, 3159, 3244, 3232, 3108, + 2868, 2534, 2157, 1813, 1575, 1475, 1483, 1521, + 1493, 1335, 1053, 723, 453, 338, 413, 647, + 962, 1276, 1534, 1715, 1821, 1850, 1785, 1606, + 1307, 918, 510, 170, 0, 0, 120, 405, + 750, 1095, 1391, 1607, 1723, 1730, 1631, 1447, + 1214, 977, 781, 655, 610, 638, 722, 838, + 962, 1077, 1168, 1226, 1250, 1244, 1222, 1199, + 1186, 1189, 1205, 1225, 1237, 1232, 1208, 1167, + 1118, 1069, 1028, 1004, 1000, 1020, 1061, 1118, + 1181, 1240, 1284, 1307, 1310, 1299, 1285, 1276, + 1277, 1288, 1302, 1309, 1302, 1272, 1218, 1140, + 1044, 943, 858, 814, 835, 936, 1111, 1334, + 1562, 1753, 1871, 1901, 1837, 1685, 1451, 1149, + 811, 492, 267, 210, 362, 705, 1162, 1620 + } +}; diff --git a/util/wav_parser.py b/util/wav_parser.py new file mode 100644 index 00000000000..1c09f03f4f9 --- /dev/null +++ b/util/wav_parser.py @@ -0,0 +1,23 @@ +#! /bin/python + +import wave, struct, sys + +waveFile = wave.open(sys.argv[1], 'r') + +length = waveFile.getnframes() +out = "static const dacsample_t dac_buffer_custom[" + str(int(length / 256)) + "][256] = {" +for i in range(0,length): + if (i % 8 == 0): + out += "\n " + if (i % 256 == 0): + out = out[:-2] + out += "{\n " + waveData = waveFile.readframes(1) + data = struct.unpack("