├── .gitignore ├── extactor ├── .gitignore ├── README.md └── extract.py ├── win-implementation ├── .gitignore ├── CMakeLists.txt ├── defines.h ├── music_data.h ├── ay_channel.h ├── music_state.h ├── ay_channel.cpp ├── main.cpp ├── music_state.cpp └── music_data.cpp ├── arduino-sketch ├── defines.h ├── README.md ├── music_data.h ├── ay_channel.h ├── music_state.h ├── arduino-sketch.ino ├── ay_channel.cpp ├── music_state.cpp └── music_data.cpp └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /extactor/.gitignore: -------------------------------------------------------------------------------- 1 | music.dat 2 | -------------------------------------------------------------------------------- /win-implementation/.gitignore: -------------------------------------------------------------------------------- 1 | cmake-build-debug 2 | cmake-build-release 3 | -------------------------------------------------------------------------------- /arduino-sketch/defines.h: -------------------------------------------------------------------------------- 1 | #ifndef DEFINES_H 2 | #define DEFINES_H 3 | 4 | #include 5 | 6 | constexpr size_t NUMBER_OF_NOTES = 80; 7 | constexpr unsigned int SAMPLES_PER_SEC = 31373; 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /win-implementation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.17) 2 | project(win-implementation) 3 | 4 | set(CMAKE_CXX_STANDARD 14) 5 | 6 | add_executable(win-implementation main.cpp music_data.h music_data.cpp ay_channel.cpp ay_channel.h defines.h music_state.cpp music_state.h) -------------------------------------------------------------------------------- /extactor/README.md: -------------------------------------------------------------------------------- 1 | ## Data extractor from music blob file 2 | This is data extractor of music data from one famous game on ZX Spectrum 128K. 3 | 4 | ### Dependencies 5 | Place file [music.dat](./music.dat) into directory with the script. 6 | 7 | Python3.8 required to run the script. 8 | -------------------------------------------------------------------------------- /arduino-sketch/README.md: -------------------------------------------------------------------------------- 1 | # Arduino sketch with music for one famous game on ZX Spectrum 128k 2 | 3 | This sketch plays in-game music doing emulation of AY-3-8912 synthesizer. Compile the code, upload it to your Arduino board and connect speaker to D3 (PD3) output of the board. Expected frequency of the chip is 16 MHz 4 | -------------------------------------------------------------------------------- /win-implementation/defines.h: -------------------------------------------------------------------------------- 1 | #ifndef WIN_IMPLEMENTATION_DEFINES_H 2 | #define WIN_IMPLEMENTATION_DEFINES_H 3 | 4 | #include 5 | 6 | constexpr size_t NUMBER_OF_NOTES = 80; 7 | constexpr unsigned int CHANNEL_OUTPUT_VOLUME = (128 / 4 - 1); 8 | constexpr uint8_t MAX_AY_CHANNEL_VOLUME = 15; 9 | constexpr unsigned int SAMPLES_PER_SEC = 44100; 10 | constexpr size_t OUTPUT_BUFFER_LENGTH = SAMPLES_PER_SEC * 300; 11 | 12 | 13 | #endif //WIN_IMPLEMENTATION_DEFINES_H 14 | -------------------------------------------------------------------------------- /arduino-sketch/music_data.h: -------------------------------------------------------------------------------- 1 | #ifndef MUSIC_DATA_H 2 | #define MUSIC_DATA_H 3 | 4 | struct MusicData { 5 | const uint8_t* data; 6 | uint16_t offset; 7 | uint16_t positions_table; 8 | uint8_t speed; 9 | uint16_t instrument_table_for_positions; 10 | 11 | uint8_t read_byte(uint16_t address) const { 12 | return pgm_read_byte_near(data + address - offset); 13 | } 14 | 15 | uint16_t read_word(uint16_t address) const { 16 | return pgm_read_word_near(data + address - offset); 17 | } 18 | }; 19 | 20 | MusicData get_music_data_1(); 21 | MusicData get_music_data_2(); 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /win-implementation/music_data.h: -------------------------------------------------------------------------------- 1 | #ifndef WIN_IMPLEMENTATION_MUSIC_DATA_H 2 | #define WIN_IMPLEMENTATION_MUSIC_DATA_H 3 | 4 | struct MusicData { 5 | uint8_t* data; 6 | uint16_t offset; 7 | uint16_t positions_table; 8 | uint8_t speed; 9 | uint16_t instrument_table_for_positions; 10 | 11 | uint8_t read_byte(int address) const { 12 | return data[address - offset]; 13 | } 14 | 15 | uint16_t read_word(int address) const { 16 | return data[address - offset] + (data[address - offset + 1] << 8u); 17 | } 18 | }; 19 | 20 | MusicData get_music_data_1(); 21 | MusicData get_music_data_2(); 22 | 23 | #endif //WIN_IMPLEMENTATION_MUSIC_DATA_H 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Stuff on the music module of one famous game on ZX Spectrum 128k 2 | 3 | This is data for the article "Music facilities of ZX Spectrum 128k" (https://habr.com/en/company/maxilect/blog/525124/). 4 | 5 | The repository contains the following parts: 6 | 7 | - disassembly of the original module [disasm.txt](./disasm.txt) 8 | - [extractor](https://github.com/admitrievsky/ay-3-8912-d4/tree/master/extactor) written on Python of binary data from the original module 9 | - [implementation](https://github.com/admitrievsky/ay-3-8912-d4/tree/master/win-implementation) of music module for Windows for testing purposes 10 | - [Arduino sketch](https://github.com/admitrievsky/ay-3-8912-d4/tree/master/arduino-sketch) to upload to your board and listen to game music for AY-3-8912 synthesizer. 11 | -------------------------------------------------------------------------------- /arduino-sketch/ay_channel.h: -------------------------------------------------------------------------------- 1 | #ifndef AY_CHANNEL_H 2 | #define AY_CHANNEL_H 3 | 4 | #include "defines.h" 5 | 6 | constexpr size_t FIXED_INTEGER_SIZE = 256; 7 | union FixedPoint { 8 | struct { 9 | uint8_t fraction; 10 | uint8_t integer; 11 | } parts; 12 | uint16_t raw = 0; 13 | }; 14 | 15 | class Channel { 16 | private: 17 | FixedPoint period; 18 | FixedPoint wave_position; 19 | uint8_t volume = 0; 20 | bool is_tone_enabled = false; 21 | bool is_noise_enabled = false; 22 | 23 | static FixedPoint tone_period_table[NUMBER_OF_NOTES]; 24 | static uint8_t volumes[]; 25 | 26 | public: 27 | static void init_tone_period_table(); 28 | 29 | void init_tone(uint8_t tone, int16_t shift = 0); 30 | 31 | void set_volume(uint8_t _volume); 32 | uint8_t get_volume(); 33 | bool get_is_noise_enabled(); 34 | 35 | void enable_tone(bool _is_tone_enabled); 36 | 37 | void enable_noise(bool _is_noise_enabled); 38 | 39 | int8_t render(); 40 | }; 41 | 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /win-implementation/ay_channel.h: -------------------------------------------------------------------------------- 1 | #ifndef WIN_IMPLEMENTATION_AY_CHANNEL_H 2 | #define WIN_IMPLEMENTATION_AY_CHANNEL_H 3 | 4 | #include "defines.h" 5 | 6 | constexpr size_t FIXED_INTEGER_SIZE = 256; 7 | union FixedPoint { 8 | struct { 9 | uint8_t fraction; 10 | uint8_t integer; 11 | } parts; 12 | uint16_t raw = 0; 13 | }; 14 | 15 | class Channel { 16 | private: 17 | FixedPoint period; 18 | FixedPoint wave_position; 19 | uint8_t volume = 0; 20 | bool is_tone_enabled = false; 21 | bool is_noise_enabled = false; 22 | 23 | static FixedPoint tone_period_table[NUMBER_OF_NOTES]; 24 | static uint8_t volumes[]; 25 | 26 | public: 27 | static void init_tone_period_table(); 28 | 29 | void init_tone(uint8_t tone, int16_t shift = 0); 30 | 31 | void set_volume(uint8_t _volume); 32 | 33 | void enable_tone(bool _is_tone_enabled); 34 | 35 | void enable_noise(bool _is_noise_enabled); 36 | 37 | int8_t render(); 38 | }; 39 | 40 | 41 | #endif //WIN_IMPLEMENTATION_AY_CHANNEL_H 42 | -------------------------------------------------------------------------------- /arduino-sketch/music_state.h: -------------------------------------------------------------------------------- 1 | #ifndef MUSIC_STATE_H 2 | #define MUSIC_STATE_H 3 | 4 | #include "defines.h" 5 | #include "music_data.h" 6 | #include "ay_channel.h" 7 | 8 | struct ChannelState { 9 | uint8_t current_note{}; 10 | uint16_t instrument_ptr = 0; 11 | uint16_t instrument_playback_ptr{}; 12 | }; 13 | 14 | class MusicState { 15 | private: 16 | MusicData *data{}; 17 | uint8_t speed{}; 18 | uint8_t speed_counter{}; 19 | uint16_t position_ptr{}; 20 | uint16_t pattern_current_note_ptr{}; 21 | uint8_t pattern_counter{}; 22 | uint16_t instrument_set_for_position{}; 23 | uint16_t pattern_instrument_set_ptr{}; 24 | 25 | ChannelState state_a, state_b, state_c, state_pseudo; 26 | 27 | void init(); 28 | 29 | void start_from_the_beginning(); 30 | 31 | void start_from_position(uint8_t position); 32 | 33 | void init_next_pattern(); 34 | 35 | void parse_note(ChannelState &channel_state); 36 | 37 | void manage_instruments(Channel &channel, ChannelState &channel_state); 38 | 39 | public: 40 | void set_data(MusicData *music_data); 41 | 42 | void next(Channel &channel_a, Channel &channel_b, Channel &channel_c); 43 | }; 44 | 45 | #endif -------------------------------------------------------------------------------- /win-implementation/music_state.h: -------------------------------------------------------------------------------- 1 | #ifndef WIN_IMPLEMENTATION_MUSIC_STATE_H 2 | #define WIN_IMPLEMENTATION_MUSIC_STATE_H 3 | 4 | #include 5 | #include "defines.h" 6 | #include "music_data.h" 7 | #include "ay_channel.h" 8 | 9 | class ParseException : std::exception { 10 | }; 11 | 12 | struct ChannelState { 13 | uint8_t current_note{}; 14 | uint16_t instrument_ptr = 0; 15 | uint16_t instrument_playback_ptr{}; 16 | }; 17 | 18 | class MusicState { 19 | private: 20 | MusicData *data{}; 21 | uint8_t speed{}; 22 | uint8_t speed_counter{}; 23 | uint16_t position_ptr{}; 24 | uint16_t pattern_current_note_ptr{}; 25 | uint8_t pattern_counter{}; 26 | uint16_t instrument_set_for_position{}; 27 | uint16_t pattern_instrument_set_ptr{}; 28 | 29 | ChannelState state_a, state_b, state_c, state_pseudo; 30 | 31 | void init(); 32 | 33 | void start_from_the_beginning(); 34 | 35 | void start_from_position(uint8_t position); 36 | 37 | void init_next_pattern(); 38 | 39 | void parse_note(ChannelState &channel_state); 40 | 41 | void manage_instruments(Channel &channel, ChannelState &channel_state); 42 | 43 | public: 44 | void set_data(MusicData *music_data); 45 | 46 | void next(Channel &channel_a, Channel &channel_b, Channel &channel_c); 47 | }; 48 | 49 | #endif //WIN_IMPLEMENTATION_MUSIC_STATE_H 50 | -------------------------------------------------------------------------------- /arduino-sketch/arduino-sketch.ino: -------------------------------------------------------------------------------- 1 | #include "defines.h" 2 | #include "music_data.h" 3 | #include "ay_channel.h" 4 | #include "music_state.h" 5 | 6 | Channel channel_a, channel_b, channel_c; 7 | MusicState state; 8 | 9 | ISR(TIMER2_OVF_vect) { 10 | static uint8_t tick = 0; 11 | // will be called 31373 times per second 12 | OCR2B = (uint8_t)(channel_a.render() + channel_b.render() + channel_c.render()) + 128; 13 | 14 | digitalWrite(LED_BUILTIN, channel_a.get_volume() > (tick & 0x0f)); 15 | tick ++; 16 | } 17 | 18 | void setup() { 19 | pinMode(3, OUTPUT); // Will use OC2B, digital pin #3, PD3 20 | 21 | TCCR2A = 0; 22 | TCCR2B = 0; 23 | TCCR2A |= (1 << WGM00); // set phase correct PWM mode 24 | TCCR2A |= (1 << COM2B1); // clear OC2B on compare match when up-counting. Set OC2B on compare match when down-counting. 25 | TCCR2B |= (1 << CS00); // set pwm frequency to 31373 Hz 26 | 27 | TIMSK2 |= (1 << TOIE2); // enable overflow interrupts 28 | 29 | Channel::init_tone_period_table(); 30 | 31 | MusicData music_data = get_music_data_1(); 32 | state.set_data(&music_data); 33 | 34 | Serial.begin(9600); 35 | } 36 | 37 | void loop() { 38 | static uint32_t last_managed = 0; 39 | if ( (millis() - last_managed) >= 20 ) { 40 | last_managed = millis(); 41 | state.next(channel_a, channel_b, channel_c); 42 | 43 | if (channel_c.get_is_noise_enabled()) 44 | UDR0 = 0; // it's not necessary to wait until transmission finishes, we only wanna flash the led 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /win-implementation/ay_channel.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "ay_channel.h" 3 | 4 | FixedPoint Channel::tone_period_table[NUMBER_OF_NOTES]; 5 | uint8_t Channel::volumes[] = {0, 0, 0, 0, 1, 1, 1, 2, 3, 4, 6, 7, 9, 11, 13, 15}; 6 | 7 | void Channel::init_tone_period_table() { 8 | for (size_t n = 0; n < NUMBER_OF_NOTES; n++) { 9 | const auto frequency = 32.703 * std::pow(2, double(n) / 12); 10 | tone_period_table[n].raw = lround((FIXED_INTEGER_SIZE * frequency / SAMPLES_PER_SEC) * 256); 11 | } 12 | } 13 | 14 | uint16_t xs = 1; 15 | 16 | uint16_t xor_shift() { 17 | xs ^= xs << 7u; 18 | xs ^= xs >> 9u; 19 | xs ^= xs << 8u; 20 | return xs; 21 | } 22 | 23 | void Channel::init_tone(uint8_t tone, int16_t shift) { 24 | period.raw = tone_period_table[tone].raw + shift; 25 | } 26 | 27 | void Channel::set_volume(uint8_t _volume) { 28 | volume = volumes[_volume]; 29 | } 30 | 31 | void Channel::enable_tone(bool _is_tone_enabled) { 32 | is_tone_enabled = _is_tone_enabled; 33 | } 34 | 35 | void Channel::enable_noise(bool _is_noise_enabled) { 36 | is_noise_enabled = _is_noise_enabled; 37 | } 38 | 39 | int8_t Channel::render() { 40 | wave_position.raw += period.raw; 41 | return (is_tone_enabled ? 42 | volume * 43 | (wave_position.parts.integer < (FIXED_INTEGER_SIZE / 2) ? (int8_t) CHANNEL_OUTPUT_VOLUME 44 | : -(int8_t) CHANNEL_OUTPUT_VOLUME 45 | ) / MAX_AY_CHANNEL_VOLUME : 0) + 46 | (is_noise_enabled ? volume * int16_t(xor_shift()) / 256 / 16 / MAX_AY_CHANNEL_VOLUME : 0); 47 | } 48 | -------------------------------------------------------------------------------- /extactor/extract.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | 3 | 4 | @dataclass 5 | class MusicData: 6 | music_number: int 7 | stripped_data: bytes 8 | offset: int 9 | positions_table: int 10 | speed: int 11 | instrument_table_for_positions: int 12 | 13 | def format_to_C(self): 14 | data = ', '.join(f'0x{b:X}' for b in self.stripped_data) 15 | 16 | return f''' 17 | uint8_t music_{self.music_number}_data[] = {{ {data} }}; 18 | constexpr MusicData music_{self.music_number} = {{ 19 | music_{self.music_number}_data, 20 | 0x{self.offset:X}, 21 | 0x{self.positions_table:X}, 22 | {self.speed}, 23 | 0x{self.instrument_table_for_positions:X} 24 | }}; 25 | ''' 26 | 27 | 28 | def get_word(data: bytes, address: int) -> int: 29 | return data[address] + data[address + 1] * 256 30 | 31 | 32 | def extract_music_data(music_number: int, data: bytes, offset: int) -> MusicData: 33 | return MusicData( 34 | music_number=music_number, 35 | stripped_data=data[0x0313:], 36 | offset=offset + 0x0313, 37 | positions_table=get_word(data, 0x0001), 38 | speed=data[0x0012], 39 | instrument_table_for_positions=get_word(data, 0x007), 40 | ) 41 | 42 | 43 | def read_data() -> bytes: 44 | with open('music.dat', 'rb') as f: 45 | return f.read() 46 | 47 | 48 | def main(): 49 | data = read_data() 50 | 51 | music_1 = extract_music_data(1, data[0x0000:0x1300], 0xC000) 52 | print(music_1.format_to_C()) 53 | 54 | music_2 = extract_music_data(2, data[0x1300:0x2D10], 0xD300) 55 | print(music_2.format_to_C()) 56 | 57 | 58 | if __name__ == '__main__': 59 | main() 60 | -------------------------------------------------------------------------------- /arduino-sketch/ay_channel.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "ay_channel.h" 3 | 4 | FixedPoint Channel::tone_period_table[NUMBER_OF_NOTES]; 5 | uint8_t Channel::volumes[] = {0, 0, 0, 0, 1, 1, 1, 2, 3, 4, 6, 7, 9, 11, 13, 15}; 6 | 7 | void Channel::init_tone_period_table() { 8 | for (size_t n = 0; n < NUMBER_OF_NOTES; n++) { 9 | const auto frequency = 32.703 * pow(2, double(n) / 12); 10 | tone_period_table[n].raw = lround((FIXED_INTEGER_SIZE * frequency / SAMPLES_PER_SEC) * 256); 11 | } 12 | } 13 | 14 | uint16_t xs = 1; 15 | 16 | uint16_t xor_shift() { 17 | xs ^= xs << 7u; 18 | xs ^= xs >> 9u; 19 | xs ^= xs << 8u; 20 | return xs; 21 | } 22 | 23 | void Channel::init_tone(uint8_t tone, int16_t shift) { 24 | period.raw = tone_period_table[tone].raw + shift; 25 | } 26 | 27 | void Channel::set_volume(uint8_t _volume) { 28 | volume = volumes[_volume]; 29 | } 30 | 31 | uint8_t Channel::get_volume() { 32 | return is_tone_enabled ? volume : 0; 33 | } 34 | 35 | void Channel::enable_tone(bool _is_tone_enabled) { 36 | is_tone_enabled = _is_tone_enabled; 37 | } 38 | 39 | void Channel::enable_noise(bool _is_noise_enabled) { 40 | is_noise_enabled = _is_noise_enabled; 41 | } 42 | 43 | bool Channel::get_is_noise_enabled() { 44 | return is_noise_enabled; 45 | } 46 | 47 | int8_t Channel::render() { 48 | wave_position.raw += period.raw; 49 | return (is_tone_enabled ? 50 | (wave_position.parts.integer < (FIXED_INTEGER_SIZE / 2) ? (int8_t) volume 51 | : -(int8_t) volume 52 | ) : 0) + 53 | (is_noise_enabled ? volumes[volume] * int16_t(xor_shift()) & 0x1f : 0); 54 | } 55 | -------------------------------------------------------------------------------- /win-implementation/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include "defines.h" 6 | #include "music_data.h" 7 | #include "ay_channel.h" 8 | #include "music_state.h" 9 | 10 | float output_buffer[OUTPUT_BUFFER_LENGTH]; 11 | 12 | 13 | Channel channel_a, channel_b, channel_c; 14 | 15 | MusicState state; 16 | 17 | int8_t render_sample(size_t tick) { 18 | if ((tick % (SAMPLES_PER_SEC / 50)) == 0) 19 | state.next(channel_a, channel_b, channel_c); 20 | auto a = channel_a.render(); 21 | auto b = channel_b.render(); 22 | auto c = channel_c.render(); 23 | if (abs((int16_t) a + (int16_t) b + (int16_t) c) > 127) 24 | std::cout << "overload\n"; 25 | return a + b + c; 26 | } 27 | 28 | void render(MusicData &music_data) { 29 | state.set_data(&music_data); 30 | 31 | for (size_t i = 0; i < OUTPUT_BUFFER_LENGTH; i++) 32 | output_buffer[i] = float(render_sample(i)) / 128; 33 | } 34 | 35 | int main() { 36 | CoInitialize(0); 37 | Channel::init_tone_period_table(); 38 | 39 | MusicData music_data_1 = get_music_data_1(); 40 | MusicData music_data_2 = get_music_data_2(); 41 | 42 | try { 43 | render(music_data_1); 44 | } catch (ParseException) { 45 | std::cout << "Parse exception"; 46 | return 1; 47 | } 48 | 49 | IXAudio2 *pXAudio2 = NULL; 50 | HRESULT hr; 51 | if (FAILED(hr = XAudio2Create(&pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR))) 52 | return hr; 53 | 54 | IXAudio2MasteringVoice *pMasterVoice = NULL; 55 | if (FAILED(hr = pXAudio2->CreateMasteringVoice(&pMasterVoice))) 56 | return hr; 57 | 58 | WAVEFORMATEX wfx; 59 | wfx.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; 60 | wfx.nChannels = 1; 61 | wfx.nSamplesPerSec = SAMPLES_PER_SEC; 62 | wfx.nAvgBytesPerSec = SAMPLES_PER_SEC * 4; 63 | wfx.wBitsPerSample = 32; 64 | wfx.cbSize = 0; 65 | wfx.nBlockAlign = (wfx.nChannels * wfx.wBitsPerSample) / 8; 66 | 67 | 68 | IXAudio2SourceVoice *pSourceVoice; 69 | if (FAILED(hr = pXAudio2->CreateSourceVoice(&pSourceVoice, (WAVEFORMATEX *) &wfx))) 70 | return hr; 71 | 72 | XAUDIO2_BUFFER xaudio2Buffer; 73 | xaudio2Buffer.Flags = 0; 74 | xaudio2Buffer.AudioBytes = OUTPUT_BUFFER_LENGTH * 4; 75 | xaudio2Buffer.pAudioData = reinterpret_cast(output_buffer); 76 | xaudio2Buffer.PlayBegin = 0; 77 | xaudio2Buffer.PlayLength = 0; 78 | xaudio2Buffer.LoopBegin = 0; 79 | xaudio2Buffer.LoopLength = 0; 80 | xaudio2Buffer.LoopCount = 0; 81 | xaudio2Buffer.pContext = nullptr; 82 | 83 | if (FAILED(hr = pSourceVoice->SubmitSourceBuffer(&xaudio2Buffer))) 84 | return hr; 85 | 86 | if (FAILED(hr = pSourceVoice->Start(0))) 87 | return hr; 88 | 89 | getchar(); 90 | 91 | return 0; 92 | } 93 | -------------------------------------------------------------------------------- /arduino-sketch/music_state.cpp: -------------------------------------------------------------------------------- 1 | #include "music_state.h" 2 | 3 | enum InstrumentType { 4 | ORNAMENT = 0, 5 | SAMPLE = 1, 6 | NOISE = 2 7 | }; 8 | 9 | void MusicState::init() { 10 | start_from_the_beginning(); 11 | init_next_pattern(); 12 | } 13 | 14 | void MusicState::start_from_the_beginning() { 15 | speed = data->speed; 16 | speed_counter = 1; 17 | position_ptr = data->positions_table; 18 | instrument_set_for_position = data->instrument_table_for_positions; 19 | } 20 | 21 | void MusicState::start_from_position(uint8_t position) { 22 | position_ptr = data->positions_table + position * 2; 23 | instrument_set_for_position = data->instrument_table_for_positions + position * 2; 24 | } 25 | 26 | void MusicState::init_next_pattern() { 27 | while ((pattern_current_note_ptr = data->read_word(position_ptr)) == 0xFFFF) { 28 | start_from_the_beginning(); 29 | } 30 | pattern_counter = 64; 31 | pattern_current_note_ptr = data->read_word(position_ptr); 32 | pattern_instrument_set_ptr = data->read_word(instrument_set_for_position); 33 | 34 | position_ptr += 2; 35 | instrument_set_for_position += 2; 36 | } 37 | 38 | void MusicState::parse_note(ChannelState &channel_state) { 39 | while (true) { 40 | auto note = data->read_byte(pattern_current_note_ptr++); 41 | if (!note) 42 | return; 43 | if (note < 0x80) { 44 | note -= 2; 45 | channel_state.current_note = note; 46 | channel_state.instrument_playback_ptr = channel_state.instrument_ptr + 1; 47 | return; 48 | } 49 | auto command = note & 0xE0u; 50 | if (command == 0x80) { // instrument specified 51 | uint8_t instrument = note & 0x1Fu; 52 | if (instrument < 0x10) { 53 | channel_state.instrument_ptr = data->read_word(pattern_instrument_set_ptr + instrument * 2); 54 | } else { 55 | // not clear??? 56 | } 57 | continue; 58 | } 59 | if (command == 0xc0) { // go to position 60 | auto position = note & 0x1Fu; 61 | pattern_counter = 0; 62 | if (position) 63 | start_from_position(position); 64 | continue; 65 | } 66 | if (command == 0xa0) { // change speed 67 | speed = note & 0x0Fu; 68 | continue; 69 | } 70 | } 71 | 72 | } 73 | 74 | void MusicState::manage_instruments(Channel &channel, ChannelState &channel_state) { 75 | if (!channel_state.instrument_ptr) 76 | return; 77 | auto instrument_type = (InstrumentType) data->read_byte(channel_state.instrument_ptr); 78 | uint8_t val = data->read_byte(channel_state.instrument_playback_ptr); 79 | 80 | if (instrument_type == NOISE) { 81 | if (val == 0xFF) { 82 | channel.enable_tone(false); 83 | channel.enable_noise(false); 84 | return; 85 | } 86 | if (val >= 0x80) { 87 | channel.enable_tone(false); 88 | channel.enable_noise(true); 89 | // we do not store noise frequency, due to emulation limitations 90 | } else { 91 | // play tone from instrument 92 | channel.enable_tone(true); 93 | channel.enable_noise(false); 94 | channel.init_tone((val & 0x3Fu) / 2); 95 | } 96 | } 97 | 98 | if (instrument_type == ORNAMENT || instrument_type == SAMPLE) { 99 | if (val == 0xFF) 100 | return; 101 | channel.enable_tone(true); 102 | channel.enable_noise(false); 103 | if (instrument_type == ORNAMENT) { 104 | uint8_t new_note = channel_state.current_note + ( 105 | val < 0x80 ? val : -(val & 0x80u) 106 | ); 107 | channel.init_tone(new_note); 108 | } else { // SAMPLE 109 | auto shift = (int8_t) val / 48; // magic 110 | channel.init_tone(channel_state.current_note, ( 111 | (val < 0x80 ? shift : -shift) 112 | )); 113 | } 114 | } 115 | channel_state.instrument_playback_ptr++; 116 | 117 | auto volume = data->read_byte(channel_state.instrument_playback_ptr++); 118 | channel.set_volume(volume); 119 | } 120 | 121 | void MusicState::set_data(MusicData *music_data) { 122 | data = music_data; 123 | init(); 124 | } 125 | 126 | void MusicState::next(Channel &channel_a, Channel &channel_b, Channel &channel_c) { 127 | if (!--speed_counter) { 128 | speed_counter = speed; 129 | 130 | if (!pattern_counter) 131 | init_next_pattern(); 132 | pattern_counter--; 133 | 134 | parse_note(state_a); 135 | parse_note(state_b); 136 | parse_note(state_c); 137 | parse_note(state_pseudo); // Pseudo channel, used only for commands 138 | } 139 | 140 | manage_instruments(channel_a, state_a); 141 | manage_instruments(channel_b, state_b); 142 | manage_instruments(channel_c, state_c); 143 | } 144 | -------------------------------------------------------------------------------- /win-implementation/music_state.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "music_state.h" 4 | 5 | enum InstrumentType { 6 | ORNAMENT = 0, 7 | SAMPLE = 1, 8 | NOISE = 2 9 | }; 10 | 11 | void MusicState::init() { 12 | start_from_the_beginning(); 13 | init_next_pattern(); 14 | } 15 | 16 | void MusicState::start_from_the_beginning() { 17 | speed = data->speed; 18 | speed_counter = 1; 19 | position_ptr = data->positions_table; 20 | instrument_set_for_position = data->instrument_table_for_positions; 21 | } 22 | 23 | void MusicState::start_from_position(uint8_t position) { 24 | position_ptr = data->positions_table + position * 2; 25 | instrument_set_for_position = data->instrument_table_for_positions + position * 2; 26 | } 27 | 28 | void MusicState::init_next_pattern() { 29 | while ((pattern_current_note_ptr = data->read_word(position_ptr)) == 0xFFFF) { 30 | start_from_the_beginning(); 31 | } 32 | pattern_counter = 64; 33 | pattern_current_note_ptr = data->read_word(position_ptr); 34 | pattern_instrument_set_ptr = data->read_word(instrument_set_for_position); 35 | 36 | position_ptr += 2; 37 | instrument_set_for_position += 2; 38 | } 39 | 40 | void MusicState::parse_note(ChannelState &channel_state) { 41 | while (true) { 42 | auto note = data->read_byte(pattern_current_note_ptr++); 43 | if (!note) 44 | return; 45 | if (note < 0x80) { 46 | note -= 2; 47 | channel_state.current_note = note; 48 | channel_state.instrument_playback_ptr = channel_state.instrument_ptr + 1; 49 | return; 50 | } 51 | auto command = note & 0xE0u; 52 | if (command == 0x80) { // instrument specified 53 | uint8_t instrument = note & 0x1Fu; 54 | if (instrument < 0x10) { 55 | channel_state.instrument_ptr = data->read_word(pattern_instrument_set_ptr + instrument * 2); 56 | } else { 57 | // not clear??? 58 | } 59 | continue; 60 | } 61 | if (command == 0xc0) { // go to position 62 | auto position = note & 0x1Fu; 63 | pattern_counter = 0; 64 | if (position) 65 | start_from_position(position); 66 | continue; 67 | } 68 | if (command == 0xa0) { // change speed 69 | speed = note & 0x0Fu; 70 | continue; 71 | } 72 | std::cout << "Unknown command: " << std::hex << (uint16_t) command << std::endl; 73 | throw ParseException(); 74 | } 75 | 76 | } 77 | 78 | void MusicState::manage_instruments(Channel &channel, ChannelState &channel_state) { 79 | if (!channel_state.instrument_ptr) 80 | return; 81 | auto instrument_type = (InstrumentType) data->read_byte(channel_state.instrument_ptr); 82 | uint8_t val = data->read_byte(channel_state.instrument_playback_ptr); 83 | 84 | if (instrument_type != NOISE && instrument_type != SAMPLE && instrument_type != ORNAMENT) 85 | throw ParseException(); 86 | 87 | if (instrument_type == NOISE) { 88 | if (val == 0xFF) { 89 | channel.enable_tone(false); 90 | channel.enable_noise(false); 91 | return; 92 | } 93 | if (val >= 0x80) { 94 | channel.enable_tone(false); 95 | channel.enable_noise(true); 96 | // we do not store noise frequency, due to emulation limitations 97 | } else { 98 | // play tone from instrument 99 | channel.enable_tone(true); 100 | channel.enable_noise(false); 101 | channel.init_tone((val & 0x3Fu) / 2); 102 | } 103 | } 104 | 105 | if (instrument_type == ORNAMENT || instrument_type == SAMPLE) { 106 | if (val == 0xFF) 107 | return; 108 | channel.enable_tone(true); 109 | channel.enable_noise(false); 110 | if (instrument_type == ORNAMENT) { 111 | uint8_t new_note = channel_state.current_note + ( 112 | val < 0x80 ? val : -(val & 0x80u) 113 | ); 114 | channel.init_tone(new_note); 115 | } else { // SAMPLE 116 | auto shift = (int8_t) val / 48; // magic 117 | channel.init_tone(channel_state.current_note, ( 118 | (val < 0x80 ? shift : -shift) 119 | )); 120 | } 121 | } 122 | channel_state.instrument_playback_ptr++; 123 | 124 | auto volume = data->read_byte(channel_state.instrument_playback_ptr++); 125 | channel.set_volume(volume); 126 | } 127 | 128 | void MusicState::set_data(MusicData *music_data) { 129 | data = music_data; 130 | init(); 131 | } 132 | 133 | void MusicState::next(Channel &channel_a, Channel &channel_b, Channel &channel_c) { 134 | if (!--speed_counter) { 135 | speed_counter = speed; 136 | 137 | if (!pattern_counter) 138 | init_next_pattern(); 139 | pattern_counter--; 140 | 141 | parse_note(state_a); 142 | parse_note(state_b); 143 | parse_note(state_c); 144 | parse_note(state_pseudo); // Pseudo channel, used only for commands 145 | } 146 | 147 | manage_instruments(channel_a, state_a); 148 | manage_instruments(channel_b, state_b); 149 | manage_instruments(channel_c, state_c); 150 | } 151 | -------------------------------------------------------------------------------- /win-implementation/music_data.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "music_data.h" 4 | 5 | uint8_t music_1_data[] = { 0x31, 0xC3, 0x31, 0xC3, 0x51, 0xC3, 0x51, 0xC3, 0x71, 0xC3, 0x71, 0xC3, 0x51, 0xC3, 0x51, 0xC3, 0x91, 0xC3, 0x91, 0xC3, 0xD1, 0xC3, 0x91, 0xC3, 0x91, 0xC3, 0xB1, 0xC3, 0xB1, 0xC3, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x5F, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0xD7, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x33, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0xAF, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0xE9, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0xE9, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0xD7, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0x33, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x33, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0xD7, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x47, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x5F, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0x33, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x5F, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0x33, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x5F, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0x33, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xD, 0x1, 0xE, 0x81, 0xF, 0x2, 0xE, 0x82, 0xD, 0x3, 0xC, 0x83, 0xB, 0x0, 0xA, 0x0, 0x8, 0xFF, 0x1, 0x0, 0xD, 0x1, 0xE, 0x2, 0xF, 0x0, 0xF, 0x1, 0xF, 0x2, 0xF, 0x3, 0xD, 0x2, 0xA, 0x1, 0x8, 0x0, 0x7, 0x0, 0x6, 0xFF, 0x0, 0x0, 0xF, 0x0, 0xF, 0xC, 0xF, 0x18, 0xE, 0x0, 0xD, 0xC, 0xC, 0x18, 0x8, 0x0, 0x0, 0xFF, 0x2, 0x46, 0xF, 0x84, 0xF, 0x3C, 0xE, 0x84, 0xD, 0x32, 0xD, 0x84, 0xD, 0x28, 0xC, 0x1E, 0xC, 0x14, 0xB, 0xA, 0x8, 0x0, 0x0, 0xFF, 0x0, 0xFF, 0x2, 0x88, 0xF, 0x86, 0xF, 0x84, 0xE, 0x82, 0xE, 0x82, 0xD, 0x1D, 0xD, 0x81, 0xC, 0x80, 0xA, 0x0, 0x0, 0xFF, 0x2, 0x3C, 0xF, 0x32, 0xF, 0x28, 0xE, 0x1E, 0xD, 0x14, 0xB, 0xA, 0x8, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xF, 0xC, 0xF, 0x0, 0xE, 0xC, 0xD, 0x0, 0xC, 0xC, 0xA, 0x0, 0x8, 0x18, 0x6, 0x0, 0x4, 0x18, 0x2, 0xFF, 0x1, 0x0, 0xD, 0x2, 0xE, 0x4, 0xF, 0x8, 0xF, 0xA, 0xE, 0xC, 0xD, 0xE, 0x8, 0x0, 0x8, 0xFF, 0x0, 0x0, 0xF, 0xC, 0xF, 0x0, 0xE, 0xC, 0xE, 0x0, 0xD, 0xC, 0xC, 0x0, 0x8, 0x0, 0x0, 0xFF, 0x0, 0x0, 0xF, 0xC, 0xF, 0x18, 0xE, 0x0, 0xE, 0xC, 0xD, 0x18, 0xC, 0x0, 0x8, 0xFF, 0x0, 0x0, 0x29, 0xE, 0x5D, 0xD, 0x9C, 0xC, 0xE7, 0xB, 0x3C, 0xB, 0x9B, 0xA, 0x2, 0xA, 0x73, 0x9, 0xEB, 0x8, 0x6B, 0x8, 0xF2, 0x7, 0x80, 0x7, 0x14, 0x7, 0xAE, 0x6, 0x4E, 0x6, 0xF4, 0x5, 0x9E, 0x5, 0x4D, 0x5, 0x1, 0x5, 0xB9, 0x4, 0x75, 0x4, 0x35, 0x4, 0xF9, 0x3, 0xC0, 0x3, 0x8A, 0x3, 0x57, 0x3, 0x27, 0x3, 0xFA, 0x2, 0xCF, 0x2, 0xA7, 0x2, 0x81, 0x2, 0x5D, 0x2, 0x3B, 0x2, 0x1B, 0x2, 0xFC, 0x1, 0xE0, 0x1, 0xC5, 0x1, 0xAC, 0x1, 0x94, 0x1, 0x7D, 0x1, 0x68, 0x1, 0x53, 0x1, 0x40, 0x1, 0x2E, 0x1, 0x1D, 0x1, 0xD, 0x1, 0xFE, 0x0, 0xF0, 0x0, 0xE2, 0x0, 0xD6, 0x0, 0xCA, 0x0, 0xBE, 0x0, 0xB4, 0x0, 0xAA, 0x0, 0xA0, 0x0, 0x97, 0x0, 0x8F, 0x0, 0x87, 0x0, 0x7F, 0x0, 0x78, 0x0, 0x71, 0x0, 0x6B, 0x0, 0x65, 0x0, 0x5F, 0x0, 0x5A, 0x0, 0x55, 0x0, 0x50, 0x0, 0x4C, 0x0, 0x47, 0x0, 0x43, 0x0, 0x40, 0x0, 0x3C, 0x0, 0x39, 0x0, 0x35, 0x0, 0x32, 0x0, 0x30, 0x0, 0x2D, 0x0, 0x2A, 0x0, 0x28, 0x0, 0x26, 0x0, 0x24, 0x0, 0x22, 0x0, 0x20, 0x0, 0x1E, 0x0, 0x1C, 0x0, 0x1B, 0x0, 0x19, 0x0, 0x18, 0x0, 0x16, 0x0, 0x15, 0x0, 0x14, 0x0, 0x13, 0x0, 0x12, 0x0, 0x11, 0x0, 0x10, 0x0, 0xF, 0x0, 0x0, 0x46, 0xD5, 0xFE, 0xC5, 0x2, 0xC7, 0x25, 0xC8, 0x25, 0xC8, 0x48, 0xC9, 0x48, 0xC9, 0x25, 0xC8, 0x25, 0xC8, 0x6B, 0xCA, 0x6B, 0xCA, 0x8E, 0xCB, 0xB3, 0xCC, 0xB3, 0xCC, 0xD6, 0xCD, 0x1F, 0xD1, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0xA7, 0x41, 0x82, 0x19, 0x87, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x19, 0x0, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x19, 0x18, 0x0, 0x38, 0x19, 0x0, 0x0, 0x3A, 0x0, 0x0, 0x0, 0x3D, 0x19, 0x0, 0x0, 0x41, 0x0, 0x18, 0x0, 0x3D, 0x19, 0x0, 0x0, 0x3F, 0x0, 0x0, 0x0, 0x3D, 0x19, 0x18, 0x0, 0x0, 0x19, 0x0, 0x0, 0x38, 0x0, 0x18, 0x0, 0x3A, 0x18, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x41, 0x16, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x16, 0x0, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x16, 0x18, 0x0, 0x38, 0x16, 0x0, 0x0, 0x3A, 0x0, 0x0, 0x0, 0x3D, 0x16, 0x0, 0x0, 0x41, 0x0, 0x18, 0x0, 0x3D, 0x16, 0x0, 0x0, 0x3F, 0x0, 0x0, 0x0, 0x3D, 0x16, 0x18, 0x0, 0x0, 0x16, 0x0, 0x0, 0x38, 0x0, 0x18, 0x0, 0x3A, 0x14, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x41, 0x12, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x12, 0x0, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x12, 0x18, 0x0, 0x38, 0x12, 0x0, 0x0, 0x3A, 0x0, 0x0, 0x0, 0x3D, 0x12, 0x0, 0x0, 0x41, 0x0, 0x18, 0x0, 0x3D, 0x12, 0x0, 0x0, 0x3F, 0x0, 0x0, 0x0, 0x3D, 0x12, 0x18, 0x0, 0x0, 0x12, 0x0, 0x0, 0x38, 0x12, 0x18, 0x0, 0x3A, 0x11, 0x18, 0x0, 0x3D, 0x12, 0x0, 0x0, 0x41, 0x14, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x14, 0x0, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x14, 0x18, 0x0, 0x38, 0x14, 0x0, 0x0, 0x3A, 0x0, 0x0, 0x0, 0x3D, 0x14, 0x0, 0x0, 0x41, 0x0, 0x18, 0x0, 0x3D, 0x14, 0x0, 0x0, 0x3F, 0x14, 0x0, 0x0, 0x3D, 0x0, 0x18, 0x0, 0x0, 0x16, 0x0, 0x0, 0x38, 0x0, 0x18, 0x0, 0x3A, 0x18, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x81, 0x41, 0x82, 0x19, 0x85, 0xC, 0x87, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x19, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x19, 0x85, 0xC, 0x18, 0x38, 0x19, 0x0, 0x0, 0x3A, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x19, 0x85, 0xC, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0x19, 0xC, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3D, 0x19, 0x0, 0x0, 0x0, 0x19, 0x85, 0xC, 0x18, 0x38, 0x0, 0xC, 0x18, 0x3A, 0x18, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x41, 0x16, 0x85, 0xC, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x16, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x16, 0x85, 0xC, 0x18, 0x38, 0x16, 0x0, 0x0, 0x3A, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x16, 0x85, 0xC, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0x16, 0xC, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3D, 0x16, 0x0, 0x0, 0x0, 0x16, 0x85, 0xC, 0x18, 0x38, 0x0, 0xC, 0x18, 0x3A, 0x14, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x41, 0x12, 0x85, 0xC, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x12, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0xC, 0x18, 0x38, 0x12, 0x0, 0x0, 0x3A, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x12, 0x85, 0xC, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0x12, 0xC, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3D, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0xC, 0x18, 0x38, 0x12, 0xC, 0x18, 0x3A, 0x11, 0x84, 0x18, 0x18, 0x3D, 0x12, 0x0, 0x0, 0x41, 0x14, 0x85, 0xC, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x14, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0xC, 0x18, 0x38, 0x14, 0x0, 0x0, 0x3A, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x14, 0x85, 0xC, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0x14, 0xC, 0x18, 0x3F, 0x14, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x16, 0x85, 0xC, 0x18, 0x38, 0x0, 0xC, 0x18, 0x3A, 0x18, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x86, 0x35, 0x82, 0x19, 0x85, 0x18, 0x87, 0x18, 0x0, 0x0, 0x0, 0x0, 0x35, 0x19, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x35, 0x19, 0x85, 0x18, 0x18, 0x33, 0x19, 0x0, 0x0, 0x31, 0x0, 0x84, 0x18, 0x0, 0x33, 0x19, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x35, 0x19, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x31, 0x19, 0x0, 0x0, 0x0, 0x19, 0x85, 0x18, 0x18, 0x31, 0x0, 0x18, 0x18, 0x30, 0x18, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0x16, 0x85, 0x18, 0x18, 0x30, 0x0, 0x0, 0x0, 0x2E, 0x16, 0x84, 0x18, 0x18, 0x30, 0x0, 0x0, 0x0, 0x31, 0x16, 0x85, 0x18, 0x18, 0x33, 0x16, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x35, 0x16, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x33, 0x16, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x31, 0x16, 0x0, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x31, 0x0, 0x18, 0x18, 0x33, 0x14, 0x84, 0x18, 0x0, 0x31, 0x0, 0x0, 0x0, 0x35, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x84, 0x18, 0x18, 0x33, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x12, 0x18, 0x18, 0x36, 0x0, 0x84, 0x18, 0x18, 0x33, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x0, 0x0, 0x12, 0x0, 0x0, 0x35, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x84, 0x18, 0x18, 0x33, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x14, 0x18, 0x18, 0x33, 0x14, 0x84, 0x18, 0x18, 0x31, 0x0, 0x0, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x30, 0x0, 0x18, 0x18, 0x0, 0x18, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x2C, 0x82, 0x19, 0x85, 0x18, 0x87, 0x18, 0x0, 0x0, 0x0, 0x0, 0x2A, 0x19, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x29, 0x19, 0x85, 0x18, 0x18, 0x0, 0x19, 0x0, 0x0, 0x2A, 0x0, 0x84, 0x18, 0x0, 0x2C, 0x19, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x19, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0x19, 0x0, 0x0, 0x0, 0x19, 0x85, 0x18, 0x18, 0x0, 0x0, 0x18, 0x18, 0x0, 0x18, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x2E, 0x16, 0x85, 0x18, 0x18, 0x2C, 0x0, 0x0, 0x0, 0x2E, 0x16, 0x84, 0x18, 0x18, 0x2C, 0x0, 0x0, 0x0, 0x2E, 0x16, 0x85, 0x18, 0x18, 0x2C, 0x16, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x2E, 0x16, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x2C, 0x16, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x29, 0x16, 0x0, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x27, 0x0, 0x18, 0x18, 0x0, 0x14, 0x84, 0x18, 0x18, 0x25, 0x0, 0x0, 0x0, 0x29, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x29, 0x12, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x2A, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x29, 0x0, 0x84, 0x18, 0x0, 0x2C, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x31, 0x12, 0x18, 0x18, 0x30, 0x0, 0x84, 0x18, 0x18, 0x31, 0x12, 0x0, 0x0, 0x30, 0x12, 0x85, 0x18, 0x18, 0x2C, 0x12, 0x18, 0x18, 0x27, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x30, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x30, 0x14, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x31, 0x14, 0x85, 0x18, 0x18, 0x0, 0x14, 0x0, 0x0, 0x30, 0x0, 0x84, 0x18, 0x0, 0x33, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x31, 0x14, 0x18, 0x18, 0x30, 0x14, 0x84, 0x18, 0x18, 0x31, 0x0, 0x0, 0x0, 0x30, 0x16, 0x85, 0x18, 0x18, 0x2E, 0x0, 0x18, 0x18, 0x2C, 0x18, 0x84, 0x18, 0x18, 0x2A, 0x0, 0x0, 0x0, 0x81, 0x38, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x36, 0x0, 0x0, 0x0, 0x35, 0xD, 0x84, 0x18, 0x18, 0x38, 0x0, 0x0, 0x0, 0x36, 0xD, 0x85, 0x18, 0x18, 0x35, 0xD, 0x0, 0x0, 0x38, 0x0, 0x84, 0x18, 0x0, 0x36, 0xD, 0x85, 0x18, 0x18, 0x38, 0x0, 0x0, 0x0, 0x36, 0xD, 0x18, 0x18, 0x35, 0x0, 0x84, 0x18, 0x18, 0x38, 0xD, 0x0, 0x0, 0x36, 0xD, 0x85, 0x18, 0x18, 0x35, 0x0, 0x18, 0x18, 0x38, 0xC, 0x84, 0x18, 0x18, 0x36, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x85, 0x18, 0x18, 0x3D, 0xA, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x3C, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3A, 0xA, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x3A, 0xA, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x3A, 0x0, 0x84, 0x18, 0x18, 0x38, 0x14, 0x18, 0x18, 0x0, 0x0, 0x18, 0x0, 0x36, 0x12, 0x85, 0x18, 0x18, 0x35, 0x0, 0x0, 0x0, 0x31, 0x12, 0x84, 0x18, 0x18, 0x36, 0x0, 0x0, 0x0, 0x35, 0x12, 0x85, 0x18, 0x18, 0x31, 0x12, 0x0, 0x0, 0x36, 0x0, 0x84, 0x18, 0x0, 0x35, 0x12, 0x85, 0x18, 0x18, 0x36, 0x0, 0x0, 0x0, 0x35, 0x12, 0x18, 0x18, 0x31, 0x0, 0x84, 0x18, 0x18, 0x36, 0x12, 0x0, 0x0, 0x35, 0x12, 0x85, 0x18, 0x18, 0x31, 0x12, 0x18, 0x18, 0x36, 0x11, 0x84, 0x18, 0x18, 0x35, 0x12, 0x0, 0x0, 0x38, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x38, 0x14, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x38, 0x14, 0x85, 0x18, 0x18, 0x38, 0x14, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x3C, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3C, 0x14, 0x18, 0x18, 0x3C, 0x0, 0x84, 0x18, 0x18, 0x0, 0x14, 0x0, 0x0, 0x3F, 0x12, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3F, 0xF, 0x18, 0x18, 0x0, 0x0, 0x18, 0x0, 0x0, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x0, 0xD, 0x18, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0xD, 0x0, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x0, 0x0, 0x18, 0x18, 0x0, 0xC, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0xA, 0x18, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0xA, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0x14, 0x18, 0x18, 0x0, 0x0, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x14, 0x18, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x18, 0x18, 0x0, 0x14, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x18, 0x18, 0x0, 0xF, 0x84, 0x18, 0x18, 0x0, 0x0, 0x85, 0x18, 0x0, 0x88, 0x41, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0xD, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x0, 0xD, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0xD, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3D, 0xD, 0x0, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x18, 0x18, 0x3C, 0xC, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3A, 0xA, 0x85, 0x18, 0x18, 0x3C, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x84, 0x18, 0x18, 0x3A, 0x0, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0xA, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x38, 0x0, 0x0, 0x0, 0x3A, 0xA, 0x18, 0x18, 0x38, 0x0, 0x84, 0x18, 0x18, 0x35, 0xA, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0x14, 0x18, 0x18, 0x0, 0x0, 0x18, 0x0, 0x42, 0x12, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x12, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x42, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x3F, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3D, 0x12, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x3A, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x41, 0x14, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x41, 0x14, 0x84, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x41, 0x14, 0x85, 0x18, 0x18, 0x3F, 0x14, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x42, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x41, 0x14, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x3F, 0x14, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x18, 0x0, 0xF, 0x18, 0x18, 0x38, 0x0, 0x18, 0x0, 0x88, 0x42, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0xD, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x41, 0xD, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x3F, 0xD, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x41, 0xD, 0x0, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x41, 0x0, 0x18, 0x18, 0x41, 0xC, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x42, 0xA, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0xA, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x41, 0xA, 0x85, 0x18, 0x18, 0x41, 0xA, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x41, 0xA, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x18, 0x3F, 0xA, 0x0, 0x0, 0x3F, 0xA, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3F, 0x14, 0x18, 0x18, 0x3F, 0x0, 0x18, 0x0, 0x42, 0x12, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x12, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x3F, 0x12, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x41, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x42, 0x14, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x14, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x41, 0x14, 0x0, 0x0, 0x3F, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x14, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x18, 0x18, 0x3C, 0x14, 0x84, 0x18, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x3C, 0x0, 0x18, 0x18, 0x3A, 0x18, 0x84, 0x18, 0x18, 0x0, 0x0, 0x85, 0x18, 0x0, 0x86, 0x9F, 0x2C, 0x82, 0x9F, 0x19, 0x85, 0x9F, 0x18, 0x87, 0x9F, 0x18, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x2A, 0x9F, 0x19, 0x84, 0x9F, 0x18, 0x9F, 0x18, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x29, 0x9F, 0x19, 0x85, 0x9F, 0x18, 0x9F, 0x18, 0x9F, 0x0, 0x9F, 0x19, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x2A, 0x9F, 0x0, 0x84, 0x9F, 0x18, 0x9F, 0x0, 0x9F, 0x2C, 0x9F, 0x19, 0x85, 0x9F, 0x18, 0x9F, 0x18, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x19, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x0, 0x84, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x19, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x19, 0x85, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x18, 0x84, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9B, 0x2E, 0x9B, 0x16, 0x85, 0x9B, 0x18, 0x9B, 0x18, 0x9B, 0x2C, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x2E, 0x9B, 0x16, 0x84, 0x9B, 0x18, 0x9B, 0x18, 0x9B, 0x2C, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x2E, 0x9B, 0x16, 0x85, 0x9B, 0x18, 0x9B, 0x18, 0x9B, 0x2C, 0x9B, 0x16, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x0, 0x84, 0x9B, 0x18, 0x9B, 0x0, 0x9B, 0x2E, 0x9B, 0x16, 0x85, 0x9B, 0x18, 0x9B, 0x18, 0x99, 0x0, 0x99, 0x0, 0x99, 0x0, 0x99, 0x0, 0x99, 0x2C, 0x99, 0x16, 0x99, 0x18, 0x99, 0x18, 0x99, 0x0, 0x99, 0x0, 0x84, 0x99, 0x18, 0x99, 0x18, 0x99, 0x29, 0x99, 0x16, 0x99, 0x0, 0x99, 0x0, 0x99, 0x0, 0x99, 0x16, 0x85, 0x99, 0x18, 0x99, 0x18, 0x99, 0x27, 0x99, 0x0, 0x84, 0x99, 0x18, 0x99, 0x18, 0x99, 0x0, 0x99, 0x14, 0x99, 0x18, 0x99, 0x18, 0x99, 0x25, 0x99, 0x0, 0x99, 0x18, 0x99, 0x0, 0x97, 0x29, 0x97, 0x12, 0x85, 0x97, 0x18, 0x97, 0x18, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x29, 0x97, 0x12, 0x84, 0x97, 0x18, 0x97, 0x18, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x2A, 0x97, 0x12, 0x85, 0x97, 0x18, 0x97, 0x18, 0x97, 0x0, 0x97, 0x12, 0x97, 0x0, 0x97, 0x0, 0x97, 0x29, 0x97, 0x0, 0x84, 0x97, 0x18, 0x97, 0x0, 0x97, 0x2C, 0x97, 0x12, 0x85, 0x97, 0x18, 0x97, 0x18, 0x95, 0x0, 0x95, 0x0, 0x95, 0x0, 0x95, 0x0, 0x95, 0x31, 0x95, 0x12, 0x95, 0x18, 0x95, 0x18, 0x95, 0x30, 0x95, 0x0, 0x84, 0x95, 0x18, 0x95, 0x18, 0x95, 0x31, 0x95, 0x12, 0x95, 0x0, 0x95, 0x0, 0x95, 0x30, 0x95, 0x12, 0x85, 0x95, 0x18, 0x95, 0x18, 0x95, 0x2C, 0x95, 0x12, 0x95, 0x18, 0x95, 0x18, 0x95, 0x27, 0x95, 0x11, 0x84, 0x95, 0x18, 0x95, 0x18, 0x95, 0x0, 0x95, 0x12, 0x95, 0x0, 0x95, 0x0, 0x93, 0x30, 0x93, 0x14, 0x85, 0x93, 0x18, 0x93, 0x18, 0x93, 0x0, 0x93, 0x0, 0x93, 0x0, 0x93, 0x0, 0x93, 0x30, 0x93, 0x14, 0x84, 0x93, 0x18, 0x93, 0x18, 0x93, 0x0, 0x93, 0x0, 0x93, 0x0, 0x93, 0x0, 0x92, 0x31, 0x92, 0x14, 0x85, 0x92, 0x18, 0x92, 0x18, 0x92, 0x0, 0x92, 0x14, 0x92, 0x0, 0x92, 0x0, 0x92, 0x30, 0x92, 0x0, 0x84, 0x92, 0x18, 0x92, 0x0, 0x92, 0x33, 0x92, 0x14, 0x85, 0x92, 0x18, 0x92, 0x18, 0x91, 0x0, 0x91, 0x0, 0x91, 0x0, 0x91, 0x0, 0x91, 0x31, 0x91, 0x14, 0x91, 0x18, 0x91, 0x18, 0x91, 0x30, 0x91, 0x0, 0x84, 0x91, 0x18, 0x91, 0x18, 0x91, 0x31, 0x91, 0x14, 0x91, 0x0, 0x91, 0x0, 0x90, 0x30, 0x90, 0x16, 0x85, 0x90, 0x18, 0x90, 0x18, 0x90, 0x2E, 0x90, 0x0, 0x84, 0x90, 0x18, 0x90, 0x18, 0x90, 0x2C, 0x90, 0x18, 0x90, 0x18, 0x90, 0x18, 0x90, 0x2A, 0x90, 0x0, 0x90, 0x18, 0x90, 0x0, 0x88, 0x42, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0xD, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x41, 0xD, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x3F, 0xD, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x41, 0xD, 0x0, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x41, 0x0, 0x18, 0x18, 0x41, 0xC, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x42, 0xA, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0xA, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x41, 0xA, 0x85, 0x18, 0x18, 0x41, 0xA, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x41, 0xA, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x18, 0x3F, 0xA, 0x0, 0x0, 0x3F, 0xA, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3F, 0x14, 0x18, 0x18, 0x3F, 0x0, 0x18, 0x0, 0x42, 0x12, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x12, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x3F, 0x12, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x41, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x42, 0x14, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x14, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x41, 0x14, 0x0, 0x0, 0x3F, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x14, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x18, 0x18, 0x3C, 0x14, 0x84, 0x18, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x3C, 0x0, 0x18, 0x18, 0x3A, 0x18, 0x84, 0x18, 0x18, 0xC1, 0x0, 0x0, 0x85, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; 6 | constexpr MusicData music_1 = { 7 | music_1_data, 8 | 0xC313, 9 | 0xC5BE, 10 | 7, 11 | 0xC313 12 | }; 13 | 14 | 15 | uint8_t music_2_data[] = { 0x39, 0xD6, 0x39, 0xD6, 0x39, 0xD6, 0x59, 0xD6, 0x59, 0xD6, 0x39, 0xD6, 0x39, 0xD6, 0x79, 0xD6, 0x79, 0xD6, 0x39, 0xD6, 0x39, 0xD6, 0x99, 0xD6, 0x99, 0xD6, 0x59, 0xD6, 0x79, 0xD6, 0xB9, 0xD6, 0xB9, 0xD6, 0xD9, 0xD6, 0xD9, 0xD6, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x3B, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0xEC, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0xFC, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x51, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x3B, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x51, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x51, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x51, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xD, 0x1, 0xE, 0x81, 0xF, 0x2, 0xF, 0x82, 0xF, 0x3, 0xF, 0x83, 0xD, 0x0, 0xC, 0x0, 0xB, 0x0, 0x8, 0xFF, 0x1, 0x0, 0xD, 0x6, 0xE, 0x86, 0xF, 0x4, 0xF, 0x84, 0xF, 0x2, 0xF, 0x82, 0xD, 0x1, 0xA, 0x81, 0x8, 0x0, 0x7, 0x0, 0x0, 0xFF, 0x0, 0x0, 0xF, 0x0, 0xF, 0xC, 0xF, 0x18, 0xE, 0x0, 0xD, 0xC, 0xC, 0x18, 0x8, 0x0, 0xFF, 0x1C, 0xB, 0x1A, 0xA, 0x18, 0x8, 0x16, 0x6, 0x14, 0x4, 0x0, 0x0, 0x0, 0xFF, 0x0, 0xFF, 0x2, 0x88, 0xF, 0x86, 0xF, 0x84, 0xE, 0x82, 0xE, 0x82, 0xD, 0x1D, 0xD, 0x81, 0xC, 0x80, 0xA, 0x0, 0x0, 0xFF, 0x2, 0x3C, 0xF, 0x32, 0xF, 0x28, 0xE, 0x1E, 0xD, 0x14, 0xB, 0xA, 0x8, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xC, 0x1, 0xD, 0x0, 0xC, 0x1, 0xB, 0x0, 0xA, 0x1, 0x9, 0x0, 0x6, 0x0, 0x3, 0x0, 0x0, 0xFF, 0x2, 0x46, 0xF, 0x84, 0xF, 0x3C, 0xE, 0x84, 0xD, 0x32, 0xD, 0x84, 0xD, 0x28, 0xC, 0x1E, 0xC, 0x14, 0xB, 0xA, 0x8, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xD, 0x2, 0xE, 0x4, 0xF, 0x8, 0xF, 0xA, 0xE, 0xC, 0xD, 0xE, 0x8, 0x0, 0x8, 0xFF, 0x0, 0x0, 0xF, 0xC, 0xF, 0x0, 0xE, 0xC, 0xE, 0x0, 0xD, 0xC, 0xC, 0x0, 0x8, 0xFF, 0x0, 0x0, 0xF, 0xC, 0xF, 0x18, 0xE, 0x0, 0xE, 0xC, 0xD, 0x18, 0xC, 0x0, 0x8, 0xFF, 0x0, 0x0, 0x29, 0xE, 0x5D, 0xD, 0x9C, 0xC, 0xE7, 0xB, 0x3C, 0xB, 0x9B, 0xA, 0x2, 0xA, 0x73, 0x9, 0xEB, 0x8, 0x6B, 0x8, 0xF2, 0x7, 0x80, 0x7, 0x14, 0x7, 0xAE, 0x6, 0x4E, 0x6, 0xF4, 0x5, 0x9E, 0x5, 0x4D, 0x5, 0x1, 0x5, 0xB9, 0x4, 0x75, 0x4, 0x35, 0x4, 0xF9, 0x3, 0xC0, 0x3, 0x8A, 0x3, 0x57, 0x3, 0x27, 0x3, 0xFA, 0x2, 0xCF, 0x2, 0xA7, 0x2, 0x81, 0x2, 0x5D, 0x2, 0x3B, 0x2, 0x1B, 0x2, 0xFC, 0x1, 0xE0, 0x1, 0xC5, 0x1, 0xAC, 0x1, 0x94, 0x1, 0x7D, 0x1, 0x68, 0x1, 0x53, 0x1, 0x40, 0x1, 0x2E, 0x1, 0x1D, 0x1, 0xD, 0x1, 0xFE, 0x0, 0xF0, 0x0, 0xE2, 0x0, 0xD6, 0x0, 0xCA, 0x0, 0xBE, 0x0, 0xB4, 0x0, 0xAA, 0x0, 0xA0, 0x0, 0x97, 0x0, 0x8F, 0x0, 0x87, 0x0, 0x7F, 0x0, 0x78, 0x0, 0x71, 0x0, 0x6B, 0x0, 0x65, 0x0, 0x5F, 0x0, 0x5A, 0x0, 0x55, 0x0, 0x50, 0x0, 0x4C, 0x0, 0x47, 0x0, 0x43, 0x0, 0x40, 0x0, 0x3C, 0x0, 0x39, 0x0, 0x35, 0x0, 0x32, 0x0, 0x30, 0x0, 0x2D, 0x0, 0x2A, 0x0, 0x28, 0x0, 0x26, 0x0, 0x24, 0x0, 0x22, 0x0, 0x20, 0x0, 0x1E, 0x0, 0x1C, 0x0, 0x1B, 0x0, 0x19, 0x0, 0x18, 0x0, 0x16, 0x0, 0x15, 0x0, 0x14, 0x0, 0x13, 0x0, 0x12, 0x0, 0x11, 0x0, 0x10, 0x0, 0xF, 0x0, 0x0, 0x3A, 0xE7, 0x27, 0xDA, 0x11, 0xD9, 0x11, 0xD9, 0x64, 0xDD, 0xAC, 0xE0, 0x11, 0xD9, 0x11, 0xD9, 0x4C, 0xDC, 0xC4, 0xE1, 0x11, 0xD9, 0xF4, 0xE3, 0xDC, 0xE2, 0x34, 0xDB, 0x4C, 0xDC, 0xAC, 0xE0, 0x7C, 0xDE, 0xA, 0xE5, 0x94, 0xDF, 0x22, 0xE6, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xA7, 0xC, 0x89, 0x30, 0x85, 0x18, 0x86, 0x34, 0x0, 0x0, 0x0, 0x32, 0xC, 0x30, 0x18, 0x34, 0x18, 0x2D, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x28, 0x85, 0x18, 0x0, 0xB, 0x2B, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xB, 0x2D, 0x18, 0x34, 0x17, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x30, 0x85, 0x18, 0x0, 0x9, 0x0, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x9, 0x0, 0x18, 0x34, 0x15, 0x0, 0x84, 0x18, 0x39, 0x0, 0x30, 0x0, 0x0, 0x9, 0x32, 0x85, 0x18, 0x0, 0x7, 0x34, 0x18, 0x37, 0x0, 0x32, 0x0, 0x0, 0x7, 0x30, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x85, 0x18, 0x0, 0xC, 0x30, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xC, 0x30, 0x18, 0x34, 0x18, 0x2D, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x28, 0x85, 0x18, 0x0, 0xB, 0x2B, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xB, 0x2D, 0x18, 0x34, 0x17, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x30, 0x85, 0x18, 0x0, 0x9, 0x0, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x9, 0x0, 0x18, 0x34, 0x15, 0x0, 0x84, 0x18, 0x39, 0x0, 0x30, 0x0, 0x0, 0x9, 0x32, 0x85, 0x18, 0x0, 0x7, 0x35, 0x18, 0x37, 0x0, 0x34, 0x0, 0x0, 0x7, 0x32, 0x18, 0x0, 0x13, 0x34, 0x84, 0x18, 0x0, 0x0, 0x32, 0x0, 0x0, 0xC0, 0x7, 0x30, 0x85, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xA7, 0xC, 0x0, 0x0, 0x87, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x0, 0x48, 0x18, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x0, 0x48, 0xB, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x0, 0x48, 0x17, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x0, 0x48, 0x9, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x48, 0x15, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x48, 0x7, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x48, 0x13, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x48, 0x7, 0x0, 0x0, 0x48, 0xC, 0x0, 0x85, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x48, 0x18, 0x0, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x85, 0x18, 0x48, 0xB, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x18, 0x48, 0x17, 0x0, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x85, 0x18, 0x48, 0x9, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x18, 0x48, 0x15, 0x0, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x85, 0x18, 0x48, 0x7, 0x0, 0x18, 0x48, 0x0, 0x89, 0x24, 0x0, 0x0, 0x7, 0x28, 0x18, 0x48, 0x13, 0x2B, 0x84, 0x18, 0x48, 0x0, 0x2D, 0x18, 0x48, 0xC0, 0x7, 0x2F, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x2D, 0x85, 0x18, 0x86, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x11, 0x2D, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x13, 0x2F, 0x18, 0x47, 0x0, 0x30, 0x0, 0x48, 0x13, 0x32, 0x18, 0x4A, 0x1F, 0x30, 0x84, 0x18, 0x48, 0x0, 0x2F, 0x0, 0x47, 0x13, 0x2B, 0x85, 0x18, 0x43, 0x13, 0x2F, 0x18, 0x47, 0x0, 0x30, 0x0, 0x48, 0x13, 0x32, 0x18, 0x4A, 0x1F, 0x30, 0x84, 0x18, 0x48, 0x0, 0x2F, 0x85, 0x18, 0x47, 0x13, 0x2B, 0x84, 0x18, 0x43, 0x11, 0x2D, 0x85, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x11, 0x2D, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0xE, 0x32, 0x18, 0x4A, 0x0, 0x34, 0x0, 0x4C, 0xE, 0x35, 0x18, 0x4D, 0x1A, 0x34, 0x84, 0x18, 0x4C, 0x0, 0x32, 0x0, 0x4A, 0xE, 0x30, 0x85, 0x18, 0x48, 0xE, 0x32, 0x18, 0x47, 0x0, 0x34, 0x0, 0x48, 0xE, 0x35, 0x18, 0x4A, 0x1A, 0x34, 0x84, 0x18, 0x48, 0x0, 0x32, 0x85, 0x18, 0x47, 0xC0, 0xE, 0x30, 0x84, 0x18, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x35, 0x85, 0x18, 0x86, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x35, 0x18, 0x35, 0x1D, 0x34, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x34, 0x85, 0x18, 0x30, 0x11, 0x32, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x34, 0x18, 0x35, 0x1D, 0x30, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x32, 0x85, 0x18, 0x30, 0x13, 0x0, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x13, 0x2B, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x13, 0x2B, 0x85, 0x18, 0x37, 0x13, 0x0, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x35, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x37, 0x11, 0x35, 0x85, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x35, 0x18, 0x35, 0x1D, 0x34, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x34, 0x85, 0x18, 0x30, 0x11, 0x32, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x34, 0x18, 0x35, 0x1D, 0x35, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x39, 0x85, 0x18, 0x30, 0x13, 0x0, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0x13, 0x37, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0x13, 0x32, 0x85, 0x18, 0x37, 0x13, 0x0, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x39, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0x13, 0x0, 0x84, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x2D, 0x85, 0x18, 0x86, 0x35, 0x0, 0x0, 0x0, 0x34, 0x11, 0x2D, 0x18, 0x30, 0x1D, 0x2F, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x2F, 0x85, 0x18, 0x0, 0x11, 0x30, 0x18, 0x35, 0x0, 0x0, 0x0, 0x34, 0x11, 0x32, 0x18, 0x30, 0x1D, 0x0, 0x84, 0x18, 0x35, 0x0, 0x39, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x18, 0x37, 0x0, 0x0, 0x0, 0x35, 0x13, 0x34, 0x18, 0x30, 0x1F, 0x0, 0x84, 0x18, 0x37, 0x0, 0x32, 0x0, 0x0, 0x13, 0x0, 0x85, 0x18, 0x0, 0x13, 0x2F, 0x18, 0x37, 0x0, 0x0, 0x0, 0x35, 0x13, 0x0, 0x18, 0x30, 0x1F, 0x0, 0x84, 0x18, 0x37, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x11, 0x39, 0x85, 0x18, 0x35, 0x0, 0x37, 0x0, 0x34, 0x11, 0x34, 0x18, 0x30, 0x1D, 0x32, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x11, 0x39, 0x18, 0x35, 0x0, 0x37, 0x0, 0x34, 0x11, 0x34, 0x18, 0x30, 0x1D, 0x32, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x13, 0x39, 0x18, 0x39, 0x0, 0x37, 0x0, 0x37, 0x13, 0x32, 0x18, 0x32, 0x1F, 0x39, 0x84, 0x18, 0x39, 0x0, 0x37, 0x0, 0x0, 0x13, 0x32, 0x85, 0x18, 0x0, 0x13, 0x39, 0x18, 0x39, 0x0, 0x37, 0x0, 0x37, 0x13, 0x32, 0x18, 0x32, 0x1F, 0x30, 0x84, 0x18, 0x39, 0x0, 0x2F, 0x85, 0x18, 0x0, 0xC0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xC, 0x89, 0x34, 0x85, 0x18, 0x86, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x30, 0x18, 0x48, 0x18, 0x32, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x48, 0xC, 0x30, 0x85, 0x18, 0x0, 0xC, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x0, 0x18, 0x34, 0x84, 0x18, 0x0, 0x0, 0x35, 0x0, 0x0, 0xC, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x18, 0x4F, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x18, 0x4F, 0x1F, 0x0, 0x84, 0x18, 0x4F, 0x0, 0x0, 0x0, 0x4F, 0x13, 0x0, 0x85, 0x18, 0x0, 0x13, 0x39, 0x18, 0x4F, 0x0, 0x37, 0x0, 0x0, 0x13, 0x34, 0x18, 0x0, 0x1F, 0x32, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0xC, 0x37, 0x85, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x35, 0x18, 0x48, 0x18, 0x34, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x48, 0xC, 0x37, 0x85, 0x18, 0x0, 0xC, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x37, 0x18, 0x0, 0x18, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x37, 0x85, 0x18, 0x0, 0x11, 0x0, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x0, 0x11, 0x35, 0x18, 0x4D, 0x1D, 0x0, 0x84, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x4D, 0x11, 0x34, 0x85, 0x18, 0x0, 0x11, 0x0, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x0, 0x11, 0x32, 0x18, 0x0, 0x1D, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0x11, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x35, 0x85, 0x18, 0x86, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x18, 0x3E, 0x1D, 0x35, 0x84, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x85, 0x18, 0x3E, 0x11, 0x35, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x18, 0x3E, 0x1D, 0x35, 0x84, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x85, 0x18, 0x3E, 0xC, 0x34, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x34, 0x84, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x85, 0x18, 0x3C, 0xC, 0x34, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x34, 0x84, 0x18, 0x40, 0x0, 0x32, 0x85, 0x18, 0x3E, 0xC, 0x30, 0x84, 0x18, 0x3C, 0x13, 0x32, 0x85, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x18, 0x3B, 0x1F, 0x32, 0x84, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x85, 0x18, 0x3B, 0x13, 0x32, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x18, 0x3B, 0x1F, 0x32, 0x84, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x85, 0x18, 0x3B, 0xC, 0x30, 0x18, 0x3C, 0x0, 0x2D, 0x0, 0x39, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x2B, 0x84, 0x18, 0x37, 0x0, 0x28, 0x0, 0x34, 0xC, 0x30, 0x85, 0x18, 0x3C, 0xC, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x0, 0x18, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0xC, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x2D, 0x85, 0x18, 0x86, 0x35, 0x0, 0x0, 0x0, 0x34, 0x11, 0x2D, 0x18, 0x30, 0x1D, 0x2F, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x2F, 0x85, 0x18, 0x0, 0x11, 0x30, 0x18, 0x35, 0x0, 0x0, 0x0, 0x34, 0x11, 0x32, 0x18, 0x30, 0x1D, 0x0, 0x84, 0x18, 0x35, 0x0, 0x39, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x18, 0x37, 0x0, 0x0, 0x0, 0x35, 0x13, 0x34, 0x18, 0x30, 0x1F, 0x0, 0x84, 0x18, 0x37, 0x0, 0x32, 0x0, 0x0, 0x13, 0x0, 0x85, 0x18, 0x0, 0x13, 0x2F, 0x18, 0x37, 0x0, 0x0, 0x0, 0x35, 0x13, 0x0, 0x18, 0x30, 0x1F, 0x0, 0x84, 0x18, 0x37, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x11, 0x39, 0x85, 0x18, 0x35, 0x0, 0x37, 0x0, 0x34, 0x11, 0x34, 0x18, 0x30, 0x1D, 0x32, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x11, 0x39, 0x18, 0x35, 0x0, 0x37, 0x0, 0x34, 0x11, 0x34, 0x18, 0x30, 0x1D, 0x32, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0xE, 0x39, 0x18, 0x39, 0x0, 0x37, 0x0, 0x37, 0xE, 0x32, 0x18, 0x32, 0x1A, 0x39, 0x84, 0x18, 0x39, 0x0, 0x37, 0x0, 0x0, 0xE, 0x32, 0x85, 0x18, 0x0, 0x7, 0x39, 0x18, 0x39, 0x0, 0x37, 0x0, 0x37, 0x7, 0x32, 0x18, 0x32, 0x13, 0x30, 0x84, 0x18, 0x39, 0x0, 0x2F, 0x85, 0x18, 0x0, 0xC0, 0x7, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x35, 0x85, 0x18, 0x86, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x35, 0x18, 0x35, 0x1D, 0x34, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x34, 0x85, 0x18, 0x30, 0x11, 0x32, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x34, 0x18, 0x35, 0x1D, 0x30, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x32, 0x85, 0x18, 0x30, 0x13, 0x0, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x13, 0x2B, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x13, 0x2B, 0x85, 0x18, 0x37, 0x13, 0x0, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x13, 0x37, 0x18, 0x37, 0x1F, 0x35, 0x84, 0x18, 0x35, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x84, 0x18, 0x37, 0x11, 0x35, 0x85, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x35, 0x18, 0x35, 0x1D, 0x34, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x34, 0x85, 0x18, 0x30, 0x11, 0x32, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x34, 0x18, 0x35, 0x1D, 0x35, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x39, 0x85, 0x18, 0x30, 0xE, 0x0, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0xE, 0x37, 0x18, 0x37, 0x1A, 0x0, 0x84, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0xE, 0x32, 0x85, 0x18, 0x37, 0x7, 0x0, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x18, 0x37, 0x13, 0x0, 0x84, 0x18, 0x39, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0x7, 0x0, 0x84, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x2D, 0x85, 0x18, 0x86, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x11, 0x2D, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x13, 0x2F, 0x18, 0x47, 0x0, 0x30, 0x0, 0x48, 0x13, 0x32, 0x18, 0x4A, 0x1F, 0x30, 0x84, 0x18, 0x48, 0x0, 0x2F, 0x0, 0x47, 0x13, 0x2B, 0x85, 0x18, 0x43, 0x13, 0x2F, 0x18, 0x47, 0x0, 0x30, 0x0, 0x48, 0x13, 0x32, 0x18, 0x4A, 0x1F, 0x30, 0x84, 0x18, 0x48, 0x0, 0x2F, 0x85, 0x18, 0x47, 0x13, 0x2B, 0x84, 0x18, 0x43, 0x11, 0x2D, 0x85, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x11, 0x2D, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0xE, 0x32, 0x18, 0x4A, 0x0, 0x34, 0x0, 0x4C, 0xE, 0x35, 0x18, 0x4D, 0x1A, 0x34, 0x84, 0x18, 0x4C, 0x0, 0x32, 0x0, 0x4A, 0xE, 0x30, 0x85, 0x18, 0x48, 0x13, 0x32, 0x18, 0x47, 0x0, 0x34, 0x0, 0x48, 0x13, 0x35, 0x18, 0x4A, 0x1F, 0x34, 0x84, 0x18, 0x48, 0x0, 0x32, 0x85, 0x18, 0x47, 0xC0, 0x13, 0x30, 0x84, 0x18, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xA7, 0xC, 0x89, 0x30, 0x85, 0x18, 0x86, 0x34, 0x0, 0x0, 0x0, 0x32, 0xC, 0x30, 0x18, 0x34, 0x18, 0x2D, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x28, 0x85, 0x18, 0x0, 0xB, 0x2B, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xB, 0x2D, 0x18, 0x34, 0x17, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x30, 0x85, 0x18, 0x0, 0x9, 0x0, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x9, 0x0, 0x18, 0x34, 0x15, 0x0, 0x84, 0x18, 0x39, 0x0, 0x30, 0x0, 0x0, 0x9, 0x32, 0x85, 0x18, 0x0, 0x7, 0x34, 0x18, 0x37, 0x0, 0x32, 0x0, 0x0, 0x7, 0x30, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x85, 0x18, 0x0, 0xC, 0x30, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xC, 0x30, 0x18, 0x34, 0x18, 0x2D, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x28, 0x85, 0x18, 0x0, 0xB, 0x2B, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xB, 0x2D, 0x18, 0x34, 0x17, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x30, 0x85, 0x18, 0x0, 0x9, 0x0, 0x18, 0x40, 0x0, 0x0, 0x0, 0x0, 0x9, 0x35, 0x18, 0x41, 0x15, 0x0, 0x84, 0x18, 0x0, 0x0, 0x34, 0x0, 0x40, 0x9, 0x0, 0x85, 0x18, 0x0, 0x7, 0x32, 0x18, 0x3E, 0x0, 0x0, 0x0, 0x0, 0x7, 0x30, 0x18, 0x3C, 0x13, 0x0, 0x84, 0x18, 0x0, 0x0, 0x2F, 0x0, 0x3B, 0xC0, 0x7, 0x0, 0x85, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xC, 0x89, 0x34, 0x85, 0x18, 0x86, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x30, 0x18, 0x48, 0x18, 0x32, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x48, 0xC, 0x30, 0x85, 0x18, 0x0, 0xC, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x0, 0x18, 0x34, 0x84, 0x18, 0x0, 0x0, 0x35, 0x0, 0x0, 0xC, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x18, 0x4F, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x18, 0x4F, 0x1F, 0x0, 0x84, 0x18, 0x4F, 0x0, 0x0, 0x0, 0x4F, 0x13, 0x0, 0x85, 0x18, 0x0, 0x13, 0x39, 0x18, 0x4F, 0x0, 0x37, 0x0, 0x0, 0x13, 0x34, 0x18, 0x0, 0x1F, 0x32, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0xC, 0x37, 0x85, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x35, 0x18, 0x48, 0x18, 0x34, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x48, 0xC, 0x37, 0x85, 0x18, 0x0, 0xC, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x39, 0x18, 0x0, 0x18, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x3A, 0x85, 0x18, 0x0, 0x11, 0x0, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x0, 0x11, 0x39, 0x18, 0x4D, 0x1D, 0x37, 0x84, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x4D, 0x11, 0x35, 0x85, 0x18, 0x0, 0x11, 0x0, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x0, 0x11, 0x34, 0x18, 0x0, 0x1D, 0x32, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0x11, 0x30, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x35, 0x85, 0x18, 0x86, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x18, 0x3E, 0x1D, 0x35, 0x84, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x85, 0x18, 0x3E, 0x11, 0x35, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x18, 0x3E, 0x1D, 0x37, 0x84, 0x18, 0x43, 0x0, 0x35, 0x0, 0x41, 0x11, 0x34, 0x85, 0x18, 0x40, 0xC, 0x34, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x34, 0x84, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x85, 0x18, 0x3C, 0xC, 0x34, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x35, 0x84, 0x18, 0x41, 0x0, 0x34, 0x85, 0x18, 0x40, 0xC, 0x32, 0x84, 0x18, 0x3E, 0x13, 0x32, 0x85, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x18, 0x3B, 0x1F, 0x32, 0x84, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x85, 0x18, 0x3B, 0x13, 0x32, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x18, 0x3B, 0x1F, 0x34, 0x84, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0x13, 0x2F, 0x85, 0x18, 0x3B, 0xC, 0x30, 0x18, 0x3C, 0x0, 0x2D, 0x0, 0x39, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x2B, 0x84, 0x18, 0x37, 0x0, 0x28, 0x0, 0x34, 0xC, 0x30, 0x85, 0x18, 0x3C, 0xC, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x0, 0x18, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0xC, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x2, 0xA6, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x78, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x78, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xFC, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x78, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xAA, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x7D, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xAA, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xBE, 0x80, 0x0, 0x1, 0x53, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0xB, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xDB, 0x2, 0x73, 0x38, 0xD4, 0x3, 0x4D, 0x0, 0xD8, 0x3E, 0x0, 0x0, 0xD5, 0x57, 0x5C, 0x0, 0xDB, 0xB, 0xCE, 0xB, 0xDA, 0x50, 0xCE, 0xB, 0xDB, 0x50, 0x6, 0x17, 0xDC, 0xA, 0xCE, 0xB, 0xE1, 0x50, 0x6, 0x3, 0x7, 0x5C, 0x7C, 0x38, 0xD9, 0xD5, 0x4D, 0x0, 0x0, 0xD5, 0xFD, 0xBF, 0xF9, 0xD7, 0xF4, 0xD3, 0x32, 0xD3, 0xC0, 0x62, 0x2B, 0x2D, 0x65, 0x33, 0xFF, 0xFF, 0xED, 0x10, 0xD, 0x0, 0x9, 0x0, 0x85, 0x1C, 0x10, 0x1C, 0x52, 0x1B, 0x76, 0x1B, 0x3, 0x13, 0x0, 0x3E, 0x0, 0x3C, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x0, 0x0, 0x7C, 0x42, 0x7C, 0x42, 0x42, 0x7C, 0x0, 0x0, 0x3C, 0x42, 0x40, 0x40, 0x42, 0x3C, 0x0, 0x0, 0x78, 0x44, 0x42, 0x42, 0x44, 0x78, 0x0, 0x0, 0x7E, 0x40, 0x7C, 0x40, 0x40, 0x7E, 0x0, 0x0, 0x7E, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x0, 0x0, 0x3C, 0x42, 0x40, 0x4E, 0x42, 0x3C, 0x0, 0x0, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x0, 0x0, 0x3E, 0x8, 0x8, 0x8, 0x8, 0x3E, 0x0, 0x0, 0x2, 0x2, 0x2, 0x42, 0x42, 0x3C, 0x0, 0x0, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x0, 0x0, 0x42, 0x66, 0x5A, 0x42, 0x42, 0x42, 0x0, 0x0, 0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x0, 0x0, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x0, 0x0, 0x7C, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x0, 0x0, 0x3C, 0x42, 0x42, 0x52, 0x4A, 0x3C, 0x0, 0x0, 0x7C, 0x42, 0x42, 0x7C, 0x44, 0x42, 0x0, 0x0, 0x3C, 0x40, 0x3C, 0x2, 0x42, 0x3C, 0x0, 0x0, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0, 0x0, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; 16 | constexpr MusicData music_2 = { 17 | music_2_data, 18 | 0xD613, 19 | 0xD8D1, 20 | 7, 21 | 0xD613 22 | }; 23 | 24 | MusicData get_music_data_1() { 25 | return music_1; 26 | } 27 | 28 | MusicData get_music_data_2() { 29 | return music_2; 30 | } 31 | -------------------------------------------------------------------------------- /arduino-sketch/music_data.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "music_data.h" 4 | 5 | const PROGMEM uint8_t music_1_data[] = { 0x31, 0xC3, 0x31, 0xC3, 0x51, 0xC3, 0x51, 0xC3, 0x71, 0xC3, 0x71, 0xC3, 0x51, 0xC3, 0x51, 0xC3, 0x91, 0xC3, 0x91, 0xC3, 0xD1, 0xC3, 0x91, 0xC3, 0x91, 0xC3, 0xB1, 0xC3, 0xB1, 0xC3, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x5F, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0xD7, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x33, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0xAF, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0xE9, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0xE9, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0xD7, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0x33, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x33, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0xD7, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x47, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x5F, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0x33, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x5F, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0x33, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0xC4, 0xD7, 0xC4, 0x33, 0xC4, 0xC5, 0xC4, 0x71, 0xC4, 0x9F, 0xC4, 0x5F, 0xC4, 0x89, 0xC4, 0x47, 0xC4, 0x33, 0xC4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xD, 0x1, 0xE, 0x81, 0xF, 0x2, 0xE, 0x82, 0xD, 0x3, 0xC, 0x83, 0xB, 0x0, 0xA, 0x0, 0x8, 0xFF, 0x1, 0x0, 0xD, 0x1, 0xE, 0x2, 0xF, 0x0, 0xF, 0x1, 0xF, 0x2, 0xF, 0x3, 0xD, 0x2, 0xA, 0x1, 0x8, 0x0, 0x7, 0x0, 0x6, 0xFF, 0x0, 0x0, 0xF, 0x0, 0xF, 0xC, 0xF, 0x18, 0xE, 0x0, 0xD, 0xC, 0xC, 0x18, 0x8, 0x0, 0x0, 0xFF, 0x2, 0x46, 0xF, 0x84, 0xF, 0x3C, 0xE, 0x84, 0xD, 0x32, 0xD, 0x84, 0xD, 0x28, 0xC, 0x1E, 0xC, 0x14, 0xB, 0xA, 0x8, 0x0, 0x0, 0xFF, 0x0, 0xFF, 0x2, 0x88, 0xF, 0x86, 0xF, 0x84, 0xE, 0x82, 0xE, 0x82, 0xD, 0x1D, 0xD, 0x81, 0xC, 0x80, 0xA, 0x0, 0x0, 0xFF, 0x2, 0x3C, 0xF, 0x32, 0xF, 0x28, 0xE, 0x1E, 0xD, 0x14, 0xB, 0xA, 0x8, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xF, 0xC, 0xF, 0x0, 0xE, 0xC, 0xD, 0x0, 0xC, 0xC, 0xA, 0x0, 0x8, 0x18, 0x6, 0x0, 0x4, 0x18, 0x2, 0xFF, 0x1, 0x0, 0xD, 0x2, 0xE, 0x4, 0xF, 0x8, 0xF, 0xA, 0xE, 0xC, 0xD, 0xE, 0x8, 0x0, 0x8, 0xFF, 0x0, 0x0, 0xF, 0xC, 0xF, 0x0, 0xE, 0xC, 0xE, 0x0, 0xD, 0xC, 0xC, 0x0, 0x8, 0x0, 0x0, 0xFF, 0x0, 0x0, 0xF, 0xC, 0xF, 0x18, 0xE, 0x0, 0xE, 0xC, 0xD, 0x18, 0xC, 0x0, 0x8, 0xFF, 0x0, 0x0, 0x29, 0xE, 0x5D, 0xD, 0x9C, 0xC, 0xE7, 0xB, 0x3C, 0xB, 0x9B, 0xA, 0x2, 0xA, 0x73, 0x9, 0xEB, 0x8, 0x6B, 0x8, 0xF2, 0x7, 0x80, 0x7, 0x14, 0x7, 0xAE, 0x6, 0x4E, 0x6, 0xF4, 0x5, 0x9E, 0x5, 0x4D, 0x5, 0x1, 0x5, 0xB9, 0x4, 0x75, 0x4, 0x35, 0x4, 0xF9, 0x3, 0xC0, 0x3, 0x8A, 0x3, 0x57, 0x3, 0x27, 0x3, 0xFA, 0x2, 0xCF, 0x2, 0xA7, 0x2, 0x81, 0x2, 0x5D, 0x2, 0x3B, 0x2, 0x1B, 0x2, 0xFC, 0x1, 0xE0, 0x1, 0xC5, 0x1, 0xAC, 0x1, 0x94, 0x1, 0x7D, 0x1, 0x68, 0x1, 0x53, 0x1, 0x40, 0x1, 0x2E, 0x1, 0x1D, 0x1, 0xD, 0x1, 0xFE, 0x0, 0xF0, 0x0, 0xE2, 0x0, 0xD6, 0x0, 0xCA, 0x0, 0xBE, 0x0, 0xB4, 0x0, 0xAA, 0x0, 0xA0, 0x0, 0x97, 0x0, 0x8F, 0x0, 0x87, 0x0, 0x7F, 0x0, 0x78, 0x0, 0x71, 0x0, 0x6B, 0x0, 0x65, 0x0, 0x5F, 0x0, 0x5A, 0x0, 0x55, 0x0, 0x50, 0x0, 0x4C, 0x0, 0x47, 0x0, 0x43, 0x0, 0x40, 0x0, 0x3C, 0x0, 0x39, 0x0, 0x35, 0x0, 0x32, 0x0, 0x30, 0x0, 0x2D, 0x0, 0x2A, 0x0, 0x28, 0x0, 0x26, 0x0, 0x24, 0x0, 0x22, 0x0, 0x20, 0x0, 0x1E, 0x0, 0x1C, 0x0, 0x1B, 0x0, 0x19, 0x0, 0x18, 0x0, 0x16, 0x0, 0x15, 0x0, 0x14, 0x0, 0x13, 0x0, 0x12, 0x0, 0x11, 0x0, 0x10, 0x0, 0xF, 0x0, 0x0, 0x46, 0xD5, 0xFE, 0xC5, 0x2, 0xC7, 0x25, 0xC8, 0x25, 0xC8, 0x48, 0xC9, 0x48, 0xC9, 0x25, 0xC8, 0x25, 0xC8, 0x6B, 0xCA, 0x6B, 0xCA, 0x8E, 0xCB, 0xB3, 0xCC, 0xB3, 0xCC, 0xD6, 0xCD, 0x1F, 0xD1, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0xA7, 0x41, 0x82, 0x19, 0x87, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x19, 0x0, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x19, 0x18, 0x0, 0x38, 0x19, 0x0, 0x0, 0x3A, 0x0, 0x0, 0x0, 0x3D, 0x19, 0x0, 0x0, 0x41, 0x0, 0x18, 0x0, 0x3D, 0x19, 0x0, 0x0, 0x3F, 0x0, 0x0, 0x0, 0x3D, 0x19, 0x18, 0x0, 0x0, 0x19, 0x0, 0x0, 0x38, 0x0, 0x18, 0x0, 0x3A, 0x18, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x41, 0x16, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x16, 0x0, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x16, 0x18, 0x0, 0x38, 0x16, 0x0, 0x0, 0x3A, 0x0, 0x0, 0x0, 0x3D, 0x16, 0x0, 0x0, 0x41, 0x0, 0x18, 0x0, 0x3D, 0x16, 0x0, 0x0, 0x3F, 0x0, 0x0, 0x0, 0x3D, 0x16, 0x18, 0x0, 0x0, 0x16, 0x0, 0x0, 0x38, 0x0, 0x18, 0x0, 0x3A, 0x14, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x41, 0x12, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x12, 0x0, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x12, 0x18, 0x0, 0x38, 0x12, 0x0, 0x0, 0x3A, 0x0, 0x0, 0x0, 0x3D, 0x12, 0x0, 0x0, 0x41, 0x0, 0x18, 0x0, 0x3D, 0x12, 0x0, 0x0, 0x3F, 0x0, 0x0, 0x0, 0x3D, 0x12, 0x18, 0x0, 0x0, 0x12, 0x0, 0x0, 0x38, 0x12, 0x18, 0x0, 0x3A, 0x11, 0x18, 0x0, 0x3D, 0x12, 0x0, 0x0, 0x41, 0x14, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x14, 0x0, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x14, 0x18, 0x0, 0x38, 0x14, 0x0, 0x0, 0x3A, 0x0, 0x0, 0x0, 0x3D, 0x14, 0x0, 0x0, 0x41, 0x0, 0x18, 0x0, 0x3D, 0x14, 0x0, 0x0, 0x3F, 0x14, 0x0, 0x0, 0x3D, 0x0, 0x18, 0x0, 0x0, 0x16, 0x0, 0x0, 0x38, 0x0, 0x18, 0x0, 0x3A, 0x18, 0x18, 0x0, 0x3D, 0x0, 0x0, 0x0, 0x81, 0x41, 0x82, 0x19, 0x85, 0xC, 0x87, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x19, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x19, 0x85, 0xC, 0x18, 0x38, 0x19, 0x0, 0x0, 0x3A, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x19, 0x85, 0xC, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0x19, 0xC, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3D, 0x19, 0x0, 0x0, 0x0, 0x19, 0x85, 0xC, 0x18, 0x38, 0x0, 0xC, 0x18, 0x3A, 0x18, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x41, 0x16, 0x85, 0xC, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x16, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x16, 0x85, 0xC, 0x18, 0x38, 0x16, 0x0, 0x0, 0x3A, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x16, 0x85, 0xC, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0x16, 0xC, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3D, 0x16, 0x0, 0x0, 0x0, 0x16, 0x85, 0xC, 0x18, 0x38, 0x0, 0xC, 0x18, 0x3A, 0x14, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x41, 0x12, 0x85, 0xC, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x12, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0xC, 0x18, 0x38, 0x12, 0x0, 0x0, 0x3A, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x12, 0x85, 0xC, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0x12, 0xC, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3D, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0xC, 0x18, 0x38, 0x12, 0xC, 0x18, 0x3A, 0x11, 0x84, 0x18, 0x18, 0x3D, 0x12, 0x0, 0x0, 0x41, 0x14, 0x85, 0xC, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3F, 0x14, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0xC, 0x18, 0x38, 0x14, 0x0, 0x0, 0x3A, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x14, 0x85, 0xC, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0x14, 0xC, 0x18, 0x3F, 0x14, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x0, 0x16, 0x85, 0xC, 0x18, 0x38, 0x0, 0xC, 0x18, 0x3A, 0x18, 0x84, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x86, 0x35, 0x82, 0x19, 0x85, 0x18, 0x87, 0x18, 0x0, 0x0, 0x0, 0x0, 0x35, 0x19, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x35, 0x19, 0x85, 0x18, 0x18, 0x33, 0x19, 0x0, 0x0, 0x31, 0x0, 0x84, 0x18, 0x0, 0x33, 0x19, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x35, 0x19, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x31, 0x19, 0x0, 0x0, 0x0, 0x19, 0x85, 0x18, 0x18, 0x31, 0x0, 0x18, 0x18, 0x30, 0x18, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0x16, 0x85, 0x18, 0x18, 0x30, 0x0, 0x0, 0x0, 0x2E, 0x16, 0x84, 0x18, 0x18, 0x30, 0x0, 0x0, 0x0, 0x31, 0x16, 0x85, 0x18, 0x18, 0x33, 0x16, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x35, 0x16, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x33, 0x16, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x31, 0x16, 0x0, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x31, 0x0, 0x18, 0x18, 0x33, 0x14, 0x84, 0x18, 0x0, 0x31, 0x0, 0x0, 0x0, 0x35, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x84, 0x18, 0x18, 0x33, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x12, 0x18, 0x18, 0x36, 0x0, 0x84, 0x18, 0x18, 0x33, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x0, 0x0, 0x12, 0x0, 0x0, 0x35, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x84, 0x18, 0x18, 0x33, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x14, 0x18, 0x18, 0x33, 0x14, 0x84, 0x18, 0x18, 0x31, 0x0, 0x0, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x30, 0x0, 0x18, 0x18, 0x0, 0x18, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x2C, 0x82, 0x19, 0x85, 0x18, 0x87, 0x18, 0x0, 0x0, 0x0, 0x0, 0x2A, 0x19, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x29, 0x19, 0x85, 0x18, 0x18, 0x0, 0x19, 0x0, 0x0, 0x2A, 0x0, 0x84, 0x18, 0x0, 0x2C, 0x19, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x19, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0x19, 0x0, 0x0, 0x0, 0x19, 0x85, 0x18, 0x18, 0x0, 0x0, 0x18, 0x18, 0x0, 0x18, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x2E, 0x16, 0x85, 0x18, 0x18, 0x2C, 0x0, 0x0, 0x0, 0x2E, 0x16, 0x84, 0x18, 0x18, 0x2C, 0x0, 0x0, 0x0, 0x2E, 0x16, 0x85, 0x18, 0x18, 0x2C, 0x16, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x2E, 0x16, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x2C, 0x16, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x29, 0x16, 0x0, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x27, 0x0, 0x18, 0x18, 0x0, 0x14, 0x84, 0x18, 0x18, 0x25, 0x0, 0x0, 0x0, 0x29, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x29, 0x12, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x2A, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x29, 0x0, 0x84, 0x18, 0x0, 0x2C, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x31, 0x12, 0x18, 0x18, 0x30, 0x0, 0x84, 0x18, 0x18, 0x31, 0x12, 0x0, 0x0, 0x30, 0x12, 0x85, 0x18, 0x18, 0x2C, 0x12, 0x18, 0x18, 0x27, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x30, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x30, 0x14, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x31, 0x14, 0x85, 0x18, 0x18, 0x0, 0x14, 0x0, 0x0, 0x30, 0x0, 0x84, 0x18, 0x0, 0x33, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x31, 0x14, 0x18, 0x18, 0x30, 0x14, 0x84, 0x18, 0x18, 0x31, 0x0, 0x0, 0x0, 0x30, 0x16, 0x85, 0x18, 0x18, 0x2E, 0x0, 0x18, 0x18, 0x2C, 0x18, 0x84, 0x18, 0x18, 0x2A, 0x0, 0x0, 0x0, 0x81, 0x38, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x36, 0x0, 0x0, 0x0, 0x35, 0xD, 0x84, 0x18, 0x18, 0x38, 0x0, 0x0, 0x0, 0x36, 0xD, 0x85, 0x18, 0x18, 0x35, 0xD, 0x0, 0x0, 0x38, 0x0, 0x84, 0x18, 0x0, 0x36, 0xD, 0x85, 0x18, 0x18, 0x38, 0x0, 0x0, 0x0, 0x36, 0xD, 0x18, 0x18, 0x35, 0x0, 0x84, 0x18, 0x18, 0x38, 0xD, 0x0, 0x0, 0x36, 0xD, 0x85, 0x18, 0x18, 0x35, 0x0, 0x18, 0x18, 0x38, 0xC, 0x84, 0x18, 0x18, 0x36, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x85, 0x18, 0x18, 0x3D, 0xA, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x3C, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3A, 0xA, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x3A, 0xA, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x3A, 0x0, 0x84, 0x18, 0x18, 0x38, 0x14, 0x18, 0x18, 0x0, 0x0, 0x18, 0x0, 0x36, 0x12, 0x85, 0x18, 0x18, 0x35, 0x0, 0x0, 0x0, 0x31, 0x12, 0x84, 0x18, 0x18, 0x36, 0x0, 0x0, 0x0, 0x35, 0x12, 0x85, 0x18, 0x18, 0x31, 0x12, 0x0, 0x0, 0x36, 0x0, 0x84, 0x18, 0x0, 0x35, 0x12, 0x85, 0x18, 0x18, 0x36, 0x0, 0x0, 0x0, 0x35, 0x12, 0x18, 0x18, 0x31, 0x0, 0x84, 0x18, 0x18, 0x36, 0x12, 0x0, 0x0, 0x35, 0x12, 0x85, 0x18, 0x18, 0x31, 0x12, 0x18, 0x18, 0x36, 0x11, 0x84, 0x18, 0x18, 0x35, 0x12, 0x0, 0x0, 0x38, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x38, 0x14, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x38, 0x14, 0x85, 0x18, 0x18, 0x38, 0x14, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x3C, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3C, 0x14, 0x18, 0x18, 0x3C, 0x0, 0x84, 0x18, 0x18, 0x0, 0x14, 0x0, 0x0, 0x3F, 0x12, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3F, 0xF, 0x18, 0x18, 0x0, 0x0, 0x18, 0x0, 0x0, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x0, 0xD, 0x18, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0xD, 0x0, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x0, 0x0, 0x18, 0x18, 0x0, 0xC, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0xA, 0x18, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0xA, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0x14, 0x18, 0x18, 0x0, 0x0, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x14, 0x18, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x18, 0x18, 0x0, 0x14, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x18, 0x18, 0x0, 0xF, 0x84, 0x18, 0x18, 0x0, 0x0, 0x85, 0x18, 0x0, 0x88, 0x41, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0xD, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x0, 0xD, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x3D, 0xD, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3D, 0xD, 0x0, 0x0, 0x0, 0xD, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x18, 0x18, 0x3C, 0xC, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3A, 0xA, 0x85, 0x18, 0x18, 0x3C, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x84, 0x18, 0x18, 0x3A, 0x0, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0xA, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x38, 0x0, 0x0, 0x0, 0x3A, 0xA, 0x18, 0x18, 0x38, 0x0, 0x84, 0x18, 0x18, 0x35, 0xA, 0x0, 0x0, 0x0, 0xA, 0x85, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x0, 0x14, 0x18, 0x18, 0x0, 0x0, 0x18, 0x0, 0x42, 0x12, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x12, 0x84, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x42, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x3F, 0x12, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3D, 0x12, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x3A, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x41, 0x14, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x41, 0x14, 0x84, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x41, 0x14, 0x85, 0x18, 0x18, 0x3F, 0x14, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x42, 0x14, 0x85, 0x18, 0x18, 0x0, 0x0, 0x0, 0x0, 0x41, 0x14, 0x18, 0x18, 0x0, 0x0, 0x84, 0x18, 0x18, 0x3F, 0x14, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x18, 0x0, 0xF, 0x18, 0x18, 0x38, 0x0, 0x18, 0x0, 0x88, 0x42, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0xD, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x41, 0xD, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x3F, 0xD, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x41, 0xD, 0x0, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x41, 0x0, 0x18, 0x18, 0x41, 0xC, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x42, 0xA, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0xA, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x41, 0xA, 0x85, 0x18, 0x18, 0x41, 0xA, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x41, 0xA, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x18, 0x3F, 0xA, 0x0, 0x0, 0x3F, 0xA, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3F, 0x14, 0x18, 0x18, 0x3F, 0x0, 0x18, 0x0, 0x42, 0x12, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x12, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x3F, 0x12, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x41, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x42, 0x14, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x14, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x41, 0x14, 0x0, 0x0, 0x3F, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x14, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x18, 0x18, 0x3C, 0x14, 0x84, 0x18, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x3C, 0x0, 0x18, 0x18, 0x3A, 0x18, 0x84, 0x18, 0x18, 0x0, 0x0, 0x85, 0x18, 0x0, 0x86, 0x9F, 0x2C, 0x82, 0x9F, 0x19, 0x85, 0x9F, 0x18, 0x87, 0x9F, 0x18, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x2A, 0x9F, 0x19, 0x84, 0x9F, 0x18, 0x9F, 0x18, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x29, 0x9F, 0x19, 0x85, 0x9F, 0x18, 0x9F, 0x18, 0x9F, 0x0, 0x9F, 0x19, 0x9F, 0x0, 0x9F, 0x0, 0x9F, 0x2A, 0x9F, 0x0, 0x84, 0x9F, 0x18, 0x9F, 0x0, 0x9F, 0x2C, 0x9F, 0x19, 0x85, 0x9F, 0x18, 0x9F, 0x18, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x19, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x0, 0x84, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x19, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x19, 0x85, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x18, 0x84, 0x9D, 0x18, 0x9D, 0x18, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9D, 0x0, 0x9B, 0x2E, 0x9B, 0x16, 0x85, 0x9B, 0x18, 0x9B, 0x18, 0x9B, 0x2C, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x2E, 0x9B, 0x16, 0x84, 0x9B, 0x18, 0x9B, 0x18, 0x9B, 0x2C, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x2E, 0x9B, 0x16, 0x85, 0x9B, 0x18, 0x9B, 0x18, 0x9B, 0x2C, 0x9B, 0x16, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x0, 0x9B, 0x0, 0x84, 0x9B, 0x18, 0x9B, 0x0, 0x9B, 0x2E, 0x9B, 0x16, 0x85, 0x9B, 0x18, 0x9B, 0x18, 0x99, 0x0, 0x99, 0x0, 0x99, 0x0, 0x99, 0x0, 0x99, 0x2C, 0x99, 0x16, 0x99, 0x18, 0x99, 0x18, 0x99, 0x0, 0x99, 0x0, 0x84, 0x99, 0x18, 0x99, 0x18, 0x99, 0x29, 0x99, 0x16, 0x99, 0x0, 0x99, 0x0, 0x99, 0x0, 0x99, 0x16, 0x85, 0x99, 0x18, 0x99, 0x18, 0x99, 0x27, 0x99, 0x0, 0x84, 0x99, 0x18, 0x99, 0x18, 0x99, 0x0, 0x99, 0x14, 0x99, 0x18, 0x99, 0x18, 0x99, 0x25, 0x99, 0x0, 0x99, 0x18, 0x99, 0x0, 0x97, 0x29, 0x97, 0x12, 0x85, 0x97, 0x18, 0x97, 0x18, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x29, 0x97, 0x12, 0x84, 0x97, 0x18, 0x97, 0x18, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x2A, 0x97, 0x12, 0x85, 0x97, 0x18, 0x97, 0x18, 0x97, 0x0, 0x97, 0x12, 0x97, 0x0, 0x97, 0x0, 0x97, 0x29, 0x97, 0x0, 0x84, 0x97, 0x18, 0x97, 0x0, 0x97, 0x2C, 0x97, 0x12, 0x85, 0x97, 0x18, 0x97, 0x18, 0x95, 0x0, 0x95, 0x0, 0x95, 0x0, 0x95, 0x0, 0x95, 0x31, 0x95, 0x12, 0x95, 0x18, 0x95, 0x18, 0x95, 0x30, 0x95, 0x0, 0x84, 0x95, 0x18, 0x95, 0x18, 0x95, 0x31, 0x95, 0x12, 0x95, 0x0, 0x95, 0x0, 0x95, 0x30, 0x95, 0x12, 0x85, 0x95, 0x18, 0x95, 0x18, 0x95, 0x2C, 0x95, 0x12, 0x95, 0x18, 0x95, 0x18, 0x95, 0x27, 0x95, 0x11, 0x84, 0x95, 0x18, 0x95, 0x18, 0x95, 0x0, 0x95, 0x12, 0x95, 0x0, 0x95, 0x0, 0x93, 0x30, 0x93, 0x14, 0x85, 0x93, 0x18, 0x93, 0x18, 0x93, 0x0, 0x93, 0x0, 0x93, 0x0, 0x93, 0x0, 0x93, 0x30, 0x93, 0x14, 0x84, 0x93, 0x18, 0x93, 0x18, 0x93, 0x0, 0x93, 0x0, 0x93, 0x0, 0x93, 0x0, 0x92, 0x31, 0x92, 0x14, 0x85, 0x92, 0x18, 0x92, 0x18, 0x92, 0x0, 0x92, 0x14, 0x92, 0x0, 0x92, 0x0, 0x92, 0x30, 0x92, 0x0, 0x84, 0x92, 0x18, 0x92, 0x0, 0x92, 0x33, 0x92, 0x14, 0x85, 0x92, 0x18, 0x92, 0x18, 0x91, 0x0, 0x91, 0x0, 0x91, 0x0, 0x91, 0x0, 0x91, 0x31, 0x91, 0x14, 0x91, 0x18, 0x91, 0x18, 0x91, 0x30, 0x91, 0x0, 0x84, 0x91, 0x18, 0x91, 0x18, 0x91, 0x31, 0x91, 0x14, 0x91, 0x0, 0x91, 0x0, 0x90, 0x30, 0x90, 0x16, 0x85, 0x90, 0x18, 0x90, 0x18, 0x90, 0x2E, 0x90, 0x0, 0x84, 0x90, 0x18, 0x90, 0x18, 0x90, 0x2C, 0x90, 0x18, 0x90, 0x18, 0x90, 0x18, 0x90, 0x2A, 0x90, 0x0, 0x90, 0x18, 0x90, 0x0, 0x88, 0x42, 0x82, 0xD, 0x85, 0x18, 0x87, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0xD, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x41, 0xD, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x3F, 0xD, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x41, 0xD, 0x0, 0x0, 0x41, 0xD, 0x85, 0x18, 0x18, 0x41, 0x0, 0x18, 0x18, 0x41, 0xC, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x42, 0xA, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0xA, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x41, 0xA, 0x85, 0x18, 0x18, 0x41, 0xA, 0x0, 0x0, 0x41, 0x0, 0x84, 0x18, 0x0, 0x41, 0xA, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x0, 0x0, 0x3D, 0xA, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x18, 0x3F, 0xA, 0x0, 0x0, 0x3F, 0xA, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x3F, 0x14, 0x18, 0x18, 0x3F, 0x0, 0x18, 0x0, 0x42, 0x12, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x12, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x84, 0x18, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x3F, 0x0, 0x0, 0x0, 0x3F, 0x12, 0x18, 0x18, 0x3F, 0x0, 0x84, 0x18, 0x18, 0x41, 0x12, 0x0, 0x0, 0x0, 0x12, 0x85, 0x18, 0x18, 0x0, 0x12, 0x18, 0x18, 0x0, 0x11, 0x84, 0x18, 0x18, 0x0, 0x12, 0x0, 0x0, 0x42, 0x14, 0x85, 0x18, 0x18, 0x42, 0x0, 0x0, 0x0, 0x42, 0x14, 0x84, 0x18, 0x18, 0x41, 0x0, 0x0, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x41, 0x14, 0x0, 0x0, 0x3F, 0x0, 0x84, 0x18, 0x0, 0x0, 0x14, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x84, 0x18, 0x0, 0x3D, 0x14, 0x85, 0x18, 0x18, 0x3D, 0x0, 0x18, 0x18, 0x3C, 0x14, 0x84, 0x18, 0x0, 0x0, 0x16, 0x85, 0x18, 0x18, 0x3C, 0x0, 0x18, 0x18, 0x3A, 0x18, 0x84, 0x18, 0x18, 0xC1, 0x0, 0x0, 0x85, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; 6 | constexpr MusicData music_1 = { 7 | music_1_data, 8 | 0xC313, 9 | 0xC5BE, 10 | 7, 11 | 0xC313 12 | }; 13 | 14 | 15 | const PROGMEM uint8_t music_2_data[] = { 0x39, 0xD6, 0x39, 0xD6, 0x39, 0xD6, 0x59, 0xD6, 0x59, 0xD6, 0x39, 0xD6, 0x39, 0xD6, 0x79, 0xD6, 0x79, 0xD6, 0x39, 0xD6, 0x39, 0xD6, 0x99, 0xD6, 0x99, 0xD6, 0x59, 0xD6, 0x79, 0xD6, 0xB9, 0xD6, 0xB9, 0xD6, 0xD9, 0xD6, 0xD9, 0xD6, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x3B, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0xEC, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0xFC, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x51, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x3B, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x51, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x51, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x39, 0xD7, 0x3B, 0xD7, 0x51, 0xD7, 0x69, 0xD7, 0xC2, 0xD7, 0x9E, 0xD7, 0xAE, 0xD7, 0x88, 0xD7, 0xDA, 0xD7, 0x51, 0xD7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xD, 0x1, 0xE, 0x81, 0xF, 0x2, 0xF, 0x82, 0xF, 0x3, 0xF, 0x83, 0xD, 0x0, 0xC, 0x0, 0xB, 0x0, 0x8, 0xFF, 0x1, 0x0, 0xD, 0x6, 0xE, 0x86, 0xF, 0x4, 0xF, 0x84, 0xF, 0x2, 0xF, 0x82, 0xD, 0x1, 0xA, 0x81, 0x8, 0x0, 0x7, 0x0, 0x0, 0xFF, 0x0, 0x0, 0xF, 0x0, 0xF, 0xC, 0xF, 0x18, 0xE, 0x0, 0xD, 0xC, 0xC, 0x18, 0x8, 0x0, 0xFF, 0x1C, 0xB, 0x1A, 0xA, 0x18, 0x8, 0x16, 0x6, 0x14, 0x4, 0x0, 0x0, 0x0, 0xFF, 0x0, 0xFF, 0x2, 0x88, 0xF, 0x86, 0xF, 0x84, 0xE, 0x82, 0xE, 0x82, 0xD, 0x1D, 0xD, 0x81, 0xC, 0x80, 0xA, 0x0, 0x0, 0xFF, 0x2, 0x3C, 0xF, 0x32, 0xF, 0x28, 0xE, 0x1E, 0xD, 0x14, 0xB, 0xA, 0x8, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xC, 0x1, 0xD, 0x0, 0xC, 0x1, 0xB, 0x0, 0xA, 0x1, 0x9, 0x0, 0x6, 0x0, 0x3, 0x0, 0x0, 0xFF, 0x2, 0x46, 0xF, 0x84, 0xF, 0x3C, 0xE, 0x84, 0xD, 0x32, 0xD, 0x84, 0xD, 0x28, 0xC, 0x1E, 0xC, 0x14, 0xB, 0xA, 0x8, 0x0, 0x0, 0xFF, 0x1, 0x0, 0xD, 0x2, 0xE, 0x4, 0xF, 0x8, 0xF, 0xA, 0xE, 0xC, 0xD, 0xE, 0x8, 0x0, 0x8, 0xFF, 0x0, 0x0, 0xF, 0xC, 0xF, 0x0, 0xE, 0xC, 0xE, 0x0, 0xD, 0xC, 0xC, 0x0, 0x8, 0xFF, 0x0, 0x0, 0xF, 0xC, 0xF, 0x18, 0xE, 0x0, 0xE, 0xC, 0xD, 0x18, 0xC, 0x0, 0x8, 0xFF, 0x0, 0x0, 0x29, 0xE, 0x5D, 0xD, 0x9C, 0xC, 0xE7, 0xB, 0x3C, 0xB, 0x9B, 0xA, 0x2, 0xA, 0x73, 0x9, 0xEB, 0x8, 0x6B, 0x8, 0xF2, 0x7, 0x80, 0x7, 0x14, 0x7, 0xAE, 0x6, 0x4E, 0x6, 0xF4, 0x5, 0x9E, 0x5, 0x4D, 0x5, 0x1, 0x5, 0xB9, 0x4, 0x75, 0x4, 0x35, 0x4, 0xF9, 0x3, 0xC0, 0x3, 0x8A, 0x3, 0x57, 0x3, 0x27, 0x3, 0xFA, 0x2, 0xCF, 0x2, 0xA7, 0x2, 0x81, 0x2, 0x5D, 0x2, 0x3B, 0x2, 0x1B, 0x2, 0xFC, 0x1, 0xE0, 0x1, 0xC5, 0x1, 0xAC, 0x1, 0x94, 0x1, 0x7D, 0x1, 0x68, 0x1, 0x53, 0x1, 0x40, 0x1, 0x2E, 0x1, 0x1D, 0x1, 0xD, 0x1, 0xFE, 0x0, 0xF0, 0x0, 0xE2, 0x0, 0xD6, 0x0, 0xCA, 0x0, 0xBE, 0x0, 0xB4, 0x0, 0xAA, 0x0, 0xA0, 0x0, 0x97, 0x0, 0x8F, 0x0, 0x87, 0x0, 0x7F, 0x0, 0x78, 0x0, 0x71, 0x0, 0x6B, 0x0, 0x65, 0x0, 0x5F, 0x0, 0x5A, 0x0, 0x55, 0x0, 0x50, 0x0, 0x4C, 0x0, 0x47, 0x0, 0x43, 0x0, 0x40, 0x0, 0x3C, 0x0, 0x39, 0x0, 0x35, 0x0, 0x32, 0x0, 0x30, 0x0, 0x2D, 0x0, 0x2A, 0x0, 0x28, 0x0, 0x26, 0x0, 0x24, 0x0, 0x22, 0x0, 0x20, 0x0, 0x1E, 0x0, 0x1C, 0x0, 0x1B, 0x0, 0x19, 0x0, 0x18, 0x0, 0x16, 0x0, 0x15, 0x0, 0x14, 0x0, 0x13, 0x0, 0x12, 0x0, 0x11, 0x0, 0x10, 0x0, 0xF, 0x0, 0x0, 0x3A, 0xE7, 0x27, 0xDA, 0x11, 0xD9, 0x11, 0xD9, 0x64, 0xDD, 0xAC, 0xE0, 0x11, 0xD9, 0x11, 0xD9, 0x4C, 0xDC, 0xC4, 0xE1, 0x11, 0xD9, 0xF4, 0xE3, 0xDC, 0xE2, 0x34, 0xDB, 0x4C, 0xDC, 0xAC, 0xE0, 0x7C, 0xDE, 0xA, 0xE5, 0x94, 0xDF, 0x22, 0xE6, 0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xA7, 0xC, 0x89, 0x30, 0x85, 0x18, 0x86, 0x34, 0x0, 0x0, 0x0, 0x32, 0xC, 0x30, 0x18, 0x34, 0x18, 0x2D, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x28, 0x85, 0x18, 0x0, 0xB, 0x2B, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xB, 0x2D, 0x18, 0x34, 0x17, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x30, 0x85, 0x18, 0x0, 0x9, 0x0, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x9, 0x0, 0x18, 0x34, 0x15, 0x0, 0x84, 0x18, 0x39, 0x0, 0x30, 0x0, 0x0, 0x9, 0x32, 0x85, 0x18, 0x0, 0x7, 0x34, 0x18, 0x37, 0x0, 0x32, 0x0, 0x0, 0x7, 0x30, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x85, 0x18, 0x0, 0xC, 0x30, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xC, 0x30, 0x18, 0x34, 0x18, 0x2D, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x28, 0x85, 0x18, 0x0, 0xB, 0x2B, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xB, 0x2D, 0x18, 0x34, 0x17, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x30, 0x85, 0x18, 0x0, 0x9, 0x0, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x9, 0x0, 0x18, 0x34, 0x15, 0x0, 0x84, 0x18, 0x39, 0x0, 0x30, 0x0, 0x0, 0x9, 0x32, 0x85, 0x18, 0x0, 0x7, 0x35, 0x18, 0x37, 0x0, 0x34, 0x0, 0x0, 0x7, 0x32, 0x18, 0x0, 0x13, 0x34, 0x84, 0x18, 0x0, 0x0, 0x32, 0x0, 0x0, 0xC0, 0x7, 0x30, 0x85, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xA7, 0xC, 0x0, 0x0, 0x87, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x0, 0x48, 0x18, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x0, 0x48, 0xB, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x0, 0x48, 0x17, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x0, 0x48, 0x9, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x48, 0x15, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x48, 0x7, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x48, 0x13, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x48, 0x7, 0x0, 0x0, 0x48, 0xC, 0x0, 0x85, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x48, 0x18, 0x0, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x85, 0x18, 0x48, 0xB, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x18, 0x48, 0x17, 0x0, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xB, 0x0, 0x85, 0x18, 0x48, 0x9, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x18, 0x48, 0x15, 0x0, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x85, 0x18, 0x48, 0x7, 0x0, 0x18, 0x48, 0x0, 0x89, 0x24, 0x0, 0x0, 0x7, 0x28, 0x18, 0x48, 0x13, 0x2B, 0x84, 0x18, 0x48, 0x0, 0x2D, 0x18, 0x48, 0xC0, 0x7, 0x2F, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x2D, 0x85, 0x18, 0x86, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x11, 0x2D, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x13, 0x2F, 0x18, 0x47, 0x0, 0x30, 0x0, 0x48, 0x13, 0x32, 0x18, 0x4A, 0x1F, 0x30, 0x84, 0x18, 0x48, 0x0, 0x2F, 0x0, 0x47, 0x13, 0x2B, 0x85, 0x18, 0x43, 0x13, 0x2F, 0x18, 0x47, 0x0, 0x30, 0x0, 0x48, 0x13, 0x32, 0x18, 0x4A, 0x1F, 0x30, 0x84, 0x18, 0x48, 0x0, 0x2F, 0x85, 0x18, 0x47, 0x13, 0x2B, 0x84, 0x18, 0x43, 0x11, 0x2D, 0x85, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x11, 0x2D, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0xE, 0x32, 0x18, 0x4A, 0x0, 0x34, 0x0, 0x4C, 0xE, 0x35, 0x18, 0x4D, 0x1A, 0x34, 0x84, 0x18, 0x4C, 0x0, 0x32, 0x0, 0x4A, 0xE, 0x30, 0x85, 0x18, 0x48, 0xE, 0x32, 0x18, 0x47, 0x0, 0x34, 0x0, 0x48, 0xE, 0x35, 0x18, 0x4A, 0x1A, 0x34, 0x84, 0x18, 0x48, 0x0, 0x32, 0x85, 0x18, 0x47, 0xC0, 0xE, 0x30, 0x84, 0x18, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x35, 0x85, 0x18, 0x86, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x35, 0x18, 0x35, 0x1D, 0x34, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x34, 0x85, 0x18, 0x30, 0x11, 0x32, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x34, 0x18, 0x35, 0x1D, 0x30, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x32, 0x85, 0x18, 0x30, 0x13, 0x0, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x13, 0x2B, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x13, 0x2B, 0x85, 0x18, 0x37, 0x13, 0x0, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x35, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x37, 0x11, 0x35, 0x85, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x35, 0x18, 0x35, 0x1D, 0x34, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x34, 0x85, 0x18, 0x30, 0x11, 0x32, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x34, 0x18, 0x35, 0x1D, 0x35, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x39, 0x85, 0x18, 0x30, 0x13, 0x0, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0x13, 0x37, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0x13, 0x32, 0x85, 0x18, 0x37, 0x13, 0x0, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x39, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0x13, 0x0, 0x84, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x2D, 0x85, 0x18, 0x86, 0x35, 0x0, 0x0, 0x0, 0x34, 0x11, 0x2D, 0x18, 0x30, 0x1D, 0x2F, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x2F, 0x85, 0x18, 0x0, 0x11, 0x30, 0x18, 0x35, 0x0, 0x0, 0x0, 0x34, 0x11, 0x32, 0x18, 0x30, 0x1D, 0x0, 0x84, 0x18, 0x35, 0x0, 0x39, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x18, 0x37, 0x0, 0x0, 0x0, 0x35, 0x13, 0x34, 0x18, 0x30, 0x1F, 0x0, 0x84, 0x18, 0x37, 0x0, 0x32, 0x0, 0x0, 0x13, 0x0, 0x85, 0x18, 0x0, 0x13, 0x2F, 0x18, 0x37, 0x0, 0x0, 0x0, 0x35, 0x13, 0x0, 0x18, 0x30, 0x1F, 0x0, 0x84, 0x18, 0x37, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x11, 0x39, 0x85, 0x18, 0x35, 0x0, 0x37, 0x0, 0x34, 0x11, 0x34, 0x18, 0x30, 0x1D, 0x32, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x11, 0x39, 0x18, 0x35, 0x0, 0x37, 0x0, 0x34, 0x11, 0x34, 0x18, 0x30, 0x1D, 0x32, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x13, 0x39, 0x18, 0x39, 0x0, 0x37, 0x0, 0x37, 0x13, 0x32, 0x18, 0x32, 0x1F, 0x39, 0x84, 0x18, 0x39, 0x0, 0x37, 0x0, 0x0, 0x13, 0x32, 0x85, 0x18, 0x0, 0x13, 0x39, 0x18, 0x39, 0x0, 0x37, 0x0, 0x37, 0x13, 0x32, 0x18, 0x32, 0x1F, 0x30, 0x84, 0x18, 0x39, 0x0, 0x2F, 0x85, 0x18, 0x0, 0xC0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xC, 0x89, 0x34, 0x85, 0x18, 0x86, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x30, 0x18, 0x48, 0x18, 0x32, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x48, 0xC, 0x30, 0x85, 0x18, 0x0, 0xC, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x0, 0x18, 0x34, 0x84, 0x18, 0x0, 0x0, 0x35, 0x0, 0x0, 0xC, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x18, 0x4F, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x18, 0x4F, 0x1F, 0x0, 0x84, 0x18, 0x4F, 0x0, 0x0, 0x0, 0x4F, 0x13, 0x0, 0x85, 0x18, 0x0, 0x13, 0x39, 0x18, 0x4F, 0x0, 0x37, 0x0, 0x0, 0x13, 0x34, 0x18, 0x0, 0x1F, 0x32, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0xC, 0x37, 0x85, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x35, 0x18, 0x48, 0x18, 0x34, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x48, 0xC, 0x37, 0x85, 0x18, 0x0, 0xC, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x37, 0x18, 0x0, 0x18, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x37, 0x85, 0x18, 0x0, 0x11, 0x0, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x0, 0x11, 0x35, 0x18, 0x4D, 0x1D, 0x0, 0x84, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x4D, 0x11, 0x34, 0x85, 0x18, 0x0, 0x11, 0x0, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x0, 0x11, 0x32, 0x18, 0x0, 0x1D, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0x11, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x35, 0x85, 0x18, 0x86, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x18, 0x3E, 0x1D, 0x35, 0x84, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x85, 0x18, 0x3E, 0x11, 0x35, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x18, 0x3E, 0x1D, 0x35, 0x84, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x85, 0x18, 0x3E, 0xC, 0x34, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x34, 0x84, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x85, 0x18, 0x3C, 0xC, 0x34, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x34, 0x84, 0x18, 0x40, 0x0, 0x32, 0x85, 0x18, 0x3E, 0xC, 0x30, 0x84, 0x18, 0x3C, 0x13, 0x32, 0x85, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x18, 0x3B, 0x1F, 0x32, 0x84, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x85, 0x18, 0x3B, 0x13, 0x32, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x18, 0x3B, 0x1F, 0x32, 0x84, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x85, 0x18, 0x3B, 0xC, 0x30, 0x18, 0x3C, 0x0, 0x2D, 0x0, 0x39, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x2B, 0x84, 0x18, 0x37, 0x0, 0x28, 0x0, 0x34, 0xC, 0x30, 0x85, 0x18, 0x3C, 0xC, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x0, 0x18, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0xC, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x2D, 0x85, 0x18, 0x86, 0x35, 0x0, 0x0, 0x0, 0x34, 0x11, 0x2D, 0x18, 0x30, 0x1D, 0x2F, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x2F, 0x85, 0x18, 0x0, 0x11, 0x30, 0x18, 0x35, 0x0, 0x0, 0x0, 0x34, 0x11, 0x32, 0x18, 0x30, 0x1D, 0x0, 0x84, 0x18, 0x35, 0x0, 0x39, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x18, 0x37, 0x0, 0x0, 0x0, 0x35, 0x13, 0x34, 0x18, 0x30, 0x1F, 0x0, 0x84, 0x18, 0x37, 0x0, 0x32, 0x0, 0x0, 0x13, 0x0, 0x85, 0x18, 0x0, 0x13, 0x2F, 0x18, 0x37, 0x0, 0x0, 0x0, 0x35, 0x13, 0x0, 0x18, 0x30, 0x1F, 0x0, 0x84, 0x18, 0x37, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x11, 0x39, 0x85, 0x18, 0x35, 0x0, 0x37, 0x0, 0x34, 0x11, 0x34, 0x18, 0x30, 0x1D, 0x32, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0x11, 0x39, 0x18, 0x35, 0x0, 0x37, 0x0, 0x34, 0x11, 0x34, 0x18, 0x30, 0x1D, 0x32, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x85, 0x18, 0x0, 0xE, 0x39, 0x18, 0x39, 0x0, 0x37, 0x0, 0x37, 0xE, 0x32, 0x18, 0x32, 0x1A, 0x39, 0x84, 0x18, 0x39, 0x0, 0x37, 0x0, 0x0, 0xE, 0x32, 0x85, 0x18, 0x0, 0x7, 0x39, 0x18, 0x39, 0x0, 0x37, 0x0, 0x37, 0x7, 0x32, 0x18, 0x32, 0x13, 0x30, 0x84, 0x18, 0x39, 0x0, 0x2F, 0x85, 0x18, 0x0, 0xC0, 0x7, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x35, 0x85, 0x18, 0x86, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x35, 0x18, 0x35, 0x1D, 0x34, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x34, 0x85, 0x18, 0x30, 0x11, 0x32, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x34, 0x18, 0x35, 0x1D, 0x30, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x32, 0x85, 0x18, 0x30, 0x13, 0x0, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x13, 0x2B, 0x18, 0x37, 0x1F, 0x0, 0x84, 0x18, 0x35, 0x0, 0x0, 0x0, 0x0, 0x13, 0x2B, 0x85, 0x18, 0x37, 0x13, 0x0, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x13, 0x37, 0x18, 0x37, 0x1F, 0x35, 0x84, 0x18, 0x35, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x84, 0x18, 0x37, 0x11, 0x35, 0x85, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x35, 0x18, 0x35, 0x1D, 0x34, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x34, 0x85, 0x18, 0x30, 0x11, 0x32, 0x18, 0x35, 0x0, 0x0, 0x0, 0x30, 0x11, 0x34, 0x18, 0x35, 0x1D, 0x35, 0x84, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x11, 0x39, 0x85, 0x18, 0x30, 0xE, 0x0, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0xE, 0x37, 0x18, 0x37, 0x1A, 0x0, 0x84, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0xE, 0x32, 0x85, 0x18, 0x37, 0x7, 0x0, 0x18, 0x39, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x18, 0x37, 0x13, 0x0, 0x84, 0x18, 0x39, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0x7, 0x0, 0x84, 0x18, 0x37, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x2D, 0x85, 0x18, 0x86, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x11, 0x2D, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x13, 0x2F, 0x18, 0x47, 0x0, 0x30, 0x0, 0x48, 0x13, 0x32, 0x18, 0x4A, 0x1F, 0x30, 0x84, 0x18, 0x48, 0x0, 0x2F, 0x0, 0x47, 0x13, 0x2B, 0x85, 0x18, 0x43, 0x13, 0x2F, 0x18, 0x47, 0x0, 0x30, 0x0, 0x48, 0x13, 0x32, 0x18, 0x4A, 0x1F, 0x30, 0x84, 0x18, 0x48, 0x0, 0x2F, 0x85, 0x18, 0x47, 0x13, 0x2B, 0x84, 0x18, 0x43, 0x11, 0x2D, 0x85, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0x11, 0x2D, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x18, 0x41, 0x1D, 0x2D, 0x84, 0x18, 0x45, 0x0, 0x0, 0x0, 0x43, 0x11, 0x29, 0x85, 0x18, 0x41, 0xE, 0x32, 0x18, 0x4A, 0x0, 0x34, 0x0, 0x4C, 0xE, 0x35, 0x18, 0x4D, 0x1A, 0x34, 0x84, 0x18, 0x4C, 0x0, 0x32, 0x0, 0x4A, 0xE, 0x30, 0x85, 0x18, 0x48, 0x13, 0x32, 0x18, 0x47, 0x0, 0x34, 0x0, 0x48, 0x13, 0x35, 0x18, 0x4A, 0x1F, 0x34, 0x84, 0x18, 0x48, 0x0, 0x32, 0x85, 0x18, 0x47, 0xC0, 0x13, 0x30, 0x84, 0x18, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xA7, 0xC, 0x89, 0x30, 0x85, 0x18, 0x86, 0x34, 0x0, 0x0, 0x0, 0x32, 0xC, 0x30, 0x18, 0x34, 0x18, 0x2D, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x28, 0x85, 0x18, 0x0, 0xB, 0x2B, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xB, 0x2D, 0x18, 0x34, 0x17, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x30, 0x85, 0x18, 0x0, 0x9, 0x0, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0x9, 0x0, 0x18, 0x34, 0x15, 0x0, 0x84, 0x18, 0x39, 0x0, 0x30, 0x0, 0x0, 0x9, 0x32, 0x85, 0x18, 0x0, 0x7, 0x34, 0x18, 0x37, 0x0, 0x32, 0x0, 0x0, 0x7, 0x30, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x85, 0x18, 0x0, 0xC, 0x30, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xC, 0x30, 0x18, 0x34, 0x18, 0x2D, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x28, 0x85, 0x18, 0x0, 0xB, 0x2B, 0x18, 0x34, 0x0, 0x0, 0x0, 0x32, 0xB, 0x2D, 0x18, 0x34, 0x17, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xB, 0x30, 0x85, 0x18, 0x0, 0x9, 0x0, 0x18, 0x40, 0x0, 0x0, 0x0, 0x0, 0x9, 0x35, 0x18, 0x41, 0x15, 0x0, 0x84, 0x18, 0x0, 0x0, 0x34, 0x0, 0x40, 0x9, 0x0, 0x85, 0x18, 0x0, 0x7, 0x32, 0x18, 0x3E, 0x0, 0x0, 0x0, 0x0, 0x7, 0x30, 0x18, 0x3C, 0x13, 0x0, 0x84, 0x18, 0x0, 0x0, 0x2F, 0x0, 0x3B, 0xC0, 0x7, 0x0, 0x85, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0xC, 0x89, 0x34, 0x85, 0x18, 0x86, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x30, 0x18, 0x48, 0x18, 0x32, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x48, 0xC, 0x30, 0x85, 0x18, 0x0, 0xC, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x0, 0x18, 0x34, 0x84, 0x18, 0x0, 0x0, 0x35, 0x0, 0x0, 0xC, 0x0, 0x85, 0x18, 0x0, 0x13, 0x37, 0x18, 0x4F, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x18, 0x4F, 0x1F, 0x0, 0x84, 0x18, 0x4F, 0x0, 0x0, 0x0, 0x4F, 0x13, 0x0, 0x85, 0x18, 0x0, 0x13, 0x39, 0x18, 0x4F, 0x0, 0x37, 0x0, 0x0, 0x13, 0x34, 0x18, 0x0, 0x1F, 0x32, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0x13, 0x0, 0x84, 0x18, 0x0, 0xC, 0x37, 0x85, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x35, 0x18, 0x48, 0x18, 0x34, 0x84, 0x18, 0x48, 0x0, 0x0, 0x0, 0x48, 0xC, 0x37, 0x85, 0x18, 0x0, 0xC, 0x0, 0x18, 0x48, 0x0, 0x0, 0x0, 0x0, 0xC, 0x39, 0x18, 0x0, 0x18, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x3A, 0x85, 0x18, 0x0, 0x11, 0x0, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x0, 0x11, 0x39, 0x18, 0x4D, 0x1D, 0x37, 0x84, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x4D, 0x11, 0x35, 0x85, 0x18, 0x0, 0x11, 0x0, 0x18, 0x4D, 0x0, 0x0, 0x0, 0x0, 0x11, 0x34, 0x18, 0x0, 0x1D, 0x32, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0x11, 0x30, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x89, 0x35, 0x85, 0x18, 0x86, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x18, 0x3E, 0x1D, 0x35, 0x84, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x85, 0x18, 0x3E, 0x11, 0x35, 0x18, 0x41, 0x0, 0x34, 0x0, 0x40, 0x11, 0x32, 0x18, 0x3E, 0x1D, 0x37, 0x84, 0x18, 0x43, 0x0, 0x35, 0x0, 0x41, 0x11, 0x34, 0x85, 0x18, 0x40, 0xC, 0x34, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x34, 0x84, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x85, 0x18, 0x3C, 0xC, 0x34, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x35, 0x84, 0x18, 0x41, 0x0, 0x34, 0x85, 0x18, 0x40, 0xC, 0x32, 0x84, 0x18, 0x3E, 0x13, 0x32, 0x85, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x18, 0x3B, 0x1F, 0x32, 0x84, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x85, 0x18, 0x3B, 0x13, 0x32, 0x18, 0x3E, 0x0, 0x30, 0x0, 0x3C, 0x13, 0x2F, 0x18, 0x3B, 0x1F, 0x34, 0x84, 0x18, 0x40, 0x0, 0x32, 0x0, 0x3E, 0x13, 0x2F, 0x85, 0x18, 0x3B, 0xC, 0x30, 0x18, 0x3C, 0x0, 0x2D, 0x0, 0x39, 0xC, 0x30, 0x18, 0x3C, 0x18, 0x2B, 0x84, 0x18, 0x37, 0x0, 0x28, 0x0, 0x34, 0xC, 0x30, 0x85, 0x18, 0x3C, 0xC, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC, 0x0, 0x18, 0x0, 0x18, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x85, 0x18, 0x0, 0xC0, 0xC, 0x0, 0x84, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x2, 0xA6, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x78, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x2, 0xFA, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x78, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xFC, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xE0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x78, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x7F, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xA0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xAA, 0x80, 0x0, 0x1, 0xAC, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x7D, 0x20, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xAA, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0xBE, 0x80, 0x0, 0x1, 0x53, 0x20, 0x0, 0x0, 0xD6, 0x40, 0x0, 0x0, 0xD6, 0x70, 0x0, 0x0, 0x0, 0xB, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xD6, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xDB, 0x2, 0x73, 0x38, 0xD4, 0x3, 0x4D, 0x0, 0xD8, 0x3E, 0x0, 0x0, 0xD5, 0x57, 0x5C, 0x0, 0xDB, 0xB, 0xCE, 0xB, 0xDA, 0x50, 0xCE, 0xB, 0xDB, 0x50, 0x6, 0x17, 0xDC, 0xA, 0xCE, 0xB, 0xE1, 0x50, 0x6, 0x3, 0x7, 0x5C, 0x7C, 0x38, 0xD9, 0xD5, 0x4D, 0x0, 0x0, 0xD5, 0xFD, 0xBF, 0xF9, 0xD7, 0xF4, 0xD3, 0x32, 0xD3, 0xC0, 0x62, 0x2B, 0x2D, 0x65, 0x33, 0xFF, 0xFF, 0xED, 0x10, 0xD, 0x0, 0x9, 0x0, 0x85, 0x1C, 0x10, 0x1C, 0x52, 0x1B, 0x76, 0x1B, 0x3, 0x13, 0x0, 0x3E, 0x0, 0x3C, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x0, 0x0, 0x7C, 0x42, 0x7C, 0x42, 0x42, 0x7C, 0x0, 0x0, 0x3C, 0x42, 0x40, 0x40, 0x42, 0x3C, 0x0, 0x0, 0x78, 0x44, 0x42, 0x42, 0x44, 0x78, 0x0, 0x0, 0x7E, 0x40, 0x7C, 0x40, 0x40, 0x7E, 0x0, 0x0, 0x7E, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x0, 0x0, 0x3C, 0x42, 0x40, 0x4E, 0x42, 0x3C, 0x0, 0x0, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x0, 0x0, 0x3E, 0x8, 0x8, 0x8, 0x8, 0x3E, 0x0, 0x0, 0x2, 0x2, 0x2, 0x42, 0x42, 0x3C, 0x0, 0x0, 0x44, 0x48, 0x70, 0x48, 0x44, 0x42, 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7E, 0x0, 0x0, 0x42, 0x66, 0x5A, 0x42, 0x42, 0x42, 0x0, 0x0, 0x42, 0x62, 0x52, 0x4A, 0x46, 0x42, 0x0, 0x0, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x0, 0x0, 0x7C, 0x42, 0x42, 0x7C, 0x40, 0x40, 0x0, 0x0, 0x3C, 0x42, 0x42, 0x52, 0x4A, 0x3C, 0x0, 0x0, 0x7C, 0x42, 0x42, 0x7C, 0x44, 0x42, 0x0, 0x0, 0x3C, 0x40, 0x3C, 0x2, 0x42, 0x3C, 0x0, 0x0, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0, 0x0, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; 16 | constexpr MusicData music_2 = { 17 | music_2_data, 18 | 0xD613, 19 | 0xD8D1, 20 | 7, 21 | 0xD613 22 | }; 23 | 24 | MusicData get_music_data_1() { 25 | return music_1; 26 | } 27 | 28 | MusicData get_music_data_2() { 29 | return music_2; 30 | } 31 | --------------------------------------------------------------------------------