From a336c2c5005251e4cb0f3a62ccabdb4cfccad915 Mon Sep 17 00:00:00 2001 From: lokher Date: Tue, 6 Dec 2022 17:10:48 +0800 Subject: Merge upstream master to 2022 Q4 breaking change --- keyboards/planck/keymaps/synth_wavetable/config.h | 56 - keyboards/planck/keymaps/synth_wavetable/keymap.c | 321 --- keyboards/planck/keymaps/synth_wavetable/rules.mk | 2 - .../planck/keymaps/synth_wavetable/wavetable.h | 2197 -------------------- 4 files changed, 2576 deletions(-) delete mode 100644 keyboards/planck/keymaps/synth_wavetable/config.h delete mode 100644 keyboards/planck/keymaps/synth_wavetable/keymap.c delete mode 100644 keyboards/planck/keymaps/synth_wavetable/rules.mk delete mode 100644 keyboards/planck/keymaps/synth_wavetable/wavetable.h (limited to 'keyboards/planck/keymaps/synth_wavetable') diff --git a/keyboards/planck/keymaps/synth_wavetable/config.h b/keyboards/planck/keymaps/synth_wavetable/config.h deleted file mode 100644 index 930b26b000..0000000000 --- a/keyboards/planck/keymaps/synth_wavetable/config.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright 2020 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#ifdef AUDIO_ENABLE - #define AUDIO_PIN A5 - #define STARTUP_SONG SONG(PLANCK_SOUND) - // #define STARTUP_SONG SONG(NO_SOUND) - - #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ - SONG(COLEMAK_SOUND), \ - SONG(DVORAK_SOUND) \ - } -#endif - -/* - * MIDI options - */ - -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ - -#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 2 - -// Most tactile encoders have detents every 4 stages -#define ENCODER_RESOLUTION 4 diff --git a/keyboards/planck/keymaps/synth_wavetable/keymap.c b/keyboards/planck/keymaps/synth_wavetable/keymap.c deleted file mode 100644 index f23c426014..0000000000 --- a/keyboards/planck/keymaps/synth_wavetable/keymap.c +++ /dev/null @@ -1,321 +0,0 @@ -/* Copyright 2019 Jack Humbert - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include QMK_KEYBOARD_H - -enum planck_layers { - _QWERTY, - _COLEMAK, - _DVORAK, - _LOWER, - _RAISE, - _PLOVER, - _ADJUST -}; - -enum planck_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - PLOVER, - BACKLIT, - EXT_PLV -}; - -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT_planck_grid( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = LAYOUT_planck_grid( - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DVORAK] = LAYOUT_planck_grid( - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, - KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , - BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -), - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = LAYOUT_planck_grid( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = LAYOUT_planck_grid( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY -), - -/* Plover layer (http://opensteno.org) - * ,-----------------------------------------------------------------------------------. - * | # | # | # | # | # | # | # | # | # | # | # | # | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | S | T | P | H | * | * | F | P | L | T | D | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | S | K | W | R | * | * | R | B | G | S | Z | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Exit | | | A | O | | E | U | | | | - * `-----------------------------------------------------------------------------------' - */ -[_PLOVER] = LAYOUT_planck_grid( - KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , - XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX -), - -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , - _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) - -}; - -#ifdef AUDIO_ENABLE - float plover_song[][2] = SONG(PLOVER_SOUND); - float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); -#endif - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; - case BACKLIT: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - #ifdef KEYBOARD_planck_rev5 - PORTE &= ~(1<<6); - #endif - } else { - unregister_code(KC_RSFT); - #ifdef KEYBOARD_planck_rev5 - PORTE |= (1<<6); - #endif - } - return false; - break; - case PLOVER: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_SONG(plover_song); - #endif - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - return false; - break; - case EXT_PLV: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(plover_gb_song); - #endif - layer_off(_PLOVER); - } - return false; - break; - } - return true; -} - -void matrix_scan_user(void) { - -} - -bool music_mask_user(uint16_t keycode) { - switch (keycode) { - case RAISE: - case LOWER: - return false; - default: - return true; - } -} - -#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_morph = 0; - - -uint16_t dac_value_generate(void) { - uint16_t value = AUDIO_DAC_OFF_VALUE; - uint8_t active_tones = audio_get_number_of_active_tones(); - if (active_tones > AUDIO_MAX_SIMULTANEOUS_TONES) - active_tones = AUDIO_MAX_SIMULTANEOUS_TONES; - - if (active_tones > 0) { - uint16_t value_avg = 0; - for (uint8_t i = 0; i < active_tones; i++) { - dac_if[i] = dac_if[i] - + ((audio_get_frequency(i) * AUDIO_DAC_BUFFER_SIZE) / AUDIO_DAC_SAMPLE_RATE) - * 2/3; // necessary to adjust for the gpt-timer frequency (three times the sample rate) and the dac-conversion beeing called twice per sample - - // Needed because % doesn't work with floats - while (dac_if[i] >= (AUDIO_DAC_BUFFER_SIZE)) - dac_if[i] = dac_if[i] - AUDIO_DAC_BUFFER_SIZE; - - // #define AUDIO_DAC_MORPH_SPEED 372 - // #define AUDIO_DAC_MORPH_SPEED_COMPUTED (AUDIO_DAC_SAMPLE_RATE / AUDIO_DAC_WAVETABLE_CUSTOM_LENGTH * (1000 / AUDIO_DAC_MORPH_SPEED)) - - uint16_t dac_i = (uint16_t)dac_if[i]; - // value_avg += dac_buffer_custom[dac_morph_flipped][dac_i] / active_tones / 2 * ((dac_morph >= 63) ? 6400 - dac_morph_counter : dac_morph_counter) / 6400; - // value_avg += dac_buffer_custom[dac_morph_flipped + 1][dac_i] / active_tones / 2 * ((dac_morph >= 63) ? dac_morph_counter : 6400 - dac_morph_counter) / 6400; - - // value_avg += dac_wavetable_custom[dac_morph][dac_i] / active_tones / 2 * (AUDIO_DAC_MORPH_SPEED_COMPUTED - dac_morph_counter) / AUDIO_DAC_MORPH_SPEED_COMPUTED; - // value_avg += dac_wavetable_custom[dac_morph + 1][dac_i] / active_tones / 2 * dac_morph_counter / AUDIO_DAC_MORPH_SPEED_COMPUTED; - value_avg += dac_wavetable_custom[dac_morph][dac_i] / active_tones; - } - value = value_avg; - - // dac_morph_counter++; - // if (dac_morph_counter >= AUDIO_DAC_MORPH_SPEED_COMPUTED) { - // dac_morph_counter = 0; - // dac_morph = (dac_morph + 1) % 125; - // dac_morph_flipped = ((dac_morph >= 63) ? (125 - dac_morph) : dac_morph); - // dac_morph = (dac_morph + 1) % (AUDIO_DAC_WAVETABLE_CUSTOM_LENGTH - 1); - // } - } - return value; -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - dac_morph = (dac_morph + 1) % AUDIO_DAC_WAVETABLE_CUSTOM_LENGTH; - } else { - if (dac_morph == 0) - dac_morph = (AUDIO_DAC_WAVETABLE_CUSTOM_LENGTH - 1); - else - dac_morph--; - } - return true; -} diff --git a/keyboards/planck/keymaps/synth_wavetable/rules.mk b/keyboards/planck/keymaps/synth_wavetable/rules.mk deleted file mode 100644 index ebfcda2214..0000000000 --- a/keyboards/planck/keymaps/synth_wavetable/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -AUDIO_ENABLE = yes -AUDIO_DRIVER = dac_additive diff --git a/keyboards/planck/keymaps/synth_wavetable/wavetable.h b/keyboards/planck/keymaps/synth_wavetable/wavetable.h deleted file mode 100644 index 89a0eefcbb..0000000000 --- a/keyboards/planck/keymaps/synth_wavetable/wavetable.h +++ /dev/null @@ -1,2197 +0,0 @@ -/* -Copyright 2020 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#define AUDIO_DAC_WAVETABLE_CUSTOM_LENGTH 64 - -static const dacsample_t dac_wavetable_custom[64][256] = { - { - 3038, 4095, 3745, 3945, 3779, 3889, 3782, 3850, - 3775, 3817, 3766, 3788, 3755, 3762, 3743, 3738, - 3729, 3716, 3715, 3695, 3700, 3676, 3683, 3658, - 3667, 3642, 3649, 3626, 3632, 3611, 3614, 3596, - 3596, 3581, 3579, 3567, 3561, 3552, 3544, 3537, - 3528, 3522, 3511, 3507, 3495, 3491, 3479, 3476, - 3464, 3460, 3449, 3444, 3433, 3428, 3419, 3412, - 3404, 3397, 3389, 3382, 3374, 3366, 3359, 3351, - 3345, 3336, 3330, 3322, 3314, 3307, 3299, 3293, - 3285, 3279, 3270, 3265, 3255, 3251, 3241, 3237, - 3227, 3223, 3213, 3208, 3200, 3194, 3187, 3179, - 3173, 3165, 3161, 3150, 3149, 3136, 3137, 3121, - 3125, 3107, 3112, 3093, 3099, 3080, 3086, 3068, - 3072, 3056, 3058, 3045, 3043, 3036, 3027, 3027, - 3010, 3019, 2992, 3013, 2974, 3007, 2955, 3002, - 2935, 2999, 2913, 2998, 2886, 3006, 2842, 3067, - 2464, 221, 205, 228, 215, 260, 231, 285, - 249, 307, 270, 326, 291, 344, 313, 359, - 335, 374, 357, 388, 378, 403, 399, 416, - 419, 431, 438, 445, 457, 460, 475, 476, - 492, 492, 509, 508, 525, 524, 540, 541, - 555, 558, 571, 574, 586, 591, 601, 607, - 616, 624, 631, 639, 647, 656, 662, 671, - 677, 687, 692, 702, 708, 718, 723, 733, - 738, 748, 753, 763, 768, 777, 783, 792, - 798, 806, 812, 820, 827, 834, 842, 848, - 857, 862, 872, 875, 887, 888, 901, 902, - 915, 915, 929, 929, 943, 942, 956, 956, - 969, 971, 981, 986, 992, 1001, 1003, 1017, - 1013, 1032, 1023, 1048, 1033, 1064, 1043, 1079, - 1054, 1093, 1065, 1106, 1078, 1118, 1092, 1127, - 1109, 1132, 1130, 1132, 1160, 1118, 1217, 1036 - }, - { - 2048, 2049, 2056, 2071, 2096, 2130, 2174, 2225, - 2280, 2337, 2392, 2444, 2490, 2529, 2559, 2581, - 2593, 2597, 2594, 2589, 2585, 2588, 2603, 2635, - 2685, 2755, 2842, 2943, 3050, 3157, 3258, 3347, - 3423, 3485, 3535, 3577, 3612, 3641, 3665, 3682, - 3692, 3694, 3692, 3689, 3690, 3700, 3724, 3761, - 3811, 3867, 3924, 3972, 4005, 4019, 4013, 3993, - 3964, 3936, 3915, 3906, 3912, 3931, 3959, 3990, - 4020, 4043, 4059, 4067, 4068, 4063, 4051, 4030, - 3997, 3946, 3875, 3782, 3671, 3546, 3419, 3299, - 3197, 3120, 3072, 3053, 3062, 3091, 3133, 3180, - 3224, 3257, 3276, 3277, 3259, 3221, 3163, 3084, - 2986, 2870, 2741, 2607, 2474, 2351, 2245, 2161, - 2102, 2069, 2058, 2067, 2091, 2124, 2160, 2195, - 2222, 2239, 2245, 2238, 2219, 2191, 2155, 2116, - 2077, 2042, 2014, 1995, 1987, 1991, 2003, 2023, - 2048, 2074, 2101, 2124, 2144, 2158, 2166, 2170, - 2172, 2175, 2181, 2195, 2221, 2260, 2315, 2384, - 2465, 2555, 2648, 2740, 2826, 2903, 2971, 3029, - 3076, 3114, 3142, 3159, 3167, 3167, 3160, 3153, - 3150, 3157, 3180, 3222, 3283, 3362, 3452, 3546, - 3636, 3715, 3777, 3823, 3854, 3874, 3889, 3905, - 3923, 3944, 3968, 3989, 4007, 4019, 4026, 4030, - 4033, 4040, 4051, 4066, 4081, 4090, 4086, 4063, - 4019, 3956, 3878, 3794, 3716, 3651, 3606, 3586, - 3589, 3612, 3647, 3688, 3728, 3760, 3781, 3787, - 3780, 3757, 3718, 3661, 3584, 3485, 3366, 3230, - 3085, 2938, 2801, 2683, 2589, 2525, 2492, 2486, - 2503, 2537, 2580, 2624, 2663, 2691, 2703, 2698, - 2674, 2633, 2574, 2500, 2415, 2322, 2228, 2139, - 2059, 1994, 1945, 1914, 1900, 1901, 1913, 1933, - 1957, 1983, 2006, 2025, 2038, 2046, 2049, 2048 - }, - { - 2048, 2053, 2074, 2119, 2191, 2291, 2416, 2559, - 2710, 2860, 3000, 3124, 3225, 3301, 3350, 3371, - 3364, 3334, 3288, 3234, 3182, 3144, 3127, 3137, - 3173, 3231, 3304, 3378, 3441, 3483, 3495, 3475, - 3423, 3344, 3243, 3128, 3002, 2867, 2726, 2581, - 2433, 2286, 2142, 2001, 1865, 1731, 1597, 1460, - 1317, 1171, 1023, 881, 750, 637, 546, 476, - 423, 380, 341, 300, 254, 205, 154, 109, - 75, 56, 55, 72, 105, 153, 217, 296, - 395, 513, 651, 806, 972, 1139, 1299, 1444, - 1572, 1680, 1772, 1855, 1935, 2018, 2110, 2212, - 2323, 2442, 2563, 2680, 2786, 2877, 2944, 2982, - 2986, 2951, 2877, 2771, 2640, 2498, 2360, 2238, - 2145, 2087, 2069, 2088, 2140, 2215, 2303, 2392, - 2469, 2524, 2550, 2543, 2505, 2437, 2346, 2241, - 2132, 2031, 1949, 1893, 1870, 1878, 1915, 1974, - 2048, 2128, 2206, 2276, 2332, 2371, 2394, 2402, - 2403, 2404, 2417, 2449, 2510, 2603, 2728, 2882, - 3056, 3236, 3410, 3564, 3690, 3783, 3842, 3868, - 3864, 3833, 3777, 3700, 3604, 3495, 3378, 3261, - 3150, 3048, 2958, 2877, 2801, 2723, 2637, 2536, - 2420, 2289, 2146, 1997, 1847, 1698, 1552, 1410, - 1271, 1133, 999, 870, 748, 637, 536, 446, - 364, 288, 216, 150, 92, 49, 29, 37, - 76, 144, 235, 339, 444, 541, 623, 689, - 741, 784, 826, 874, 933, 1009, 1101, 1209, - 1330, 1461, 1598, 1739, 1877, 2007, 2123, 2219, - 2291, 2338, 2364, 2374, 2378, 2385, 2404, 2443, - 2503, 2585, 2684, 2794, 2904, 3004, 3084, 3136, - 3154, 3133, 3070, 2965, 2823, 2650, 2458, 2261, - 2075, 1914, 1787, 1701, 1656, 1649, 1675, 1726, - 1791, 1861, 1927, 1981, 2020, 2043, 2051, 2050 - }, - { - 2048, 2051, 2065, 2095, 2144, 2212, 2298, 2397, - 2504, 2612, 2716, 2811, 2894, 2961, 3011, 3042, - 3055, 3052, 3036, 3014, 2996, 2988, 3001, 3040, - 3108, 3204, 3324, 3459, 3598, 3728, 3841, 3930, - 3992, 4029, 4045, 4045, 4032, 4009, 3975, 3930, - 3874, 3809, 3738, 3665, 3596, 3534, 3481, 3436, - 3397, 3357, 3312, 3255, 3184, 3099, 3003, 2900, - 2795, 2693, 2595, 2503, 2413, 2325, 2235, 2143, - 2048, 1950, 1850, 1750, 1651, 1554, 1460, 1370, - 1287, 1215, 1159, 1122, 1105, 1107, 1124, 1147, - 1168, 1179, 1172, 1143, 1091, 1019, 931, 836, - 741, 655, 584, 535, 510, 514, 549, 618, - 721, 856, 1019, 1201, 1388, 1569, 1730, 1862, - 1956, 2012, 2029, 2013, 1971, 1911, 1844, 1779, - 1725, 1690, 1676, 1686, 1719, 1771, 1838, 1913, - 1989, 2059, 2115, 2152, 2167, 2161, 2136, 2097, - 2048, 1994, 1942, 1894, 1856, 1829, 1813, 1805, - 1803, 1800, 1788, 1762, 1715, 1643, 1544, 1420, - 1276, 1120, 962, 811, 675, 558, 463, 390, - 337, 304, 290, 294, 316, 353, 399, 447, - 489, 517, 526, 513, 479, 430, 375, 322, - 283, 264, 269, 297, 345, 405, 473, 542, - 612, 682, 754, 829, 910, 996, 1086, 1179, - 1273, 1366, 1459, 1553, 1649, 1747, 1848, 1949, - 2048, 2141, 2227, 2305, 2375, 2440, 2505, 2574, - 2649, 2733, 2825, 2923, 3023, 3122, 3215, 3300, - 3373, 3433, 3476, 3499, 3496, 3465, 3403, 3313, - 3200, 3073, 2945, 2829, 2735, 2672, 2644, 2652, - 2691, 2756, 2836, 2921, 3000, 3062, 3101, 3111, - 3090, 3036, 2950, 2835, 2695, 2539, 2375, 2214, - 2069, 1947, 1855, 1795, 1766, 1765, 1786, 1824, - 1871, 1920, 1965, 2003, 2029, 2044, 2050, 2049 - }, - { - 2048, 2061, 2117, 2228, 2396, 2610, 2844, 3065, - 3240, 3343, 3358, 3283, 3125, 2900, 2629, 2337, - 2048, 1783, 1558, 1379, 1241, 1136, 1049, 971, - 900, 843, 815, 838, 930, 1103, 1358, 1680, - 2048, 2435, 2816, 3170, 3479, 3729, 3908, 4008, - 4025, 3959, 3819, 3616, 3364, 3076, 2757, 2413, - 2048, 1667, 1285, 922, 601, 347, 175, 92, - 93, 168, 304, 490, 722, 998, 1315, 1668, - 2048, 2437, 2818, 3173, 3483, 3736, 3919, 4021, - 4035, 3956, 3788, 3544, 3247, 2924, 2605, 2309, - 2048, 1819, 1614, 1422, 1234, 1050, 878, 733, - 633, 597, 635, 751, 939, 1186, 1471, 1768, - 2048, 2280, 2443, 2523, 2523, 2457, 2354, 2241, - 2146, 2087, 2067, 2081, 2113, 2142, 2149, 2118, - 2048, 1944, 1824, 1711, 1629, 1601, 1637, 1740, - 1896, 2080, 2261, 2404, 2481, 2478, 2394, 2243, - 2048, 1835, 1634, 1468, 1354, 1299, 1300, 1342, - 1408, 1479, 1540, 1586, 1625, 1670, 1744, 1865, - 2048, 2292, 2585, 2903, 3215, 3491, 3707, 3846, - 3899, 3864, 3745, 3550, 3296, 2999, 2682, 2360, - 2048, 1749, 1462, 1186, 917, 661, 432, 250, - 137, 112, 184, 351, 600, 912, 1268, 1651, - 2048, 2444, 2828, 3184, 3496, 3749, 3932, 4040, - 4072, 4031, 3919, 3739, 3493, 3185, 2828, 2441, - 2048, 1675, 1346, 1074, 862, 705, 592, 516, - 476, 475, 524, 632, 806, 1046, 1343, 1684, - 2048, 2412, 2755, 3051, 3279, 3421, 3468, 3421, - 3295, 3116, 2914, 2717, 2543, 2398, 2277, 2166, - 2048, 1909, 1744, 1557, 1361, 1178, 1031, 940, - 919, 975, 1102, 1284, 1497, 1708, 1886, 2004, - 2048, 2018, 1931, 1812, 1689, 1590, 1536, 1534, - 1585, 1676, 1786, 1894, 1981, 2035, 2056, 2053 - }, - { - 2048, 2072, 2162, 2326, 2531, 2717, 2808, 2744, - 2504, 2112, 1636, 1162, 781, 560, 536, 708, - 1040, 1468, 1922, 2340, 2681, 2929, 3082, 3144, - 3108, 2958, 2676, 2261, 1739, 1174, 654, 273, - 103, 179, 496, 1009, 1653, 2344, 2997, 3529, - 3874, 3994, 3882, 3563, 3082, 2497, 1866, 1246, - 698, 284, 64, 82, 347, 829, 1459, 2145, - 2795, 3334, 3712, 3900, 3885, 3668, 3262, 2702, - 2048, 1375, 770, 310, 56, 39, 261, 696, - 1287, 1952, 2594, 3120, 3458, 3578, 3497, 3260, - 2927, 2549, 2159, 1774, 1409, 1084, 836, 709, - 741, 951, 1327, 1819, 2353, 2844, 3211, 3395, - 3374, 3170, 2846, 2488, 2179, 1975, 1891, 1901, - 1956, 2008, 2027, 2015, 1996, 2006, 2073, 2203, - 2370, 2529, 2630, 2636, 2539, 2368, 2176, 2032, - 1989, 2070, 2251, 2471, 2649, 2712, 2622, 2385, - 2048, 1681, 1362, 1153, 1086, 1157, 1334, 1565, - 1803, 2019, 2207, 2378, 2545, 2706, 2837, 2892, - 2819, 2583, 2185, 1674, 1130, 653, 328, 216, - 337, 675, 1182, 1782, 2392, 2928, 3328, 3557, - 3606, 3490, 3229, 2845, 2359, 1803, 1223, 690, - 283, 77, 118, 409, 910, 1551, 2247, 2916, - 3483, 3886, 4077, 4031, 3750, 3266, 2640, 1948, - 1273, 689, 261, 35, 43, 291, 753, 1368, - 2048, 2691, 3210, 3550, 3691, 3645, 3437, 3096, - 2649, 2126, 1569, 1033, 587, 298, 216, 362, - 722, 1248, 1866, 2486, 3015, 3375, 3519, 3446, - 3200, 2855, 2490, 2166, 1911, 1723, 1584, 1478, - 1404, 1379, 1435, 1593, 1858, 2201, 2566, 2885, - 3090, 3140, 3027, 2785, 2480, 2196, 2006, 1951, - 2026, 2183, 2350, 2459, 2469, 2375, 2208, 2022, - 1871, 1793, 1798, 1865, 1955, 2028, 2061, 2057 - }, - { - 2048, 1736, 1511, 1423, 1476, 1630, 1822, 1987, - 2083, 2101, 2063, 2006, 1968, 1967, 2000, 2045, - 2073, 2061, 2011, 1944, 1899, 1908, 1981, 2099, - 2218, 2291, 2292, 2226, 2129, 2054, 2044, 2111, - 2237, 2375, 2471, 2480, 2385, 2198, 1962, 1735, - 1574, 1515, 1563, 1694, 1861, 2022, 2148, 2232, - 2282, 2305, 2299, 2254, 2154, 1996, 1798, 1599, - 1449, 1393, 1464, 1664, 1967, 2319, 2651, 2890, - 2979, 2896, 2660, 2325, 1964, 1648, 1430, 1334, - 1360, 1494, 1707, 1967, 2238, 2480, 2658, 2740, - 2709, 2561, 2310, 1987, 1639, 1327, 1114, 1056, - 1181, 1476, 1889, 2335, 2720, 2967, 3034, 2923, - 2673, 2345, 2010, 1727, 1537, 1455, 1475, 1580, - 1747, 1955, 2184, 2411, 2607, 2733, 2751, 2632, - 2378, 2025, 1643, 1320, 1132, 1123, 1287, 1573, - 1902, 2192, 2386, 2461, 2433, 2339, 2225, 2123, - 2048, 1993, 1946, 1898, 1854, 1834, 1865, 1966, - 2133, 2334, 2512, 2611, 2593, 2463, 2263, 2058, - 1913, 1862, 1902, 1996, 2088, 2130, 2099, 2001, - 1871, 1755, 1694, 1710, 1795, 1918, 2036, 2111, - 2130, 2104, 2062, 2034, 2032, 2044, 2044, 2008, - 1930, 1832, 1756, 1745, 1830, 2008, 2250, 2502, - 2700, 2790, 2741, 2556, 2273, 1955, 1672, 1483, - 1414, 1463, 1600, 1789, 1998, 2202, 2383, 2519, - 2590, 2574, 2460, 2253, 1979, 1682, 1414, 1233, - 1183, 1291, 1551, 1925, 2344, 2723, 2981, 3065, - 2964, 2707, 2356, 1983, 1656, 1424, 1315, 1335, - 1468, 1686, 1950, 2223, 2467, 2652, 2748, 2736, - 2601, 2347, 2004, 1624, 1283, 1058, 1009, 1154, - 1466, 1873, 2285, 2614, 2801, 2826, 2710, 2501, - 2259, 2036, 1862, 1751, 1697, 1692, 1733, 1822, - 1963, 2154, 2374, 2582, 2721, 2742, 2619, 2369 - }, - { - 2048, 2099, 2228, 2259, 1999, 1514, 1195, 1450, - 2280, 3163, 3424, 2780, 1605, 678, 618, 1447, - 2593, 3312, 3203, 2425, 1510, 990, 1120, 1807, - 2685, 3258, 3119, 2226, 1045, 353, 712, 2001, - 3423, 4031, 3396, 1899, 483, 41, 848, 2389, - 3692, 3949, 3033, 1544, 405, 291, 1255, 2722, - 3811, 3831, 2719, 1136, 90, 268, 1555, 3114, - 3964, 3614, 2324, 895, 183, 617, 1954, 3388, - 4020, 3424, 1949, 514, 27, 798, 2345, 3693, - 3997, 3089, 1590, 481, 425, 1338, 2538, 3274, - 3197, 2470, 1563, 978, 1033, 1728, 2698, 3356, - 3224, 2300, 1137, 500, 836, 1934, 3058, 3478, - 2986, 2018, 1282, 1194, 1621, 2108, 2314, 2242, - 2102, 2039, 2030, 2009, 2004, 2101, 2286, 2386, - 2222, 1832, 1496, 1506, 1876, 2312, 2478, 2313, - 2077, 2067, 2276, 2385, 2108, 1542, 1143, 1321, - 2048, 2836, 3127, 2729, 1951, 1338, 1247, 1633, - 2172, 2537, 2581, 2321, 1874, 1441, 1300, 1669, - 2465, 3215, 3317, 2530, 1269, 374, 507, 1646, - 3076, 3872, 3523, 2269, 928, 339, 820, 2008, - 3150, 3579, 3074, 1933, 812, 393, 1006, 2361, - 3636, 3973, 3084, 1503, 242, 106, 1176, 2779, - 3923, 3906, 2735, 1128, 88, 267, 1552, 3134, - 4033, 3701, 2345, 796, 14, 497, 1947, 3438, - 4019, 3364, 1958, 721, 380, 1054, 2279, 3324, - 3589, 2905, 1647, 566, 367, 1237, 2668, 3752, - 3780, 2721, 1257, 332, 511, 1607, 2838, 3413, - 3085, 2234, 1489, 1248, 1506, 2001, 2450, 2652, - 2503, 2030, 1460, 1167, 1432, 2176, 2932, 3161, - 2674, 1808, 1170, 1163, 1680, 2239, 2430, 2258, - 2059, 2108, 2334, 2426, 2195, 1777, 1510, 1606, - 1957, 2266, 2327, 2193, 2057, 2033, 2068, 2069 - }, - { - 2048, 2119, 2229, 2372, 2541, 2724, 2909, 3085, - 3240, 3368, 3466, 3533, 3571, 3581, 3566, 3529, - 3473, 3403, 3326, 3251, 3188, 3144, 3128, 3145, - 3195, 3276, 3382, 3503, 3628, 3747, 3850, 3932, - 3992, 4032, 4055, 4067, 4071, 4069, 4061, 4047, - 4025, 3996, 3965, 3934, 3910, 3898, 3902, 3922, - 3956, 3998, 4040, 4074, 4093, 4093, 4074, 4041, - 4002, 3964, 3935, 3920, 3921, 3936, 3961, 3991, - 4020, 4044, 4062, 4073, 4078, 4078, 4073, 4060, - 4035, 3994, 3932, 3848, 3744, 3626, 3504, 3389, - 3291, 3220, 3180, 3174, 3198, 3247, 3313, 3388, - 3462, 3527, 3577, 3607, 3615, 3598, 3553, 3479, - 3374, 3240, 3081, 2904, 2720, 2541, 2379, 2245, - 2146, 2087, 2069, 2088, 2140, 2218, 2311, 2410, - 2503, 2580, 2633, 2654, 2639, 2585, 2492, 2361, - 2199, 2014, 1817, 1619, 1435, 1273, 1142, 1045, - 984, 959, 967, 1005, 1067, 1148, 1238, 1328, - 1408, 1468, 1498, 1493, 1450, 1369, 1254, 1113, - 956, 796, 643, 508, 397, 311, 251, 214, - 196, 195, 211, 240, 283, 334, 391, 445, - 489, 515, 519, 496, 449, 380, 299, 215, - 137, 74, 31, 7, 0, 3, 10, 16, - 18, 14, 8, 2, 0, 2, 8, 16, - 23, 25, 22, 13, 4, 0, 7, 31, - 76, 139, 215, 296, 371, 432, 472, 486, - 476, 445, 398, 345, 291, 244, 207, 183, - 172, 177, 199, 241, 305, 395, 510, 648, - 800, 958, 1109, 1242, 1347, 1416, 1448, 1443, - 1404, 1338, 1255, 1164, 1077, 1002, 947, 918, - 919, 954, 1024, 1129, 1268, 1436, 1624, 1822, - 2017, 2197, 2351, 2472, 2554, 2597, 2602, 2571, - 2510, 2427, 2331, 2232, 2141, 2070, 2027, 2018 - }, - { - 2048, 2055, 2083, 2142, 2236, 2366, 2526, 2705, - 2891, 3068, 3227, 3358, 3455, 3515, 3537, 3522, - 3473, 3396, 3302, 3199, 3101, 3015, 2946, 2896, - 2859, 2827, 2789, 2734, 2652, 2541, 2399, 2232, - 2048, 1853, 1656, 1461, 1273, 1094, 929, 779, - 649, 541, 454, 384, 327, 277, 229, 182, - 139, 106, 93, 108, 158, 244, 363, 506, - 666, 832, 999, 1165, 1330, 1499, 1674, 1857, - 2048, 2243, 2440, 2635, 2825, 3005, 3173, 3324, - 3453, 3552, 3614, 3635, 3614, 3558, 3476, 3382, - 3291, 3215, 3159, 3125, 3110, 3105, 3100, 3084, - 3048, 2986, 2897, 2783, 2647, 2497, 2341, 2188, - 2048, 1931, 1846, 1799, 1790, 1815, 1863, 1922, - 1978, 2017, 2030, 2012, 1962, 1885, 1789, 1687, - 1592, 1517, 1473, 1467, 1501, 1574, 1678, 1805, - 1940, 2069, 2176, 2249, 2282, 2272, 2224, 2146, - 2048, 1941, 1837, 1745, 1672, 1623, 1598, 1591, - 1596, 1599, 1590, 1558, 1495, 1398, 1269, 1117, - 956, 802, 670, 575, 523, 516, 554, 630, - 738, 873, 1027, 1196, 1372, 1550, 1724, 1890, - 2048, 2198, 2346, 2498, 2659, 2833, 3019, 3210, - 3398, 3573, 3724, 3847, 3939, 4004, 4046, 4069, - 4078, 4071, 4048, 4005, 3939, 3852, 3743, 3618, - 3479, 3331, 3173, 3006, 2830, 2642, 2446, 2245, - 2048, 1860, 1690, 1539, 1406, 1286, 1172, 1057, - 936, 808, 676, 546, 425, 322, 242, 192, - 172, 186, 235, 319, 438, 590, 769, 965, - 1166, 1356, 1526, 1668, 1779, 1864, 1931, 1988, - 2048, 2117, 2202, 2304, 2419, 2541, 2659, 2764, - 2845, 2893, 2899, 2857, 2767, 2633, 2463, 2272, - 2078, 1899, 1750, 1642, 1579, 1563, 1587, 1643, - 1721, 1807, 1890, 1961, 2012, 2041, 2052, 2050 - }, - { - 2048, 2060, 2109, 2207, 2360, 2560, 2787, 3015, - 3217, 3368, 3451, 3458, 3391, 3257, 3067, 2840, - 2593, 2344, 2110, 1900, 1717, 1554, 1404, 1253, - 1093, 924, 753, 596, 475, 410, 418, 507, - 673, 905, 1189, 1509, 1849, 2196, 2537, 2858, - 3146, 3391, 3587, 3732, 3830, 3884, 3899, 3876, - 3811, 3695, 3524, 3294, 3012, 2689, 2345, 1999, - 1666, 1358, 1077, 824, 599, 404, 246, 133, - 75, 80, 151, 285, 478, 721, 1006, 1323, - 1660, 2000, 2324, 2612, 2847, 3019, 3127, 3181, - 3197, 3192, 3179, 3165, 3148, 3119, 3064, 2972, - 2833, 2647, 2419, 2162, 1894, 1634, 1404, 1223, - 1109, 1072, 1113, 1222, 1379, 1556, 1726, 1867, - 1965, 2019, 2035, 2029, 2021, 2027, 2060, 2127, - 2222, 2333, 2441, 2526, 2569, 2558, 2487, 2361, - 2197, 2016, 1849, 1723, 1659, 1666, 1742, 1876, - 2048, 2234, 2412, 2562, 2670, 2729, 2742, 2718, - 2674, 2627, 2591, 2574, 2575, 2583, 2581, 2548, - 2465, 2322, 2116, 1859, 1568, 1267, 977, 719, - 508, 354, 266, 245, 291, 396, 550, 737, - 945, 1165, 1394, 1634, 1891, 2170, 2472, 2790, - 3109, 3408, 3667, 3870, 4007, 4077, 4082, 4030, - 3923, 3765, 3559, 3306, 3013, 2689, 2347, 1998, - 1653, 1320, 1006, 719, 468, 266, 126, 61, - 76, 167, 322, 524, 752, 993, 1237, 1486, - 1741, 2008, 2289, 2582, 2875, 3157, 3411, 3623, - 3780, 3872, 3893, 3841, 3715, 3523, 3282, 3013, - 2740, 2489, 2276, 2107, 1979, 1879, 1791, 1699, - 1592, 1467, 1331, 1196, 1082, 1005, 980, 1015, - 1109, 1256, 1438, 1635, 1821, 1973, 2068, 2097, - 2059, 1967, 1844, 1713, 1601, 1526, 1499, 1525, - 1594, 1694, 1805, 1908, 1988, 2036, 2055, 2053 - }, - { - 2048, 2072, 2095, 2075, 2062, 2149, 2347, 2534, - 2584, 2527, 2537, 2732, 3017, 3166, 3074, 2884, - 2844, 3021, 3223, 3212, 2982, 2782, 2838, 3104, - 3321, 3317, 3206, 3252, 3548, 3896, 4028, 3910, - 3782, 3875, 4095, 4095, 4095, 3855, 3719, 3863, - 4080, 4065, 3759, 3424, 3355, 3556, 3739, 3649, - 3342, 3105, 3136, 3332, 3412, 3231, 2919, 2715, - 2707, 2768, 2724, 2551, 2362, 2259, 2219, 2157, - 2048, 1944, 1881, 1811, 1665, 1473, 1350, 1361, - 1417, 1359, 1150, 949, 947, 1145, 1329, 1300, - 1095, 955, 1044, 1254, 1316, 1103, 782, 627, - 713, 835, 759, 498, 306, 386, 653, 834, - 792, 690, 804, 1192, 1608, 1771, 1678, 1603, - 1778, 2118, 2309, 2159, 1822, 1629, 1734, 1954, - 1990, 1762, 1493, 1456, 1681, 1943, 2022, 1925, - 1847, 1930, 2119, 2249, 2238, 2153, 2095, 2080, - 2048, 1973, 1912, 1915, 1938, 1892, 1763, 1668, - 1723, 1885, 1968, 1842, 1593, 1438, 1481, 1578, - 1487, 1150, 775, 614, 689, 765, 627, 325, - 123, 191, 407, 501, 366, 185, 212, 466, - 698, 671, 436, 273, 366, 584, 630, 389, - 77, 8, 248, 539, 586, 384, 215, 329, - 667, 935, 929, 753, 682, 863, 1169, 1364, - 1361, 1292, 1331, 1505, 1700, 1812, 1863, 1934, - 2048, 2147, 2196, 2244, 2360, 2521, 2615, 2582, - 2519, 2589, 2834, 3096, 3182, 3084, 3009, 3147, - 3446, 3657, 3604, 3387, 3271, 3380, 3552, 3521, - 3228, 2893, 2770, 2865, 2939, 2800, 2540, 2436, - 2621, 2923, 3052, 2930, 2780, 2860, 3153, 3370, - 3268, 2930, 2671, 2689, 2844, 2820, 2484, 2039, - 1804, 1875, 2038, 2026, 1804, 1593, 1602, 1812, - 2013, 2049, 1961, 1906, 1958, 2053, 2091, 2066 - }, - { - 2048, 2070, 2146, 2287, 2483, 2702, 2900, 3027, - 3040, 2918, 2664, 2307, 1895, 1485, 1132, 876, - 736, 714, 794, 950, 1160, 1403, 1672, 1964, - 2279, 2614, 2955, 3279, 3551, 3731, 3784, 3687, - 3434, 3043, 2547, 1997, 1446, 948, 545, 265, - 123, 122, 252, 500, 850, 1280, 1768, 2284, - 2795, 3265, 3654, 3930, 4065, 4046, 3875, 3567, - 3152, 2664, 2143, 1626, 1146, 731, 405, 187, - 94, 136, 319, 637, 1073, 1592, 2150, 2693, - 3169, 3530, 3746, 3807, 3720, 3514, 3223, 2886, - 2537, 2196, 1875, 1578, 1306, 1063, 862, 723, - 671, 729, 908, 1201, 1584, 2009, 2421, 2763, - 2992, 3084, 3043, 2896, 2687, 2466, 2275, 2142, - 2070, 2044, 2037, 2021, 1974, 1892, 1789, 1690, - 1628, 1627, 1697, 1828, 1989, 2140, 2238, 2252, - 2173, 2016, 1819, 1633, 1508, 1484, 1577, 1776, - 2048, 2343, 2610, 2807, 2911, 2919, 2849, 2726, - 2581, 2434, 2291, 2147, 1986, 1794, 1565, 1306, - 1043, 816, 670, 645, 766, 1034, 1430, 1909, - 2417, 2895, 3293, 3576, 3726, 3744, 3643, 3442, - 3162, 2819, 2430, 2008, 1570, 1139, 742, 413, - 189, 97, 158, 374, 732, 1201, 1741, 2303, - 2842, 3316, 3692, 3947, 4067, 4047, 3887, 3596, - 3191, 2697, 2150, 1590, 1066, 621, 297, 117, - 94, 220, 475, 826, 1240, 1683, 2127, 2551, - 2937, 3270, 3535, 3711, 3780, 3723, 3531, 3209, - 2779, 2282, 1770, 1302, 930, 693, 608, 664, - 834, 1076, 1345, 1606, 1836, 2031, 2199, 2355, - 2509, 2665, 2811, 2922, 2971, 2931, 2792, 2562, - 2271, 1966, 1698, 1514, 1444, 1491, 1632, 1826, - 2020, 2164, 2228, 2200, 2097, 1953, 1809, 1705, - 1663, 1689, 1767, 1869, 1964, 2029, 2055, 2053 - }, - { - 2048, 2561, 2882, 1925, 1133, 2097, 3797, 4088, - 2776, 1767, 2291, 3280, 3257, 2487, 2059, 2126, - 2101, 1630, 1064, 1182, 1941, 2104, 1196, 546, - 1140, 2073, 2181, 1769, 1821, 2365, 2600, 2511, - 2925, 3644, 3507, 2704, 2607, 3268, 3505, 3065, - 2629, 2418, 2195, 2003, 2003, 1859, 1066, 110, - 157, 1030, 1220, 450, 80, 694, 1448, 1721, - 1786, 2100, 2633, 2799, 2270, 1758, 2203, 3394, - 4094, 3495, 2357, 2200, 3036, 3279, 2512, 2047, - 2132, 1482, 103, 0, 966, 2027, 1434, 250, - 475, 1883, 2525, 1973, 1589, 1913, 2175, 1995, - 1842, 2221, 3014, 3437, 3043, 2581, 2900, 3549, - 3502, 2694, 2013, 1982, 2001, 1505, 1262, 2009, - 2685, 2173, 1503, 2031, 3013, 2982, 2080, 1531, - 1740, 2035, 2040, 2150, 2357, 2095, 1711, 2170, - 3093, 3197, 2417, 1724, 1547, 1653, 1797, 1905, - 2048, 2242, 2334, 2300, 2332, 2628, 3225, 3649, - 3156, 2071, 1676, 2141, 2380, 2129, 2035, 2014, - 1542, 1048, 1384, 2197, 2109, 877, 120, 825, - 1656, 1357, 856, 1254, 1923, 2056, 2093, 2657, - 3405, 3542, 2994, 2621, 2942, 3334, 3120, 2552, - 2206, 2220, 2250, 1874, 1385, 1543, 1973, 1423, - 198, 29, 1125, 1695, 806, 0, 263, 1560, - 2130, 2050, 2522, 3231, 2971, 2280, 2656, 3851, - 4095, 3374, 2153, 1810, 2357, 2798, 2562, 2088, - 1879, 1846, 1581, 940, 509, 921, 1484, 1011, - 31, 79, 1132, 1898, 1978, 1988, 2205, 2327, - 2334, 2625, 3035, 2727, 1825, 1636, 2371, 2727, - 2323, 2121, 2341, 2265, 1886, 1866, 2171, 1986, - 1120, 626, 1239, 2015, 1854, 1326, 1485, 2132, - 2467, 2287, 2008, 2142, 2522, 2233, 1167, 733, - 1793, 3076, 2860, 1469, 909, 1947, 2928, 2560 - }, - { - 2048, 2504, 2795, 1937, 1211, 2093, 3713, 4049, - 2790, 1746, 2327, 3617, 3862, 2964, 2133, 1958, - 2048, 1906, 1540, 1495, 1969, 2095, 1253, 469, - 957, 2084, 2288, 1309, 413, 609, 1420, 1878, - 2048, 2416, 2641, 2415, 2445, 3116, 3618, 3425, - 3094, 3057, 2976, 2556, 2157, 2260, 2607, 2510, - 2048, 1846, 1730, 1126, 470, 562, 1118, 1256, - 707, 0, 0, 657, 1800, 2252, 1982, 1778, - 2048, 2337, 2178, 2155, 3149, 4095, 3814, 2019, - 1613, 3417, 4095, 4095, 2914, 2060, 2283, 2403, - 2048, 2008, 2319, 1963, 931, 522, 1245, 2190, - 2418, 1813, 1007, 831, 1340, 1749, 1701, 1701, - 2048, 2283, 2008, 1749, 2382, 3485, 3459, 2102, - 1281, 1916, 2557, 2061, 1334, 1451, 2031, 2222, - 2048, 2033, 2105, 1834, 1584, 1987, 2435, 1916, - 981, 920, 1695, 2348, 2505, 2404, 2271, 2175, - 2048, 1874, 1791, 1820, 1787, 1507, 926, 477, - 918, 2022, 2475, 1928, 1548, 1878, 2145, 2009, - 2048, 2386, 2390, 1952, 2002, 3023, 3848, 3333, - 2518, 3030, 4095, 4095, 2947, 2084, 2100, 2270, - 2048, 1702, 1663, 1726, 1412, 921, 893, 1364, - 1762, 1577, 771, 85, 433, 1479, 2005, 1899, - 2048, 2447, 2401, 2251, 3043, 4095, 4095, 3226, - 1627, 2142, 3851, 4095, 3076, 2212, 2305, 2408, - 2048, 1782, 2003, 2215, 1703, 660, 90, 449, - 1182, 1559, 1324, 832, 814, 1398, 1831, 1842, - 2048, 2517, 2569, 2216, 2218, 2717, 3036, 2810, - 2563, 2830, 3111, 2643, 1890, 1817, 2179, 2205, - 2048, 2021, 1715, 1061, 879, 1567, 2270, 1959, - 932, 554, 1292, 2021, 1905, 1587, 1757, 2076, - 2048, 1774, 1737, 2244, 2760, 2283, 1035, 637, - 1788, 3057, 2821, 1509, 1006, 1957, 2836, 2504 - }, - { - 2048, 2448, 2705, 1949, 1297, 2089, 3594, 3952, - 2776, 1740, 2347, 3840, 4095, 3348, 2198, 1801, - 1994, 2206, 2113, 1926, 2015, 2073, 1535, 882, - 1140, 2082, 2300, 1162, 0, 0, 565, 1339, - 1170, 960, 1385, 1871, 1992, 2142, 2460, 2617, - 2629, 2757, 2854, 2594, 2196, 2427, 3507, 4095, - 3938, 2920, 2662, 3067, 3099, 2608, 2195, 2028, - 1786, 1282, 808, 955, 1777, 2367, 1886, 688, - 1, 586, 1725, 1880, 843, 258, 1065, 2058, - 2132, 2013, 2527, 3003, 2625, 2061, 2503, 3589, - 3621, 2244, 1338, 2198, 3558, 3686, 2746, 1947, - 1842, 2145, 2321, 2155, 1950, 1904, 1660, 1024, - 593, 1060, 2140, 2565, 1577, 323, 565, 1997, - 2685, 2145, 1719, 2040, 2341, 2179, 2045, 2244, - 2355, 2087, 1946, 2350, 2626, 2116, 1633, 2182, - 3093, 3120, 2374, 1774, 1637, 1732, 1850, 1936, - 2048, 2199, 2274, 2250, 2281, 2539, 3089, 3542, - 3156, 2073, 1590, 2184, 2670, 2289, 1876, 2152, - 2553, 2428, 2091, 2069, 2066, 1520, 887, 1098, - 1656, 1132, 0, 0, 782, 1984, 1924, 1117, - 690, 1029, 1618, 1893, 1959, 2147, 2351, 2330, - 2206, 2379, 3157, 4095, 4095, 3062, 2159, 2793, - 3897, 3778, 2732, 2273, 2711, 2971, 2487, 2018, - 2130, 2013, 1044, 328, 923, 1791, 1414, 226, - 0, 708, 1938, 2310, 1670, 958, 958, 1461, - 1879, 2035, 2162, 2506, 2870, 2767, 2466, 2936, - 4064, 4095, 3409, 2348, 2278, 2767, 2907, 2584, - 2334, 2371, 2327, 2100, 2069, 2158, 1901, 1584, - 1772, 1935, 1261, 335, 403, 1472, 2281, 1965, - 1120, 944, 1561, 2033, 1989, 1946, 2085, 2015, - 1628, 1297, 1503, 2326, 2936, 2317, 964, 610, - 1793, 3007, 2766, 1557, 1113, 1967, 2741, 2447 - }, - { - 2048, 2391, 2614, 1962, 1390, 2084, 3441, 3798, - 2733, 1749, 2349, 3933, 4095, 3601, 2245, 1678, - 1949, 2480, 2673, 2383, 2069, 2045, 1963, 1657, - 1630, 2067, 2213, 1389, 126, 0, 478, 1190, - 807, 179, 564, 1450, 1580, 1095, 969, 1325, - 1647, 1798, 1949, 2078, 2078, 2176, 2736, 3459, - 3495, 2877, 2778, 3608, 4095, 3832, 3049, 2830, - 3286, 3873, 3912, 3170, 2242, 1891, 2097, 2250, - 2048, 1830, 1948, 1965, 1182, 208, 570, 2072, - 2449, 693, 0, 0, 845, 2027, 1506, 582, - 844, 1928, 2383, 1996, 1740, 1958, 2133, 2012, - 1906, 2171, 2762, 3132, 2879, 2533, 2914, 3805, - 4095, 3243, 1950, 1562, 2441, 3329, 3017, 2076, - 1754, 2015, 2102, 2047, 2244, 2409, 2068, 1514, - 1479, 1988, 2180, 1686, 1404, 1975, 2465, 1917, - 1062, 1061, 1753, 2291, 2407, 2322, 2217, 2143, - 2048, 1917, 1853, 1872, 1843, 1611, 1109, 674, - 1004, 2023, 2508, 1904, 1355, 1759, 2273, 1890, - 1114, 1014, 1626, 2105, 2060, 1990, 2239, 2366, - 2228, 2562, 3518, 3922, 3105, 2107, 2178, 3174, - 3968, 3797, 3010, 2570, 2795, 3051, 2841, 2406, - 2157, 2164, 2183, 1932, 1602, 1703, 1995, 1593, - 632, 402, 1233, 1703, 667, 0, 0, 882, - 2436, 1965, 539, 279, 1239, 1921, 1852, 1776, - 2048, 2247, 2081, 1919, 2319, 3168, 3686, 3445, - 2847, 2530, 2827, 3508, 3758, 3148, 2545, 2893, - 3591, 3482, 2690, 2150, 2095, 2087, 1943, 1859, - 1850, 1637, 1317, 1517, 2233, 2422, 1719, 1252, - 1659, 1911, 1215, 442, 674, 1620, 2200, 2001, - 1621, 1677, 1967, 2049, 2087, 2327, 2405, 1960, - 1272, 921, 1332, 2380, 3036, 2331, 957, 652, - 1807, 2930, 2695, 1612, 1229, 1978, 2645, 2391 - }, - { - 2048, 2334, 2522, 1976, 1490, 2079, 3258, 3593, - 2665, 1773, 2333, 3889, 4095, 3697, 2269, 1604, - 1919, 2679, 3113, 2768, 2118, 2017, 2415, 2552, - 2260, 2045, 2060, 1896, 1377, 998, 1204, 1514, - 1170, 558, 718, 1443, 1509, 781, 350, 647, - 1021, 1071, 1139, 1531, 1928, 1784, 1177, 880, - 1264, 1772, 1926, 2007, 2266, 2439, 2386, 2410, - 2792, 3438, 3834, 3414, 2357, 1705, 2214, 3417, - 4094, 3520, 2379, 2228, 3421, 4095, 3464, 2029, - 1806, 2675, 3147, 2715, 2168, 2047, 1957, 1561, - 1396, 1948, 2471, 1943, 827, 498, 1262, 2186, - 2411, 1809, 922, 606, 1091, 1557, 1271, 647, - 593, 1304, 2100, 2265, 1910, 1752, 1973, 2052, - 1898, 2005, 2283, 2056, 1407, 1270, 2012, 2828, - 2791, 2119, 1898, 2432, 2701, 2118, 1653, 2168, - 2934, 2918, 2303, 1839, 1742, 1817, 1905, 1968, - 2048, 2156, 2211, 2195, 2221, 2422, 2863, 3260, - 2987, 2070, 1612, 2188, 2750, 2353, 1795, 2236, - 3268, 3558, 2766, 1923, 2007, 2675, 2881, 2459, - 2139, 2121, 1934, 1615, 1678, 2021, 1977, 1347, - 690, 653, 1185, 1519, 1188, 713, 799, 1352, - 1768, 1592, 799, 53, 282, 1342, 1981, 1671, - 1281, 1501, 1912, 2039, 2186, 2693, 3057, 2588, - 1814, 2110, 3494, 4095, 3331, 2323, 2700, 3882, - 4095, 3396, 2161, 1766, 2478, 3411, 3618, 3112, - 2529, 2271, 2311, 2368, 2218, 2019, 1965, 1767, - 1212, 861, 1236, 1839, 1861, 1367, 1080, 1309, - 1542, 1252, 897, 1342, 2261, 2426, 1753, 1413, - 1772, 1963, 1600, 1328, 1568, 1949, 2059, 2054, - 2265, 2525, 2397, 2065, 2176, 2648, 2657, 1920, - 1034, 696, 1245, 2400, 3050, 2324, 1016, 763, - 1831, 2827, 2610, 1674, 1353, 1989, 2548, 2334 - }, - { - 2048, 2277, 2428, 1990, 1595, 2073, 3049, 3342, - 2572, 1810, 2299, 3712, 4095, 3626, 2267, 1589, - 1909, 2769, 3349, 2999, 2150, 1997, 2763, 3291, - 2819, 2024, 1903, 2466, 2932, 2799, 2368, 2132, - 2048, 1862, 1745, 1856, 1832, 1442, 1103, 1156, - 1308, 1252, 1212, 1508, 1905, 1682, 615, 0, - 1, 1020, 1235, 461, 0, 472, 1211, 1424, - 1100, 697, 708, 1259, 1913, 2154, 2014, 1912, - 2048, 2193, 2114, 2104, 2644, 3339, 3110, 2029, - 1740, 3127, 4095, 4095, 3180, 2068, 2650, 3863, - 3750, 2248, 1351, 2193, 3506, 3666, 2770, 1935, - 1786, 2199, 2674, 2737, 2430, 2203, 2224, 2222, - 2048, 1929, 2068, 2203, 1867, 1232, 1199, 2013, - 2590, 2151, 1589, 2033, 2980, 3075, 2091, 1155, - 1243, 1973, 2195, 1680, 1441, 1984, 2396, 1944, - 1293, 1318, 1836, 2218, 2295, 2234, 2162, 2111, - 2048, 1960, 1917, 1928, 1907, 1741, 1373, 1032, - 1249, 2028, 2432, 1921, 1395, 1755, 2298, 1853, - 727, 320, 1170, 2212, 2107, 1013, 427, 1035, - 1715, 1412, 760, 855, 1561, 2029, 2021, 1936, - 2048, 2221, 2244, 2215, 2391, 2686, 2742, 2490, - 2249, 2419, 3196, 4095, 4095, 3026, 2157, 2808, - 4050, 4086, 2953, 2398, 3348, 4095, 4095, 2977, - 1750, 2109, 3132, 3289, 2604, 2133, 2179, 2229, - 2048, 1914, 2025, 2135, 1861, 1261, 870, 1014, - 1435, 1663, 1397, 758, 436, 929, 1494, 1001, - 0, 0, 711, 1758, 1825, 1337, 1158, 1447, - 1683, 1541, 1408, 1710, 2133, 2168, 1981, 1969, - 2048, 2061, 2217, 2563, 2680, 2320, 1914, 2105, - 2836, 3225, 2727, 2076, 2234, 2841, 2792, 1901, - 951, 652, 1252, 2385, 2978, 2298, 1136, 936, - 1864, 2700, 2513, 1742, 1484, 2000, 2449, 2277 - }, - { - 2048, 2220, 2334, 2004, 1704, 2067, 2818, 3053, - 2460, 1858, 2251, 3414, 4031, 3396, 2240, 1636, - 1919, 2736, 3335, 3028, 2158, 1991, 2907, 3645, - 3117, 2011, 1802, 2860, 4086, 4095, 3365, 2704, - 2925, 3282, 2971, 2401, 2313, 2568, 2620, 2422, - 2252, 2173, 2097, 2033, 2032, 1982, 1693, 1304, - 1264, 1583, 1622, 1093, 632, 815, 1302, 1412, - 933, 196, 0, 488, 1712, 2406, 1877, 671, - 1, 568, 1709, 1859, 557, 0, 319, 2073, - 2409, 947, 0, 0, 1270, 2035, 1732, 1227, - 1396, 1984, 2220, 2022, 1893, 2003, 2090, 2030, - 1975, 2111, 2427, 2640, 2519, 2335, 2587, 3208, - 3502, 2962, 1965, 1594, 2464, 3628, 3486, 2101, - 1295, 1914, 2598, 2064, 1043, 989, 2005, 2899, - 2791, 2114, 1918, 2362, 2555, 2100, 1766, 2130, - 2640, 2614, 2210, 1917, 1860, 1907, 1962, 2000, - 2048, 2113, 2146, 2137, 2154, 2281, 2567, 2837, - 2675, 2063, 1737, 2152, 2593, 2298, 1828, 2222, - 3268, 3696, 2916, 1879, 1984, 3221, 3994, 3348, - 2509, 3013, 4095, 4095, 3169, 2103, 2157, 2910, - 3405, 3203, 2647, 2357, 2471, 2597, 2469, 2233, - 2103, 2106, 2115, 1990, 1824, 1873, 2020, 1808, - 1281, 1126, 1573, 1837, 1154, 17, 0, 1100, - 2397, 1964, 283, 0, 655, 1759, 1382, 204, - 0, 692, 1932, 2342, 1581, 491, 132, 630, - 1328, 1655, 1467, 1039, 941, 1374, 1757, 1575, - 1212, 1292, 1716, 1996, 2024, 2028, 2100, 2143, - 2148, 2260, 2435, 2338, 1942, 1826, 2252, 2573, - 2323, 2152, 2746, 3548, 3505, 2575, 1821, 2134, - 3142, 3559, 2864, 2080, 2248, 2864, 2784, 1908, - 1034, 795, 1352, 2336, 2826, 2253, 1312, 1163, - 1903, 2555, 2406, 1814, 1620, 2012, 2350, 2220 - }, - { - 2048, 2162, 2239, 2018, 1817, 2061, 2571, 2735, - 2332, 1916, 2190, 3018, 3473, 3030, 2190, 1738, - 1949, 2585, 3073, 2846, 2140, 1999, 2806, 3502, - 3055, 2012, 1798, 2909, 4095, 4095, 3680, 2913, - 3288, 3935, 3590, 2702, 2599, 3294, 3674, 3370, - 3014, 2978, 2933, 2572, 2176, 2355, 3177, 3803, - 3495, 2741, 2573, 3035, 3287, 2966, 2522, 2392, - 2561, 2764, 2748, 2454, 2116, 1994, 2064, 2115, - 2048, 1975, 2014, 2019, 1744, 1382, 1493, 2057, - 2214, 1451, 509, 482, 1366, 2035, 1658, 822, - 844, 1898, 2597, 1926, 735, 474, 1281, 2179, - 2390, 1822, 969, 628, 1067, 1516, 1146, 273, - 0, 841, 2149, 2578, 1584, 370, 585, 1996, - 2756, 2169, 1562, 2033, 2887, 2910, 2081, 1383, - 1479, 1997, 2143, 1819, 1683, 2010, 2245, 1990, - 1639, 1660, 1937, 2135, 2174, 2142, 2105, 2080, - 2048, 2004, 1982, 1987, 1976, 1890, 1695, 1508, - 1615, 2037, 2265, 1974, 1655, 1865, 2210, 1916, - 1114, 762, 1356, 2185, 2101, 1041, 329, 863, - 1613, 1105, 0, 0, 800, 1983, 1912, 910, - 127, 281, 1047, 1476, 1166, 733, 851, 1391, - 1784, 1613, 829, 23, 149, 1226, 1961, 1482, - 632, 672, 1462, 1829, 1265, 533, 635, 1534, - 2209, 2015, 1481, 1408, 1764, 2004, 1982, 1957, - 2048, 2114, 2059, 2003, 2143, 2453, 2663, 2596, - 2379, 2260, 2417, 2799, 3016, 2744, 2406, 2754, - 3591, 3831, 3101, 2291, 2248, 2738, 2991, 2750, - 2524, 2799, 3150, 2742, 1829, 1638, 2389, 2851, - 2436, 2185, 2913, 3805, 3668, 2608, 1817, 2132, - 3078, 3425, 2768, 2075, 2215, 2713, 2634, 1939, - 1272, 1106, 1533, 2258, 2607, 2193, 1531, 1433, - 1948, 2394, 2291, 1890, 1760, 2024, 2249, 2162 - }, - { - 2048, 2105, 2143, 2033, 1932, 2054, 2312, 2396, - 2192, 1980, 2121, 2551, 2793, 2565, 2123, 1882, - 1994, 2341, 2615, 2495, 2100, 2020, 2490, 2908, - 2654, 2026, 1892, 2594, 3514, 3739, 3149, 2645, - 2925, 3416, 3196, 2548, 2482, 3061, 3413, 3196, - 2917, 2917, 2909, 2579, 2184, 2389, 3368, 4095, - 3938, 3011, 2828, 3622, 4095, 3770, 3023, 2835, - 3362, 4095, 4095, 3707, 2396, 1681, 2219, 3427, - 4094, 3530, 2389, 2240, 3598, 4095, 3939, 2019, - 1621, 3410, 4095, 4095, 3221, 2068, 2626, 3750, - 3621, 2232, 1405, 2183, 3439, 3644, 2793, 1924, - 1740, 2243, 2953, 3201, 2820, 2454, 2719, 3335, - 3502, 2881, 1979, 1697, 2347, 3111, 2958, 2079, - 1621, 1976, 2331, 2056, 1572, 1565, 2029, 2411, - 2355, 2074, 1997, 2168, 2238, 2067, 1946, 2077, - 2256, 2244, 2103, 2003, 1984, 2000, 2019, 2032, - 2048, 2069, 2080, 2078, 2084, 2127, 2226, 2321, - 2268, 2053, 1935, 2086, 2252, 2144, 1961, 2118, - 2553, 2751, 2430, 1970, 2017, 2626, 3049, 2749, - 2309, 2624, 3428, 3604, 2854, 2090, 2139, 2833, - 3405, 3329, 2793, 2485, 2742, 3116, 3052, 2617, - 2285, 2453, 3232, 4095, 4062, 2961, 2148, 2746, - 3897, 3959, 2917, 2395, 3395, 4095, 4095, 3220, - 1635, 2142, 3978, 4095, 3496, 2342, 2719, 3896, - 4095, 3406, 2164, 1747, 2533, 3703, 4095, 3653, - 2897, 2533, 2807, 3457, 3716, 3158, 2579, 3029, - 4064, 4095, 3279, 2318, 2260, 2748, 2965, 2704, - 2476, 2700, 2973, 2612, 1875, 1734, 2302, 2630, - 2323, 2143, 2632, 3208, 3096, 2403, 1904, 2099, - 2667, 2862, 2468, 2063, 2143, 2420, 2372, 1988, - 1628, 1543, 1774, 2158, 2340, 2123, 1781, 1732, - 1997, 2223, 2170, 1968, 1903, 2036, 2149, 2105 - }, - { - 2048, 2081, 2108, 2062, 2033, 2108, 2213, 2231, - 2171, 2169, 2313, 2495, 2523, 2399, 2282, 2198, - 2086, 2082, 2304, 2509, 2430, 2273, 2364, 2557, - 2495, 2238, 2211, 2647, 3262, 3494, 3182, 2884, - 3081, 3340, 3015, 2465, 2546, 3166, 3465, 3191, - 2875, 2836, 2831, 2605, 2347, 2539, 3295, 3937, - 3765, 3197, 3214, 3747, 3836, 3319, 3028, 3351, - 3799, 3942, 3782, 3381, 2828, 2390, 2345, 2780, - 3431, 3666, 3188, 2747, 3186, 3917, 3676, 2669, - 2404, 3379, 4095, 4095, 3542, 2912, 2971, 3195, - 2856, 2177, 2097, 2766, 3226, 2929, 2452, 2338, - 2369, 2329, 2435, 2739, 2953, 2972, 2976, 3055, - 3070, 2820, 2318, 1989, 2255, 2794, 2819, 2258, - 1859, 1983, 2135, 1924, 1650, 1723, 2062, 2302, - 2263, 2109, 2092, 2194, 2176, 2011, 1965, 2133, - 2271, 2208, 2073, 2013, 2010, 2007, 2008, 2025, - 2048, 2062, 2073, 2093, 2113, 2126, 2178, 2283, - 2302, 2132, 1953, 2000, 2163, 2178, 2096, 2181, - 2443, 2593, 2437, 2158, 2152, 2515, 2813, 2693, - 2533, 2857, 3355, 3288, 2694, 2318, 2490, 2851, - 3034, 3022, 2962, 2951, 2919, 2748, 2575, 2643, - 2816, 2840, 2969, 3484, 3859, 3453, 2747, 2699, - 3236, 3489, 3234, 3128, 3642, 4095, 4095, 3247, - 2351, 2675, 3676, 3893, 3199, 2870, 3422, 3924, - 3615, 2867, 2387, 2435, 2850, 3295, 3533, 3569, - 3399, 2991, 2695, 2959, 3443, 3394, 2993, 3131, - 3787, 3963, 3300, 2558, 2412, 2676, 2811, 2651, - 2532, 2756, 2984, 2622, 1895, 1703, 2209, 2582, - 2419, 2303, 2653, 3027, 2911, 2454, 2158, 2257, - 2522, 2573, 2384, 2295, 2416, 2406, 2088, 1777, - 1737, 1830, 1894, 1984, 2097, 2096, 1974, 1898, - 1956, 2060, 2088, 2032, 2001, 2056, 2110, 2082 - }, - { - 2048, 1781, 1533, 1328, 1188, 1124, 1143, 1240, - 1403, 1614, 1851, 2091, 2309, 2484, 2597, 2633, - 2583, 2447, 2234, 1964, 1663, 1365, 1105, 912, - 811, 812, 918, 1116, 1384, 1696, 2022, 2334, - 2610, 2832, 2990, 3078, 3096, 3046, 2937, 2779, - 2588, 2381, 2175, 1988, 1831, 1709, 1621, 1557, - 1503, 1443, 1361, 1248, 1094, 899, 665, 395, - 95, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 166, 384, 583, 766, - 938, 1107, 1283, 1476, 1697, 1953, 2250, 2587, - 2956, 3344, 3735, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 3719, 3312, 2947, 2640, 2399, 2226, 2113, - 2048, 2012, 1986, 1950, 1884, 1773, 1608, 1389, - 1126, 836, 546, 284, 83, 0, 0, 59, - 274, 587, 976, 1413, 1868, 2312, 2719, 3070, - 3346, 3538, 3638, 3645, 3564, 3409, 3198, 2956, - 2709, 2483, 2299, 2168, 2094, 2069, 2080, 2107, - 2131, 2132, 2096, 2015, 1884, 1704, 1477, 1212, - 917, 605, 291, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 195, 562, 935, 1298, 1639, 1951, 2228, 2469, - 2677, 2855, 3015, 3168, 3329, 3511, 3729, 3991, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 3769, 3464, 3233, 3077, 2987, 2951, - 2950, 2961, 2963, 2934, 2858, 2727, 2540, 2308 - }, - { - 2048, 1952, 1949, 1768, 1386, 1123, 1378, 2211, - 3175, 3594, 3098, 1985, 1073, 1108, 2177, 3602, - 4095, 4052, 2791, 1493, 964, 1374, 2192, 2654, - 2372, 1590, 934, 876, 1388, 2030, 2357, 2278, - 2048, 1963, 2047, 2045, 1726, 1193, 892, 1244, - 2221, 3244, 3550, 2777, 1292, 0, 0, 118, - 983, 1287, 636, 0, 0, 0, 0, 779, - 1546, 1488, 916, 452, 518, 1050, 1650, 1981, - 2048, 2115, 2382, 2741, 2875, 2608, 2181, 2155, - 2966, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 3621, 2562, 2500, 3327, - 4095, 4095, 4095, 3627, 2872, 2516, 2453, 2357, - 2048, 1668, 1511, 1672, 1890, 1743, 1060, 167, - 0, 121, 1263, 2408, 2778, 2135, 981, 181, - 286, 1100, 1823, 1683, 543, 0, 0, 0, - 0, 565, 1406, 1588, 1422, 1356, 1574, 1898, - 2048, 1971, 1925, 2214, 2846, 3444, 3531, 2971, - 2159, 1763, 2181, 3173, 3984, 3916, 2897, 1582, - 883, 1282, 2447, 3481, 3584, 2644, 1282, 365, - 373, 1108, 1940, 2337, 2229, 1947, 1840, 1956, - 2048, 1886, 1553, 1420, 1810, 2663, 3513, 3854, - 3587, 3151, 3191, 3999, 4095, 4095, 4095, 4095, - 3032, 2330, 2796, 4021, 4095, 4095, 4095, 3178, - 2396, 2381, 2873, 3295, 3253, 2807, 2325, 2091, - 2048, 1899, 1453, 865, 538, 744, 1328, 1772, - 1624, 918, 212, 166, 965, 2085, 2614, 1931, - 204, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 808, 1588, 1863, 1805, 1795, - 2048, 2419, 2597, 2452, 2221, 2322, 2954, 3842, - 4095, 4095, 3540, 2958, 3201, 4095, 4095, 4095, - 4095, 4095, 3278, 2418, 2608, 3384, 3934, 3743, - 2950, 2165, 1934, 2315, 2887, 3143, 2906, 2416 - }, - { - 2048, 2249, 2630, 3002, 3260, 3501, 3941, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4049, 4012, 4008, 3770, 3277, 2720, 2299, - 2048, 1828, 1484, 998, 506, 139, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 970, 2325, 2665, 2012, 1093, - 817, 1633, 3210, 4095, 4095, 4095, 3150, 1878, - 1285, 1384, 1706, 1717, 1236, 549, 159, 400, - 1194, 2129, 2764, 2912, 2708, 2426, 2253, 2169, - 2048, 1826, 1593, 1502, 1589, 1683, 1506, 908, - 47, 0, 0, 0, 0, 102, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 276, 753, 1285, 1720, - 2048, 2395, 2870, 3414, 3810, 3864, 3601, 3308, - 3340, 3843, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 3704, 3989, 4095, - 4095, 4095, 4095, 4051, 2637, 2334, 3235, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 3282, 2286, 2136, 2589, 3105, 3255, - 2981, 2548, 2276, 2280, 2418, 2463, 2320, 2109 - }, - { - 2048, 1981, 2022, 2010, 1837, 1586, 1497, 1768, - 2349, 2925, 3133, 2858, 2376, 2189, 2660, 3701, - 4095, 4095, 4095, 3995, 3304, 3429, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 3832, 3750, 3782, 3652, 3274, 2774, 2342, - 2048, 1790, 1424, 922, 427, 127, 60, 23, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 22, 745, 854, 467, 36, 0, - 431, 1118, 1677, 1894, 1833, 1725, 1753, 1908, - 2048, 2060, 1990, 1997, 2183, 2459, 2576, 2336, - 1788, 1254, 1108, 1472, 2077, 2413, 2102, 1214, - 260, 0, 244, 1107, 1727, 1510, 430, 0, - 0, 0, 0, 788, 1040, 227, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 66, 241, 660, 1203, 1688, - 2048, 2376, 2811, 3365, 3880, 4095, 4095, 4066, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 3805, 3597, 3930, 4095, 4095, - 4026, 3378, 2835, 2600, 2608, 2634, 2512, 2264 - }, - { - 2048, 1979, 2009, 1964, 1767, 1541, 1505, 1758, - 2132, 2275, 1927, 1182, 498, 415, 1153, 2399, - 3472, 3777, 3230, 2333, 1819, 2110, 2990, 3747, - 3706, 2764, 1532, 945, 1611, 3353, 4095, 4095, - 4095, 4095, 3789, 3389, 3945, 4095, 4095, 4095, - 3758, 2753, 2668, 3694, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4055, 3294, - 2817, 2815, 3125, 3395, 3363, 3026, 2587, 2249, - 2048, 1864, 1579, 1221, 950, 892, 965, 883, - 359, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 272, 531, 159, 0, 0, 0, - 112, 1003, 1620, 1819, 1749, 1675, 1747, 1917, - 2048, 2087, 2137, 2350, 2744, 3124, 3204, 2846, - 2219, 1720, 1692, 2143, 2708, 2905, 2525, 1832, - 1408, 1721, 2721, 3800, 4095, 3433, 1879, 361, - 0, 227, 1372, 2263, 2247, 1378, 370, 51, - 733, 1941, 2725, 2320, 702, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 265, 688, 265, 0, 0, 0, 0, 0, - 349, 696, 720, 703, 872, 1233, 1620, 1885, - 2048, 2262, 2651, 3160, 3571, 3694, 3553, 3408, - 3559, 4089, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, - 4095, 4095, 4095, 40