1
0
Fork 0
forked from len0rd/rockbox

import ASAP codec (http://asap.sourceforge.net/). Plays Amiga 8bit Sound. (.sap and more formats).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18120 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Wenger 2008-07-26 15:10:26 +00:00
parent 43b11af169
commit 4e4bf82fb7
8 changed files with 5234 additions and 0 deletions

37
apps/codecs/asap/CREDITS Normal file
View file

@ -0,0 +1,37 @@
People who have contributed to ASAP
-----------------------------------
Atari800 Development Team (http://atari800.sourceforge.net)
* 6502 and POKEY emulation used in 0.x.y versions of ASAP
Zdenek Eisenhammer <pg@pinknet.cz>
* testing
Piotr Fusik <fox@scene.pl>
* author and maintainer of ASAP
Maciek Konecki <maciusk1@wp.pl>
* porting to C#
Marcin Lewandowski <jaskier@atari8.info>
* 6502 routines for playing CMC, MPT, TMC and TM2
Perry McFarlane <perry_m@fastmail.fm>
* POKEY reverse-engineering
Kostas Nakos <knakos@gmail.com>
* compilation for Windows CE
Slawomir Sledz <slaves@scene.pl>
* testing
Radek Sterba <raster@infos.cz>
* 6502 routine for playing RMT
* testing
Lukasz Sychowicz <xray@scene.pl>
* Windows icons
* testing
Michal Szpilowski <miker@atari.pl>
* testing

59
apps/codecs/asap/README Normal file
View file

@ -0,0 +1,59 @@
ASAP - Another Slight Atari Player
----------------------------------
ASAP is a player of Atari 8-bit music for modern computers.
It emulates the POKEY sound chip and the 6502 processor.
The project was initially based on the routines from the Atari800 emulator,
but the current version has a completely new original emulation core.
The ASAP project includes the following programs:
* ASAP2WAV - portable command-line utility that generates WAV files
* WASAP - tiny player for Windows
* plugin for Apollo
* plugin for foobar2000 0.9
* plugin for GSPlayer
* plugin for MOC
* plugin for Winamp
* plugin for XMMS
* DirectShow source filter (for Windows Media Player)
* Java version of ASAP2WAV
* Java applet
* Java midlet
* C# version of ASAP2WAV
The following input formats are supported:
* SAP (Slight Atari Player - standard file format for playing Atari 8-bit
music on modern computers)
* CMC (Chaos Music Composer)
* CMR (CMC Rzog)
* DMC (DoublePlay CMC)
* MPT (Music ProTracker)
* MPD (MPT DoublePlay)
* RMT (Raster Music Tracker)
* TMC, TM8 (Theta Music Composer 1.x)
* TM2 (Theta Music Composer 2.x)
If you are looking for Atari 8-bit music, there is a single big collection
of it called Atari SAP Music Archive (http://asma.atari.org).
If you are interested in the ASAP project, please subscribe its mailing list:
https://lists.sourceforge.net/lists/listinfo/asap-users
As in the Atari800 project, this is a combined list for end users
and for developers. Once you subscribe, you can post comments, ideas
and questions about ASAP. They will be answered ASAP. ;-)
If, for some reason, you do not want to subscribe the mailing list,
but have a bug report, feature request or a small code patch, you can use
the sf.net tracker. Use "Bugs", "Feature Requests" or "Patches" link
on this page:
http://sourceforge.net/projects/asap/
ASAP is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
ASAP is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the included GNU General Public License for more details.

1262
apps/codecs/asap/acpu.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,537 @@
/*
* apokeysnd.c - another POKEY sound emulator
*
* Copyright (C) 2007-2008 Piotr Fusik
*
* This file is part of ASAP (Another Slight Atari Player),
* see http://asap.sourceforge.net
*
* ASAP is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version.
*
* ASAP is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with ASAP; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#if !defined(JAVA) && !defined(CSHARP)
#include <string.h>
#endif
#include "asap_internal.h"
#define ULTRASOUND_CYCLES 112
#define MUTE_FREQUENCY 1
#define MUTE_INIT 2
#define MUTE_USER 4
CONST_LOOKUP(byte, poly4_lookup) =
{ 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1 };
CONST_LOOKUP(byte, poly5_lookup) =
{ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1,
0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1 };
FILE_FUNC void init_state(PokeyState PTR pst)
{
PST audctl = 0;
PST init = FALSE;
PST poly_index = 15 * 31 * 131071;
PST div_cycles = 28;
PST mute1 = MUTE_FREQUENCY | MUTE_USER;
PST mute2 = MUTE_FREQUENCY | MUTE_USER;
PST mute3 = MUTE_FREQUENCY | MUTE_USER;
PST mute4 = MUTE_FREQUENCY | MUTE_USER;
PST audf1 = 0;
PST audf2 = 0;
PST audf3 = 0;
PST audf4 = 0;
PST audc1 = 0;
PST audc2 = 0;
PST audc3 = 0;
PST audc4 = 0;
PST tick_cycle1 = NEVER;
PST tick_cycle2 = NEVER;
PST tick_cycle3 = NEVER;
PST tick_cycle4 = NEVER;
PST period_cycles1 = 28;
PST period_cycles2 = 28;
PST period_cycles3 = 28;
PST period_cycles4 = 28;
PST reload_cycles1 = 28;
PST reload_cycles3 = 28;
PST out1 = 0;
PST out2 = 0;
PST out3 = 0;
PST out4 = 0;
PST delta1 = 0;
PST delta2 = 0;
PST delta3 = 0;
PST delta4 = 0;
PST skctl = 3;
ZERO_ARRAY(PST delta_buffer);
}
ASAP_FUNC void PokeySound_Initialize(ASAP_State PTR ast)
{
int i;
int reg;
reg = 0x1ff;
for (i = 0; i < 511; i++) {
reg = ((((reg >> 5) ^ reg) & 1) << 8) + (reg >> 1);
AST poly9_lookup[i] = (byte) reg;
}
reg = 0x1ffff;
for (i = 0; i < 16385; i++) {
reg = ((((reg >> 5) ^ reg) & 0xff) << 9) + (reg >> 8);
AST poly17_lookup[i] = (byte) (reg >> 1);
}
AST sample_offset = 0;
AST sample_index = 0;
AST samples = 0;
AST iir_acc_left = 0;
AST iir_acc_right = 0;
init_state(ADDRESSOF AST base_pokey);
init_state(ADDRESSOF AST extra_pokey);
}
#define CYCLE_TO_SAMPLE(cycle) (((cycle) * ASAP_SAMPLE_RATE + AST sample_offset) / ASAP_MAIN_CLOCK)
#define DO_TICK(ch) \
if (PST init) { \
switch (PST audc##ch >> 4) { \
case 10: \
case 14: \
PST out##ch ^= 1; \
PST delta_buffer[CYCLE_TO_SAMPLE(cycle)] += PST delta##ch = -PST delta##ch; \
break; \
default: \
break; \
} \
} \
else { \
int poly = cycle + PST poly_index - (ch - 1); \
int newout = PST out##ch; \
switch (PST audc##ch >> 4) { \
case 0: \
if (poly5_lookup[poly % 31] != 0) { \
if ((PST audctl & 0x80) != 0) \
newout = AST poly9_lookup[poly % 511] & 1; \
else { \
poly %= 131071; \
newout = (AST poly17_lookup[poly >> 3] >> (poly & 7)) & 1; \
} \
} \
break; \
case 2: \
case 6: \
newout ^= poly5_lookup[poly % 31]; \
break; \
case 4: \
if (poly5_lookup[poly % 31] != 0) \
newout = poly4_lookup[poly % 15]; \
break; \
case 8: \
if ((PST audctl & 0x80) != 0) \
newout = AST poly9_lookup[poly % 511] & 1; \
else { \
poly %= 131071; \
newout = (AST poly17_lookup[poly >> 3] >> (poly & 7)) & 1; \
} \
break; \
case 10: \
case 14: \
newout ^= 1; \
break; \
case 12: \
newout = poly4_lookup[poly % 15]; \
break; \
default: \
break; \
} \
if (newout != PST out##ch) { \
PST out##ch = newout; \
PST delta_buffer[CYCLE_TO_SAMPLE(cycle)] += PST delta##ch = -PST delta##ch; \
} \
}
FILE_FUNC void generate(ASAP_State PTR ast, PokeyState PTR pst, int current_cycle)
{
for (;;) {
int cycle = current_cycle;
if (cycle > PST tick_cycle1)
cycle = PST tick_cycle1;
if (cycle > PST tick_cycle2)
cycle = PST tick_cycle2;
if (cycle > PST tick_cycle3)
cycle = PST tick_cycle3;
if (cycle > PST tick_cycle4)
cycle = PST tick_cycle4;
if (cycle == current_cycle)
break;
if (cycle == PST tick_cycle3) {
PST tick_cycle3 += PST period_cycles3;
if ((PST audctl & 4) != 0 && PST delta1 > 0 && PST mute1 == 0)
PST delta_buffer[CYCLE_TO_SAMPLE(cycle)] += PST delta1 = -PST delta1;
DO_TICK(3);
}
if (cycle == PST tick_cycle4) {
PST tick_cycle4 += PST period_cycles4;
if ((PST audctl & 8) != 0)
PST tick_cycle3 = cycle + PST reload_cycles3;
if ((PST audctl & 2) != 0 && PST delta2 > 0 && PST mute2 == 0)
PST delta_buffer[CYCLE_TO_SAMPLE(cycle)] += PST delta2 = -PST delta2;
DO_TICK(4);
}
if (cycle == PST tick_cycle1) {
PST tick_cycle1 += PST period_cycles1;
if ((PST skctl & 0x88) == 8)
PST tick_cycle2 = cycle + PST period_cycles2;
DO_TICK(1);
}
if (cycle == PST tick_cycle2) {
PST tick_cycle2 += PST period_cycles2;
if ((PST audctl & 0x10) != 0)
PST tick_cycle1 = cycle + PST reload_cycles1;
else if ((PST skctl & 8) != 0)
PST tick_cycle1 = cycle + PST period_cycles1;
DO_TICK(2);
}
}
}
#define MUTE_CHANNEL(ch, cond, mask) \
if (cond) { \
PST mute##ch |= mask; \
PST tick_cycle##ch = NEVER; \
} \
else { \
PST mute##ch &= ~mask; \
if (PST tick_cycle##ch == NEVER && PST mute##ch == 0) \
PST tick_cycle##ch = AST cycle; \
}
#define DO_ULTRASOUND(ch) \
MUTE_CHANNEL(ch, PST period_cycles##ch <= ULTRASOUND_CYCLES && (PST audc##ch >> 4 == 10 || PST audc##ch >> 4 == 14), MUTE_FREQUENCY)
#define DO_AUDC(ch) \
if (data == PST audc##ch) \
break; \
generate(ast, pst, AST cycle); \
PST audc##ch = data; \
if ((data & 0x10) != 0) { \
data &= 0xf; \
if ((PST mute##ch & MUTE_USER) == 0) \
PST delta_buffer[CYCLE_TO_SAMPLE(AST cycle)] \
+= PST delta##ch > 0 ? data - PST delta##ch : data; \
PST delta##ch = data; \
} \
else { \
data &= 0xf; \
DO_ULTRASOUND(ch); \
if (PST delta##ch > 0) { \
if ((PST mute##ch & MUTE_USER) == 0) \
PST delta_buffer[CYCLE_TO_SAMPLE(AST cycle)] \
+= data - PST delta##ch; \
PST delta##ch = data; \
} \
else \
PST delta##ch = -data; \
} \
break;
#define DO_INIT(ch, cond) \
MUTE_CHANNEL(ch, PST init && cond, MUTE_INIT)
ASAP_FUNC void PokeySound_PutByte(ASAP_State PTR ast, int addr, int data)
{
PokeyState PTR pst = (addr & AST extra_pokey_mask) != 0
? ADDRESSOF AST extra_pokey : ADDRESSOF AST base_pokey;
switch (addr & 0xf) {
case 0x00:
if (data == PST audf1)
break;
generate(ast, pst, AST cycle);
PST audf1 = data;
switch (PST audctl & 0x50) {
case 0x00:
PST period_cycles1 = PST div_cycles * (data + 1);
break;
case 0x10:
PST period_cycles2 = PST div_cycles * (data + 256 * PST audf2 + 1);
PST reload_cycles1 = PST div_cycles * (data + 1);
DO_ULTRASOUND(2);
break;
case 0x40:
PST period_cycles1 = data + 4;
break;
case 0x50:
PST period_cycles2 = data + 256 * PST audf2 + 7;
PST reload_cycles1 = data + 4;
DO_ULTRASOUND(2);
break;
}
DO_ULTRASOUND(1);
break;
case 0x01:
DO_AUDC(1)
case 0x02:
if (data == PST audf2)
break;
generate(ast, pst, AST cycle);
PST audf2 = data;
switch (PST audctl & 0x50) {
case 0x00:
case 0x40:
PST period_cycles2 = PST div_cycles * (data + 1);
break;
case 0x10:
PST period_cycles2 = PST div_cycles * (PST audf1 + 256 * data + 1);
break;
case 0x50:
PST period_cycles2 = PST audf1 + 256 * data + 7;
break;
}
DO_ULTRASOUND(2);
break;
case 0x03:
DO_AUDC(2)
case 0x04:
if (data == PST audf3)
break;
generate(ast, pst, AST cycle);
PST audf3 = data;
switch (PST audctl & 0x28) {
case 0x00:
PST period_cycles3 = PST div_cycles * (data + 1);
break;
case 0x08:
PST period_cycles4 = PST div_cycles * (data + 256 * PST audf4 + 1);
PST reload_cycles3 = PST div_cycles * (data + 1);
DO_ULTRASOUND(4);
break;
case 0x20:
PST period_cycles3 = data + 4;
break;
case 0x28:
PST period_cycles4 = data + 256 * PST audf4 + 7;
PST reload_cycles3 = data + 4;
DO_ULTRASOUND(4);
break;
}
DO_ULTRASOUND(3);
break;
case 0x05:
DO_AUDC(3)
case 0x06:
if (data == PST audf4)
break;
generate(ast, pst, AST cycle);
PST audf4 = data;
switch (PST audctl & 0x28) {
case 0x00:
case 0x20:
PST period_cycles4 = PST div_cycles * (data + 1);
break;
case 0x08:
PST period_cycles4 = PST div_cycles * (PST audf3 + 256 * data + 1);
break;
case 0x28:
PST period_cycles4 = PST audf3 + 256 * data + 7;
break;
}
DO_ULTRASOUND(4);
break;
case 0x07:
DO_AUDC(4)
case 0x08:
if (data == PST audctl)
break;
generate(ast, pst, AST cycle);
PST audctl = data;
PST div_cycles = ((data & 1) != 0) ? 114 : 28;
/* TODO: tick_cycles */
switch (data & 0x50) {
case 0x00:
PST period_cycles1 = PST div_cycles * (PST audf1 + 1);
PST period_cycles2 = PST div_cycles * (PST audf2 + 1);
break;
case 0x10:
PST period_cycles1 = PST div_cycles * 256;
PST period_cycles2 = PST div_cycles * (PST audf1 + 256 * PST audf2 + 1);
PST reload_cycles1 = PST div_cycles * (PST audf1 + 1);
break;
case 0x40:
PST period_cycles1 = PST audf1 + 4;
PST period_cycles2 = PST div_cycles * (PST audf2 + 1);
break;
case 0x50:
PST period_cycles1 = 256;
PST period_cycles2 = PST audf1 + 256 * PST audf2 + 7;
PST reload_cycles1 = PST audf1 + 4;
break;
}
DO_ULTRASOUND(1);
DO_ULTRASOUND(2);
switch (data & 0x28) {
case 0x00:
PST period_cycles3 = PST div_cycles * (PST audf3 + 1);
PST period_cycles4 = PST div_cycles * (PST audf4 + 1);
break;
case 0x08:
PST period_cycles3 = PST div_cycles * 256;
PST period_cycles4 = PST div_cycles * (PST audf3 + 256 * PST audf4 + 1);
PST reload_cycles3 = PST div_cycles * (PST audf3 + 1);
break;
case 0x20:
PST period_cycles3 = PST audf3 + 4;
PST period_cycles4 = PST div_cycles * (PST audf4 + 1);
break;
case 0x28:
PST period_cycles3 = 256;
PST period_cycles4 = PST audf3 + 256 * PST audf4 + 7;
PST reload_cycles3 = PST audf3 + 4;
break;
}
DO_ULTRASOUND(3);
DO_ULTRASOUND(4);
break;
case 0x09:
/* TODO: STIMER */
break;
case 0x0f:
PST skctl = data;
PST init = ((data & 3) == 0);
DO_INIT(1, (PST audctl & 0x40) == 0);
DO_INIT(2, (PST audctl & 0x50) != 0x50);
DO_INIT(3, (PST audctl & 0x20) == 0);
DO_INIT(4, (PST audctl & 0x28) != 0x28);
break;
default:
break;
}
}
ASAP_FUNC int PokeySound_GetRandom(ASAP_State PTR ast, int addr)
{
PokeyState PTR pst = (addr & AST extra_pokey_mask) != 0
? ADDRESSOF AST extra_pokey : ADDRESSOF AST base_pokey;
int i;
if (PST init)
return 0xff;
i = AST cycle + PST poly_index;
if ((PST audctl & 0x80) != 0)
return AST poly9_lookup[i % 511];
else {
int j;
i %= 131071;
j = i >> 3;
i &= 7;
return ((AST poly17_lookup[j] >> i) + (AST poly17_lookup[j + 1] << (8 - i))) & 0xff;
}
}
FILE_FUNC void end_frame(ASAP_State PTR ast, PokeyState PTR pst, int cycle_limit)
{
int m;
generate(ast, pst, cycle_limit);
PST poly_index += cycle_limit;
m = ((PST audctl & 0x80) != 0) ? 15 * 31 * 511 : 15 * 31 * 131071;
if (PST poly_index >= 2 * m)
PST poly_index -= m;
if (PST tick_cycle1 != NEVER)
PST tick_cycle1 -= cycle_limit;
if (PST tick_cycle2 != NEVER)
PST tick_cycle2 -= cycle_limit;
if (PST tick_cycle3 != NEVER)
PST tick_cycle3 -= cycle_limit;
if (PST tick_cycle4 != NEVER)
PST tick_cycle4 -= cycle_limit;
}
ASAP_FUNC void PokeySound_StartFrame(ASAP_State PTR ast)
{
ZERO_ARRAY(AST base_pokey.delta_buffer);
if (AST extra_pokey_mask != 0)
ZERO_ARRAY(AST extra_pokey.delta_buffer);
}
ASAP_FUNC void PokeySound_EndFrame(ASAP_State PTR ast, int current_cycle)
{
end_frame(ast, ADDRESSOF AST base_pokey, current_cycle);
if (AST extra_pokey_mask != 0)
end_frame(ast, ADDRESSOF AST extra_pokey, current_cycle);
AST sample_offset += current_cycle * ASAP_SAMPLE_RATE;
AST sample_index = 0;
AST samples = AST sample_offset / ASAP_MAIN_CLOCK;
AST sample_offset %= ASAP_MAIN_CLOCK;
}
ASAP_FUNC int PokeySound_Generate(ASAP_State PTR ast, byte ARRAY buffer, int buffer_offset, int blocks, ASAP_SampleFormat format)
{
int i = AST sample_index;
int samples = AST samples;
int acc_left = AST iir_acc_left;
int acc_right = AST iir_acc_right;
if (blocks < samples - i)
samples = i + blocks;
else
blocks = samples - i;
for (; i < samples; i++) {
int sample;
acc_left += (AST base_pokey.delta_buffer[i] << 20) - (acc_left * 3 >> 10);
sample = acc_left >> 10;
#define STORE_SAMPLE \
if (sample < -32767) \
sample = -32767; \
else if (sample > 32767) \
sample = 32767; \
switch (format) { \
case ASAP_FORMAT_U8: \
buffer[buffer_offset++] = (byte) ((sample >> 8) + 128); \
break; \
case ASAP_FORMAT_S16_LE: \
buffer[buffer_offset++] = (byte) sample; \
buffer[buffer_offset++] = (byte) (sample >> 8); \
break; \
case ASAP_FORMAT_S16_BE: \
buffer[buffer_offset++] = (byte) (sample >> 8); \
buffer[buffer_offset++] = (byte) sample; \
break; \
}
STORE_SAMPLE;
if (AST extra_pokey_mask != 0) {
acc_right += (AST extra_pokey.delta_buffer[i] << 20) - (acc_right * 3 >> 10);
sample = acc_right >> 10;
STORE_SAMPLE;
}
}
if (i == AST samples) {
acc_left += AST base_pokey.delta_buffer[i] << 20;
acc_right += AST extra_pokey.delta_buffer[i] << 20;
}
AST sample_index = i;
AST iir_acc_left = acc_left;
AST iir_acc_right = acc_right;
return blocks;
}
ASAP_FUNC abool PokeySound_IsSilent(const PokeyState PTR pst)
{
return ((PST audc1 | PST audc2 | PST audc3 | PST audc4) & 0xf) == 0;
}
ASAP_FUNC void PokeySound_Mute(const ASAP_State PTR ast, PokeyState PTR pst, int mask)
{
MUTE_CHANNEL(1, (mask & 1) != 0, MUTE_USER);
MUTE_CHANNEL(2, (mask & 2) != 0, MUTE_USER);
MUTE_CHANNEL(3, (mask & 4) != 0, MUTE_USER);
MUTE_CHANNEL(4, (mask & 8) != 0, MUTE_USER);
}

2000
apps/codecs/asap/asap.c Normal file

File diff suppressed because it is too large Load diff

299
apps/codecs/asap/asap.h Normal file
View file

@ -0,0 +1,299 @@
/*
* asap.h - public interface of the ASAP engine
*
* Copyright (C) 2005-2008 Piotr Fusik
*
* This file is part of ASAP (Another Slight Atari Player),
* see http://asap.sourceforge.net
*
* ASAP is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version.
*
* ASAP is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with ASAP; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef _ASAP_H_
#define _ASAP_H_
#ifdef __cplusplus
extern "C" {
#endif
/* ASAP version. */
#define ASAP_VERSION_MAJOR 1
#define ASAP_VERSION_MINOR 2
#define ASAP_VERSION_MICRO 0
#define ASAP_VERSION "1.2.0"
/* Short credits of the ASAP engine. */
#define ASAP_YEARS "2005-2008"
#define ASAP_CREDITS \
"Another Slight Atari Player (C) 2005-2008 Piotr Fusik\n" \
"CMC, MPT, TMC players (C) 1994-2005 Marcin Lewandowski\n" \
"RMT player (C) 2002-2005 Radek Sterba\n"
/* Short GPL notice.
Display after the credits. */
#define ASAP_COPYRIGHT \
"This program is free software; you can redistribute it and/or modify\n" \
"it under the terms of the GNU General Public License as published\n" \
"by the Free Software Foundation; either version 2 of the License,\n" \
"or (at your option) any later version."
/* Useful type definitions. */
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
typedef int abool;
typedef unsigned char byte;
/* Information about a file. */
typedef struct {
char author[128]; /* author's name */
char name[128]; /* title */
char date[128]; /* creation date */
int channels; /* 1 for mono or 2 for stereo */
int songs; /* number of subsongs */
int default_song; /* 0-based index of the "main" subsong */
int durations[32]; /* lengths of songs, in milliseconds, -1 = unspecified */
abool loops[32]; /* whether songs repeat or not */
/* the following technical information should not be used outside ASAP. */
char type;
int fastplay;
int music;
int init;
int player;
int header_len;
byte song_pos[128];
} ASAP_ModuleInfo;
/* POKEY state.
Not for use outside the ASAP engine. */
typedef struct {
int audctl;
abool init;
int poly_index;
int div_cycles;
int mute1;
int mute2;
int mute3;
int mute4;
int audf1;
int audf2;
int audf3;
int audf4;
int audc1;
int audc2;
int audc3;
int audc4;
int tick_cycle1;
int tick_cycle2;
int tick_cycle3;
int tick_cycle4;
int period_cycles1;
int period_cycles2;
int period_cycles3;
int period_cycles4;
int reload_cycles1;
int reload_cycles3;
int out1;
int out2;
int out3;
int out4;
int delta1;
int delta2;
int delta3;
int delta4;
int skctl;
char delta_buffer[888];
} PokeyState;
/* Player state.
Only module_info is meant to be read outside the ASAP engine. */
typedef struct {
int cycle;
int cpu_pc;
int cpu_a;
int cpu_x;
int cpu_y;
int cpu_s;
int cpu_nz;
int cpu_c;
int cpu_vdi;
int scanline_number;
int nearest_event_cycle;
int next_scanline_cycle;
int timer1_cycle;
int timer2_cycle;
int timer4_cycle;
int irqst;
int extra_pokey_mask;
PokeyState base_pokey;
PokeyState extra_pokey;
int sample_offset;
int sample_index;
int samples;
int iir_acc_left;
int iir_acc_right;
ASAP_ModuleInfo module_info;
int tmc_per_frame;
int tmc_per_frame_counter;
int current_song;
int current_duration;
int blocks_played;
int silence_cycles;
int silence_cycles_counter;
byte poly9_lookup[511];
byte poly17_lookup[16385];
byte memory[65536];
} ASAP_State;
/* Maximum length of a "mm:ss.xxx" string including the terminator. */
#define ASAP_DURATION_CHARS 10
/* Maximum length of a supported input file.
You can assume that files longer than this are not supported by ASAP. */
#define ASAP_MODULE_MAX 65000
/* Output sample rate. */
#define ASAP_SAMPLE_RATE 44100
/* Output formats. */
typedef enum {
ASAP_FORMAT_U8 = 8, /* unsigned char */
ASAP_FORMAT_S16_LE = 16, /* signed short, little-endian */
ASAP_FORMAT_S16_BE = -16 /* signed short, big-endian */
} ASAP_SampleFormat;
/* Parses the string in the "mm:ss.xxx" format
and returns the number of milliseconds or -1 if an error occurs. */
int ASAP_ParseDuration(const char *s);
/* Converts number of milliseconds to a string in the "mm:ss.xxx" format. */
void ASAP_DurationToString(char *s, int duration);
/* Checks whether the extension of the passed filename is known to ASAP. */
abool ASAP_IsOurFile(const char *filename);
/* Checks whether the filename extension is known to ASAP. */
abool ASAP_IsOurExt(const char *ext);
/* Changes the filename extension, returns true on success. */
abool ASAP_ChangeExt(char *filename, const char *ext);
/* Gets information about a module.
"module_info" is the structure where the information is returned.
"filename" determines file format.
"module" is the music data (contents of the file).
"module_len" is the number of data bytes.
ASAP_GetModuleInfo() returns true on success. */
abool ASAP_GetModuleInfo(ASAP_ModuleInfo *module_info, const char *filename,
const byte module[], int module_len);
/* Loads music data.
"as" is the destination structure.
"filename" determines file format.
"module" is the music data (contents of the file).
"module_len" is the number of data bytes.
ASAP does not make copies of the passed pointers. You can overwrite
or free "filename" and "module" once this function returns.
ASAP_Load() returns true on success.
If false is returned, the structure is invalid and you cannot
call the following functions. */
abool ASAP_Load(ASAP_State *as, const char *filename,
const byte module[], int module_len);
/* Enables silence detection.
Makes ASAP finish playing after the specified period of silence.
"as" is ASAP state initialized by ASAP_Load().
"seconds" is the minimum length of silence that ends playback. */
void ASAP_DetectSilence(ASAP_State *as, int seconds);
/* Prepares ASAP to play the specified song of the loaded module.
"as" is ASAP state initialized by ASAP_Load().
"song" is a zero-based index which must be less than the "songs" field
of the ASAP_ModuleInfo structure.
"duration" is playback time in milliseconds - use durations[song]
unless you want to override it. -1 means indefinitely. */
void ASAP_PlaySong(ASAP_State *as, int song, int duration);
/* Mutes the selected POKEY channels.
This is only useful for people who want to grab samples of individual
instruments.
"as" is ASAP state after calling ASAP_PlaySong().
"mask" is a bit mask which selects POKEY channels to be muted.
Bits 0-3 control the base POKEY channels,
bits 4-7 control the extra POKEY channels. */
void ASAP_MutePokeyChannels(ASAP_State *as, int mask);
/* Rewinds the current song.
"as" is ASAP state initialized by ASAP_PlaySong().
"position" is the requested absolute position in milliseconds. */
void ASAP_Seek(ASAP_State *as, int position);
/* Fills the specified buffer with generated samples.
"as" is ASAP state initialized by ASAP_PlaySong().
"buffer" is the destination buffer.
"buffer_len" is the length of this buffer in bytes.
"format" is the format of samples.
ASAP_Generate() returns number of bytes actually written
(less than buffer_len if reached the end of the song).
Normally you use a buffer of a few kilobytes or less,
and call ASAP_Generate() in a loop or via a callback. */
int ASAP_Generate(ASAP_State *as, void *buffer, int buffer_len,
ASAP_SampleFormat format);
/* Checks whether information in the specified file can be edited. */
abool ASAP_CanSetModuleInfo(const char *filename);
/* Updates the specified module with author, name, date, stereo
and song durations as specified in "module_info".
"module_info" contains the new module information.
"module" is the source file contents.
"module_len" is the source file length.
"out_module" is the destination buffer of size ASAP_MODULE_MAX.
ASAP_SetModuleInfo() returns the resulting file length (number of bytes
written to "out_module") or -1 if illegal characters were found. */
int ASAP_SetModuleInfo(const ASAP_ModuleInfo *module_info, const byte module[],
int module_len, byte out_module[]);
/* Checks whether the specified module can be converted to another format.
"filename" determines the source format.
"module_info" contains the information about the source module,
with possibly modified public fields.
"module" is the source file contents.
"module_len" is the source file length.
ASAP_CanConvert() returns the extension of the target format
or NULL if there's no possible conversion. */
const char *ASAP_CanConvert(const char *filename, const ASAP_ModuleInfo *module_info,
const byte module[], int module_len);
/* Converts the specified module to the format returned by ASAP_CanConvert().
"filename" determines the source format.
"module_info" contains the information about the source module,
with possibly modified public fields.
"module" is the source file contents.
"module_len" is the source file length.
"out_module" is the destination buffer of size ASAP_MODULE_MAX.
ASAP_Convert() returns the resulting file length (number of bytes
written to "out_module") or -1 on error. */
int ASAP_Convert(const char *filename, const ASAP_ModuleInfo *module_info,
const byte module[], int module_len, byte out_module[]);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -0,0 +1,93 @@
/*
* asap_internal.h - private interface of the ASAP engine
*
* Copyright (C) 2005-2008 Piotr Fusik
*
* This file is part of ASAP (Another Slight Atari Player),
* see http://asap.sourceforge.net
*
* ASAP is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version.
*
* ASAP is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with ASAP; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef _ASAP_INTERNAL_H_
#define _ASAP_INTERNAL_H_
#if !defined(JAVA) && !defined(CSHARP)
#include "asap.h"
#define CONST_LOOKUP(type, name) \
static const type name[]
#define FILE_FUNC static
#define ASAP_FUNC
#define PTR *
#define ADDRESSOF &
#define ARRAY *
#define VOIDPTR void *
#define UBYTE(data) (data)
#define SBYTE(data) (signed char) (data)
#define STRING const char *
#define ZERO_ARRAY(array) memset(array, 0, sizeof(array))
#define COPY_ARRAY(dest, dest_offset, src, src_offset, len) \
memcpy(dest + dest_offset, src + src_offset, len)
#define NEW_ARRAY(type, name, size) \
type name[size]
#define INIT_ARRAY(array) memset(array, 0, sizeof(array))
#define AST ast->
#define PST pst->
#define MODULE_INFO module_info->
#define ASAP_OBX const byte *
#define GET_OBX(name) name##_obx
int ASAP_GetByte(ASAP_State *ast, int addr);
void ASAP_PutByte(ASAP_State *ast, int addr, int data);
void Cpu_RunScanlines(ASAP_State *ast, int scanlines);
void PokeySound_Initialize(ASAP_State *ast);
void PokeySound_StartFrame(ASAP_State *ast);
void PokeySound_PutByte(ASAP_State *ast, int addr, int data);
int PokeySound_GetRandom(ASAP_State *ast, int addr);
void PokeySound_EndFrame(ASAP_State *ast, int cycle_limit);
int PokeySound_Generate(ASAP_State *ast, byte buffer[], int buffer_offset, int blocks, ASAP_SampleFormat format);
abool PokeySound_IsSilent(const PokeyState *pst);
void PokeySound_Mute(const ASAP_State *ast, PokeyState *pst, int mask);
#ifdef ASAPSCAN
abool call_6502_player(ASAP_State *ast);
extern abool cpu_trace;
void print_cpu_state(const ASAP_State *ast, int pc, int a, int x, int y, int s, int nz, int vdi, int c);
#endif
#endif /* !defined(JAVA) && !defined(CSHARP) */
#define ASAP_MAIN_CLOCK 1773447
#define V_FLAG 0x40
#define D_FLAG 0x08
#define I_FLAG 0x04
#define Z_FLAG 0x02
#define NEVER 0x800000
#define dGetByte(addr) UBYTE(AST memory[addr])
#define dPutByte(addr, data) AST memory[addr] = (byte) (data)
#define dGetWord(addr) (dGetByte(addr) + (dGetByte((addr) + 1) << 8))
#define GetByte(addr) (((addr) & 0xf900) == 0xd000 ? ASAP_GetByte(ast, addr) : dGetByte(addr))
#define PutByte(addr, data) do { if (((addr) & 0xf900) == 0xd000) ASAP_PutByte(ast, addr, data); else dPutByte(addr, data); } while (FALSE)
#define RMW_GetByte(dest, addr) do { if (((addr) >> 8) == 0xd2) { dest = ASAP_GetByte(ast, addr); AST cycle--; ASAP_PutByte(ast, addr, dest); AST cycle++; } else dest = dGetByte(addr); } while (FALSE)
#endif /* _ASAP_INTERNAL_H_ */

947
apps/codecs/asap/players.h Normal file
View file

@ -0,0 +1,947 @@
static const unsigned char cmc_obx[] = {
0xFF, 0xFF, 0x00, 0x05, 0xDC, 0x0C, 0x4C, 0x0F, 0x0B, 0x4C, 0x78, 0x05, 0x4C, 0xCB, 0x07, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xE3, 0xED, 0xE3, 0xA0, 0xF0, 0xEC, 0xE1,
0xF9, 0xE5, 0xF2, 0xA0, 0xF6, 0xA0, 0xB2, 0xAE, 0xB1, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x6E,
0x05, 0x8E, 0x6F, 0x05, 0x8C, 0x70, 0x05, 0x29, 0x70, 0x4A, 0x4A, 0x4A, 0xAA, 0xBD, 0x91, 0x0B,
0x8D, 0xA9, 0x05, 0xBD, 0x92, 0x0B, 0x8D, 0xAA, 0x05, 0xA9, 0x03, 0x8D, 0x0F, 0xD2, 0xD8, 0xA5,
0xFE, 0x48, 0xA5, 0xFF, 0x48, 0xAC, 0x70, 0x05, 0xAE, 0x6F, 0x05, 0xAD, 0x6E, 0x05, 0x20, 0xB2,
0x05, 0x68, 0x85, 0xFF, 0x68, 0x85, 0xFE, 0x60, 0xAD, 0x76, 0x05, 0x85, 0xFE, 0xAD, 0x77, 0x05,
0x85, 0xFF, 0xA0, 0x00, 0x8A, 0xF0, 0x1C, 0xB1, 0xFE, 0xC9, 0x8F, 0xF0, 0x04, 0xC9, 0xEF, 0xD0,
0x0C, 0xCA, 0xD0, 0x09, 0xC8, 0xC0, 0x54, 0xB0, 0x09, 0x98, 0xAA, 0x10, 0x06, 0xC8, 0xC0, 0x54,
0x90, 0xE5, 0x60, 0x8E, 0x68, 0x05, 0x20, 0x7B, 0x06, 0xA9, 0x00, 0xA2, 0x09, 0x9D, 0x45, 0x05,
0xCA, 0x10, 0xFA, 0x8D, 0x67, 0x05, 0xA9, 0x01, 0x8D, 0x71, 0x05, 0xA9, 0xFF, 0x8D, 0x6A, 0x05,
0xAD, 0x72, 0x05, 0x85, 0xFE, 0xAD, 0x73, 0x05, 0x85, 0xFF, 0xA0, 0x13, 0xB1, 0xFE, 0xAA, 0xAD,
0x76, 0x05, 0x85, 0xFE, 0xAD, 0x77, 0x05, 0x85, 0xFF, 0xAC, 0x68, 0x05, 0xB1, 0xFE, 0xC9, 0xCF,
0xD0, 0x0D, 0x98, 0x18, 0x69, 0x55, 0xA8, 0xB1, 0xFE, 0x30, 0x0F, 0xAA, 0x4C, 0x34, 0x06, 0xC9,
0x8F, 0xF0, 0x07, 0xC9, 0xEF, 0xF0, 0x03, 0x88, 0x10, 0xE2, 0x8E, 0x6C, 0x05, 0x8E, 0x6D, 0x05,
0x60, 0x29, 0x0F, 0xF0, 0xF5, 0x8E, 0xDA, 0x0A, 0x8E, 0xF0, 0x0A, 0x8E, 0xFF, 0x0A, 0x8C, 0xDB,
0x0A, 0x8C, 0xF1, 0x0A, 0x8C, 0x00, 0x0B, 0x60, 0x8E, 0x72, 0x05, 0x86, 0xFE, 0x8C, 0x73, 0x05,
0x84, 0xFF, 0x18, 0x8A, 0x69, 0x14, 0x8D, 0x74, 0x05, 0x98, 0x69, 0x00, 0x8D, 0x75, 0x05, 0x8E,
0x76, 0x05, 0xC8, 0xC8, 0x8C, 0x77, 0x05, 0xA0, 0x13, 0xB1, 0xFE, 0x8D, 0x6C, 0x05, 0x8D, 0x6D,
0x05, 0xA2, 0x08, 0xA9, 0x00, 0x8D, 0x71, 0x05, 0x9D, 0x00, 0xD2, 0xE0, 0x03, 0xB0, 0x08, 0x9D,
0x09, 0x05, 0xA9, 0xFF, 0x9D, 0x39, 0x05, 0xCA, 0x10, 0xE9, 0xA9, 0x80, 0xA2, 0x03, 0x9D, 0x4B,
0x05, 0xCA, 0x10, 0xFA, 0x60, 0xA9, 0x01, 0x8D, 0x71, 0x05, 0xA9, 0x00, 0xF0, 0xEE, 0x29, 0x03,
0xC9, 0x03, 0xF0, 0xF0, 0xE0, 0x40, 0xB0, 0xEC, 0xC0, 0x1A, 0xB0, 0xE8, 0xAA, 0xA9, 0x80, 0x9D,
0x4B, 0x05, 0xA9, 0x00, 0x9D, 0x39, 0x05, 0x9D, 0x3C, 0x05, 0x9D, 0x3F, 0x05, 0xAD, 0x6F, 0x05,
0x9D, 0x0C, 0x05, 0xAD, 0x70, 0x05, 0x0A, 0x0A, 0x0A, 0x85, 0xFE, 0x18, 0xAD, 0x72, 0x05, 0x69,
0x30, 0x48, 0xAD, 0x73, 0x05, 0x69, 0x01, 0xA8, 0x68, 0x18, 0x65, 0xFE, 0x9D, 0x61, 0x05, 0x98,
0x69, 0x00, 0x9D, 0x64, 0x05, 0x18, 0xAD, 0x72, 0x05, 0x69, 0x94, 0x85, 0xFE, 0xAD, 0x73, 0x05,
0x69, 0x00, 0x85, 0xFF, 0xAD, 0x70, 0x05, 0x0A, 0x6D, 0x70, 0x05, 0x0A, 0xA8, 0xB1, 0xFE, 0x9D,
0x4F, 0x05, 0xC8, 0xB1, 0xFE, 0x9D, 0x52, 0x05, 0x29, 0x07, 0x8D, 0x6E, 0x05, 0xC8, 0xB1, 0xFE,
0x9D, 0x55, 0x05, 0xC8, 0xB1, 0xFE, 0x9D, 0x58, 0x05, 0xC8, 0xB1, 0xFE, 0x9D, 0x5B, 0x05, 0xC8,
0xB1, 0xFE, 0x9D, 0x5E, 0x05, 0xA0, 0x00, 0xAD, 0x6E, 0x05, 0xC9, 0x03, 0xD0, 0x02, 0xA0, 0x02,
0xC9, 0x07, 0xD0, 0x02, 0xA0, 0x04, 0xB9, 0xAF, 0x0B, 0x85, 0xFE, 0xB9, 0xB0, 0x0B, 0x85, 0xFF,
0xBD, 0x55, 0x05, 0x4A, 0x4A, 0x4A, 0x4A, 0x18, 0x6D, 0x6F, 0x05, 0x8D, 0x6F, 0x05, 0x8D, 0xC2,
0x07, 0xA8, 0xAD, 0x6E, 0x05, 0xC9, 0x07, 0xD0, 0x0F, 0x98, 0x0A, 0xA8, 0xB1, 0xFE, 0x9D, 0x2D,
0x05, 0xC8, 0x8C, 0x6F, 0x05, 0x4C, 0x83, 0x07, 0xB1, 0xFE, 0x9D, 0x2D, 0x05, 0xBD, 0x55, 0x05,
0x29, 0x0F, 0x18, 0x6D, 0x6F, 0x05, 0x8D, 0x6F, 0x05, 0xAC, 0x6F, 0x05, 0xAD, 0x6E, 0x05, 0xC9,
0x05, 0x08, 0xB1, 0xFE, 0x28, 0xF0, 0x08, 0xDD, 0x2D, 0x05, 0xD0, 0x03, 0x38, 0xE9, 0x01, 0x9D,
0x30, 0x05, 0xBD, 0x4F, 0x05, 0x48, 0x29, 0x03, 0xA8, 0xB9, 0xB5, 0x0B, 0x9D, 0x36, 0x05, 0x68,
0x4A, 0x4A, 0x4A, 0x4A, 0xA0, 0x3E, 0xC9, 0x0F, 0xF0, 0x10, 0xA0, 0x37, 0xC9, 0x0E, 0xF0, 0x0A,
0xA0, 0x30, 0xC9, 0x0D, 0xF0, 0x04, 0x18, 0x69, 0x00, 0xA8, 0xB9, 0xB9, 0x0B, 0x9D, 0x33, 0x05,
0x60, 0xD8, 0xA5, 0xFC, 0x48, 0xA5, 0xFD, 0x48, 0xA5, 0xFE, 0x48, 0xA5, 0xFF, 0x48, 0xAD, 0x71,
0x05, 0xD0, 0x03, 0x4C, 0x02, 0x0B, 0xAD, 0x4E, 0x05, 0xF0, 0x03, 0x4C, 0x6B, 0x09, 0xAD, 0x6C,
0x05, 0xCD, 0x6D, 0x05, 0xF0, 0x03, 0x4C, 0x58, 0x09, 0xAD, 0x67, 0x05, 0xF0, 0x03, 0x4C, 0xDC,
0x08, 0xA2, 0x02, 0xBC, 0x4B, 0x05, 0x30, 0x03, 0x9D, 0x4B, 0x05, 0x9D, 0x45, 0x05, 0xCA, 0x10,
0xF2, 0xAD, 0x76, 0x05, 0x85, 0xFC, 0xAD, 0x77, 0x05, 0x85, 0xFD, 0xAC, 0x68, 0x05, 0x84, 0xFE,
0xCC, 0x6A, 0x05, 0xD0, 0x19, 0xAD, 0x6B, 0x05, 0xF0, 0x14, 0xAD, 0x68, 0x05, 0xAC, 0x69, 0x05,
0x8C, 0x68, 0x05, 0xCE, 0x6B, 0x05, 0xD0, 0xE8, 0x8D, 0x68, 0x05, 0xA8, 0x10, 0xE2, 0xA2, 0x00,
0xB1, 0xFC, 0xC9, 0xFE, 0xD0, 0x0E, 0xAC, 0x68, 0x05, 0xC8, 0xC4, 0xFE, 0xF0, 0x43, 0x8C, 0x68,
0x05, 0x4C, 0x1A, 0x08, 0x9D, 0x42, 0x05, 0x18, 0x98, 0x69, 0x55, 0xA8, 0xE8, 0xE0, 0x03, 0x90,
0xDF, 0xAC, 0x68, 0x05, 0xB1, 0xFC, 0x10, 0x7A, 0xC9, 0xFF, 0xF0, 0x76, 0x4A, 0x4A, 0x4A, 0x29,
0x0E, 0xAA, 0xBD, 0xA1, 0x0B, 0x8D, 0x7E, 0x08, 0xBD, 0xA2, 0x0B, 0x8D, 0x7F, 0x08, 0xAD, 0x43,
0x05, 0x85, 0xFF, 0x20, 0x93, 0x08, 0x8C, 0x68, 0x05, 0xC0, 0x55, 0xB0, 0x04, 0xC4, 0xFE, 0xD0,
0x8F, 0xA4, 0xFE, 0x8C, 0x68, 0x05, 0x4C, 0x02, 0x0B, 0x20, 0x94, 0x06, 0xA0, 0xFF, 0x60, 0x30,
0xFB, 0xA8, 0x60, 0x30, 0xF7, 0x38, 0x98, 0xE5, 0xFF, 0xA8, 0x60, 0x30, 0xEF, 0x18, 0x98, 0x65,
0xFF, 0xA8, 0x60, 0x30, 0xE7, 0x8D, 0x6C, 0x05, 0x8D, 0x6D, 0x05, 0xC8, 0x60, 0x30, 0xDD, 0xAD,
0x44, 0x05, 0x30, 0xD8, 0x8D, 0x6B, 0x05, 0xC8, 0x8C, 0x69, 0x05, 0x18, 0x98, 0x65, 0xFF, 0x8D,
0x6A, 0x05, 0x60, 0x88, 0x30, 0x0A, 0xB1, 0xFC, 0xC9, 0x8F, 0xF0, 0x04, 0xC9, 0xEF, 0xD0, 0xF3,
0xC8, 0x60, 0xA2, 0x02, 0xBD, 0x48, 0x05, 0xF0, 0x05, 0xDE, 0x48, 0x05, 0x10, 0x63, 0xBD, 0x4B,
0x05, 0xD0, 0x5E, 0xBC, 0x42, 0x05, 0xC0, 0x40, 0xB0, 0x57, 0xAD, 0x74, 0x05, 0x85, 0xFC, 0xAD,
0x75, 0x05, 0x85, 0xFD, 0xB1, 0xFC, 0x85, 0xFE, 0x18, 0x98, 0x69, 0x40, 0xA8, 0xB1, 0xFC, 0x85,
0xFF, 0x25, 0xFE, 0xC9, 0xFF, 0xF0, 0x3A, 0xBC, 0x45, 0x05, 0xB1, 0xFE, 0x29, 0xC0, 0xD0, 0x0C,
0xB1, 0xFE, 0x29, 0x3F, 0x9D, 0x0F, 0x05, 0xFE, 0x45, 0x05, 0x10, 0xEB, 0xC9, 0x40, 0xD0, 0x13,
0xB1, 0xFE, 0x29, 0x3F, 0x8D, 0x6F, 0x05, 0xBD, 0x0F, 0x05, 0x8D, 0x70, 0x05, 0x20, 0xBC, 0x06,
0x4C, 0x48, 0x09, 0xC9, 0x80, 0xD0, 0x0A, 0xB1, 0xFE, 0x29, 0x3F, 0x9D, 0x48, 0x05, 0xFE, 0x45,
0x05, 0xCA, 0x10, 0x90, 0xAE, 0x67, 0x05, 0xE8, 0x8A, 0x29, 0x3F, 0x8D, 0x67, 0x05, 0xCE, 0x6D,
0x05, 0xD0, 0x0E, 0xAD, 0x6C, 0x05, 0x8D, 0x6D, 0x05, 0xAD, 0x67, 0x05, 0xD0, 0x03, 0xEE, 0x68,
0x05, 0xAC, 0x30, 0x05, 0xAD, 0x52, 0x05, 0x29, 0x07, 0xC9, 0x05, 0xF0, 0x04, 0xC9, 0x06, 0xD0,
0x01, 0x88, 0x8C, 0x27, 0x05, 0xA0, 0x00, 0xC9, 0x05, 0xF0, 0x04, 0xC9, 0x06, 0xD0, 0x02, 0xA0,
0x02, 0xC9, 0x07, 0xD0, 0x02, 0xA0, 0x28, 0x8C, 0x2C, 0x05, 0xA2, 0x02, 0xBD, 0x52, 0x05, 0x29,
0xE0, 0x9D, 0x28, 0x05, 0xBD, 0x61, 0x05, 0x85, 0xFC, 0xBD, 0x64, 0x05, 0x85, 0xFD, 0xBD, 0x39,
0x05, 0xC9, 0xFF, 0xF0, 0x36, 0xC9, 0x0F, 0xD0, 0x20, 0xBD, 0x3F, 0x05, 0xF0, 0x2D, 0xDE, 0x3F,
0x05, 0xBD, 0x3F, 0x05, 0xD0, 0x25, 0xBC, 0x09, 0x05, 0xF0, 0x01, 0x88, 0x98, 0x9D, 0x09, 0x05,
0xBD, 0x58, 0x05, 0x9D, 0x3F, 0x05, 0x4C, 0xE5, 0x09, 0xBD, 0x39, 0x05, 0x4A, 0xA8, 0xB1, 0xFC,
0x90, 0x04, 0x4A, 0x4A, 0x4A, 0x4A, 0x29, 0x0F, 0x9D, 0x09, 0x05, 0xBC, 0x2D, 0x05, 0xBD, 0x52,
0x05, 0x29, 0x07, 0xC9, 0x01, 0xD0, 0x1F, 0x88, 0x98, 0xC8, 0xDD, 0x30, 0x05, 0x08, 0xA9, 0x01,
0x28, 0xD0, 0x02, 0x0A, 0x0A, 0x3D, 0x3C, 0x05, 0xF0, 0x0C, 0xBC, 0x30, 0x05, 0xC0, 0xFF, 0xD0,
0x05, 0xA9, 0x00, 0x9D, 0x09, 0x05, 0x98, 0x9D, 0x24, 0x05, 0xA9, 0x01, 0x8D, 0x6E, 0x05, 0xBD,
0x39, 0x05, 0xC9, 0x0F, 0xF0, 0x38, 0x29, 0x07, 0xA8, 0xB9, 0xCD, 0x0C, 0x85, 0xFE, 0xBD, 0x39,
0x05, 0x29, 0x08, 0x08, 0x8A, 0x28, 0x18, 0xF0, 0x02, 0x69, 0x03, 0xA8, 0xB9, 0x5B, 0x05, 0x25,
0xFE, 0xF0, 0x1B, 0xBD, 0x33, 0x05, 0x9D, 0x24, 0x05, 0x8E, 0x6E, 0x05, 0xCA, 0x10, 0x08, 0x8D,
0x27, 0x05, 0xA9, 0x00, 0x8D, 0x2C, 0x05, 0xE8, 0xBD, 0x36, 0x05, 0x9D, 0x28, 0x05, 0xBD, 0x39,
0x05, 0x29, 0x0F, 0xC9, 0x0F, 0xF0, 0x10, 0xFE, 0x39, 0x05, 0xBD, 0x39, 0x05, 0xC9, 0x0F, 0xD0,
0x06, 0xBD, 0x58, 0x05, 0x9D, 0x3F, 0x05, 0xBD, 0x4B, 0x05, 0x10, 0x0A, 0xBD, 0x09, 0x05, 0xD0,
0x05, 0xA9, 0x40, 0x9D, 0x4B, 0x05, 0xFE, 0x3C, 0x05, 0xA0, 0x00, 0xBD, 0x52, 0x05, 0x4A, 0x4A,
0x4A, 0x4A, 0x90, 0x01, 0x88, 0x4A, 0x90, 0x01, 0xC8, 0x18, 0x98, 0x7D, 0x2D, 0x05, 0x9D, 0x2D,
0x05, 0xBD, 0x30, 0x05, 0xC9, 0xFF, 0xD0, 0x02, 0xA0, 0x00, 0x18, 0x98, 0x7D, 0x30, 0x05, 0x9D,
0x30, 0x05, 0xCA, 0x30, 0x03, 0x4C, 0x96, 0x09, 0xAD, 0x28, 0x05, 0x8D, 0x2B, 0x05, 0xAD, 0x52,
0x05, 0x29, 0x07, 0xAA, 0xA0, 0x03, 0xAD, 0x6E, 0x05, 0xF0, 0x03, 0xBC, 0xD5, 0x0C, 0x98, 0x48,
0xB9, 0xB9, 0x0C, 0x08, 0x29, 0x7F, 0xAA, 0x98, 0x29, 0x03, 0x0A, 0xA8, 0xBD, 0x24, 0x05, 0x99,
0x00, 0xD2, 0xC8, 0xBD, 0x09, 0x05, 0xE0, 0x03, 0xD0, 0x03, 0xAD, 0x09, 0x05, 0x1D, 0x28, 0x05,
0x28, 0x10, 0x02, 0xA9, 0x00, 0x99, 0x00, 0xD2, 0x68, 0xA8, 0x88, 0x29, 0x03, 0xD0, 0xCF, 0xA0,
0x08, 0xAD, 0x2C, 0x05, 0x99, 0x00, 0xD2, 0x18, 0x68, 0x85, 0xFF, 0x68, 0x85, 0xFE, 0x68, 0x85,
0xFD, 0x68, 0x85, 0xFC, 0x60, 0x68, 0xAA, 0xF0, 0x4E, 0xC9, 0x02, 0xF0, 0x06, 0x68, 0x68, 0xCA,
0xD0, 0xFB, 0x60, 0xA5, 0x14, 0xC5, 0x14, 0xF0, 0xFC, 0xAD, 0x24, 0x02, 0xC9, 0x86, 0xD0, 0x07,
0xAD, 0x25, 0x02, 0xC9, 0x0B, 0xF0, 0xE6, 0xAD, 0x24, 0x02, 0x8D, 0x8F, 0x0B, 0xAD, 0x25, 0x02,
0x8D, 0x90, 0x0B, 0xA9, 0x86, 0x8D, 0x24, 0x02, 0xA9, 0x0B, 0x8D, 0x25, 0x02, 0x68, 0x68, 0xF0,
0x03, 0x38, 0xE9, 0x01, 0x8D, 0x5D, 0x0B, 0x68, 0xA8, 0x68, 0xAA, 0xA9, 0x70, 0x20, 0x78, 0x05,
0xA9, 0x00, 0xA2, 0x00, 0x4C, 0x78, 0x05, 0xA5, 0x14, 0xC5, 0x14, 0xF0, 0xFC, 0xAD, 0x24, 0x02,
0xC9, 0x86, 0xD0, 0xAE, 0xAD, 0x25, 0x02, 0xC9, 0x0B, 0xD0, 0xA7, 0xAD, 0x8F, 0x0B, 0x8D, 0x24,
0x02, 0xAD, 0x90, 0x0B, 0x8D, 0x25, 0x02, 0xA9, 0x40, 0x4C, 0x78, 0x05, 0x20, 0xCB, 0x07, 0x90,
0x03, 0x20, 0x75, 0x0B, 0x4C, 0xFF, 0xFF, 0xB2, 0x05, 0xDD, 0x05, 0xA8, 0x06, 0x3B, 0x06, 0x7B,
0x06, 0x94, 0x06, 0x9F, 0x06, 0x52, 0x06, 0x93, 0x08, 0x99, 0x08, 0x9D, 0x08, 0xA5, 0x08, 0xAD,
0x08, 0xB7, 0x08, 0xCD, 0x08, 0xB9, 0x0B, 0xFA, 0x0B, 0x3B, 0x0C, 0x80, 0xA0, 0x20, 0x40, 0xFF,
0xF1, 0xE4, 0xD7, 0xCB, 0xC0, 0xB5, 0xAA, 0xA1, 0x98, 0x8F, 0x87, 0x7F, 0x78, 0x72, 0x6B, 0x65,
0x5F, 0x5A, 0x55, 0x50, 0x4B, 0x47, 0x43, 0x3F, 0x3C, 0x38, 0x35, 0x32, 0x2F, 0x2C, 0x2A, 0x27,
0x25, 0x23, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17, 0x16, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F,
0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF2, 0xE9, 0xDA, 0xCE, 0xBF, 0xB6, 0xAA, 0xA1, 0x98, 0x8F, 0x89, 0x80,
0x7A, 0x71, 0x6B, 0x65, 0x5F, 0x00, 0x56, 0x50, 0x67, 0x60, 0x5A, 0x55, 0x51, 0x4C, 0x48, 0x43,
0x3F, 0x3D, 0x39, 0x34, 0x33, 0x39, 0x2D, 0x2A, 0x28, 0x25, 0x24, 0x21, 0x1F, 0x1E, 0x00, 0x00,
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
0x00, 0x38, 0x0B, 0x8C, 0x0A, 0x00, 0x0A, 0x6A, 0x09, 0xE8, 0x08, 0x6A, 0x08, 0xEF, 0x07, 0x80,
0x07, 0x08, 0x07, 0xAE, 0x06, 0x46, 0x06, 0xE6, 0x05, 0x95, 0x05, 0x41, 0x05, 0xF6, 0x04, 0xB0,
0x04, 0x6E, 0x04, 0x30, 0x04, 0xF6, 0x03, 0xBB, 0x03, 0x84, 0x03, 0x52, 0x03, 0x22, 0x03, 0xF4,
0x02, 0xC8, 0x02, 0xA0, 0x02, 0x7A, 0x02, 0x55, 0x02, 0x34, 0x02, 0x14, 0x02, 0xF5, 0x01, 0xD8,
0x01, 0xBD, 0x01, 0xA4, 0x01, 0x8D, 0x01, 0x77, 0x01, 0x60, 0x01, 0x4E, 0x01, 0x38, 0x01, 0x27,
0x01, 0x15, 0x01, 0x06, 0x01, 0xF7, 0x00, 0xE8, 0x00, 0xDB, 0x00, 0xCF, 0x00, 0xC3, 0x00, 0xB8,
0x00, 0xAC, 0x00, 0xA2, 0x00, 0x9A, 0x00, 0x90, 0x00, 0x88, 0x00, 0x7F, 0x00, 0x78, 0x00, 0x70,
0x00, 0x6A, 0x00, 0x64, 0x00, 0x5E, 0x00, 0x57, 0x00, 0x52, 0x00, 0x32, 0x00, 0x0A, 0x00, 0x00,
0x01, 0x02, 0x83, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x02, 0x83, 0x01, 0x00, 0x02, 0x03, 0x01,
0x02, 0x80, 0x03, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x03, 0x03, 0x03, 0x03, 0x07,
0x0B, 0x0F, 0x13
};
static const unsigned char mpt_obx[] = {
0xFF, 0xFF, 0x00, 0x05, 0xB2, 0x0D, 0x4C, 0xCD, 0x0B, 0xAD, 0x2E, 0x07, 0xD0, 0x01, 0x60, 0xA9,
0x00, 0x8D, 0x1C, 0x0E, 0xEE, 0x1D, 0x0E, 0xAD, 0x17, 0x0E, 0xCD, 0xBB, 0x0D, 0x90, 0x50, 0xCE,
0x15, 0x0E, 0xF0, 0x03, 0x4C, 0xC5, 0x05, 0xA2, 0x00, 0x8E, 0x17, 0x0E, 0xA9, 0x00, 0x9D, 0xED,
0x0D, 0x9D, 0xF5, 0x0D, 0xBD, 0xB3, 0x0D, 0x85, 0xEC, 0xBD, 0xB7, 0x0D, 0x85, 0xED, 0xAC, 0x16,
0x0E, 0xB1, 0xEC, 0xC8, 0xC9, 0xFF, 0xF0, 0x07, 0xC9, 0xFE, 0xD0, 0x0F, 0x4C, 0x2A, 0x0C, 0xB1,
0xEC, 0x30, 0xF9, 0x0A, 0xA8, 0x8C, 0x16, 0x0E, 0x4C, 0x3B, 0x05, 0x9D, 0xE9, 0x0D, 0xB1, 0xEC,
0x9D, 0xD5, 0x0D, 0xE8, 0xE0, 0x04, 0xD0, 0xC4, 0xC8, 0x8C, 0x16, 0x0E, 0x4C, 0xC5, 0x05, 0xCE,
0x15, 0x0E, 0x10, 0x57, 0xAD, 0xBC, 0x0D, 0x8D, 0x15, 0x0E, 0xA2, 0x03, 0xDE, 0xF5, 0x0D, 0x10,
0x44, 0xBD, 0xE9, 0x0D, 0x0A, 0xA8, 0xB9, 0xFF, 0xFF, 0x85, 0xEC, 0xC8, 0xB9, 0xFF, 0xFF, 0x85,
0xED, 0x05, 0xEC, 0xF0, 0x30, 0xBD, 0xED, 0x0D, 0x8D, 0x1F, 0x0E, 0x20, 0x3E, 0x07, 0xAC, 0x1F,
0x0E, 0xC8, 0x98, 0x9D, 0xED, 0x0D, 0xBD, 0xF1, 0x0D, 0x9D, 0xF5, 0x0D, 0xE0, 0x02, 0xD0, 0x15,
0xBD, 0xC5, 0x0D, 0x49, 0x0F, 0x0A, 0x0A, 0x0A, 0x0A, 0x69, 0x45, 0x8D, 0xA1, 0x0D, 0xA9, 0x0A,
0x69, 0x00, 0x8D, 0xA2, 0x0D, 0xCA, 0x10, 0xB4, 0xEE, 0x17, 0x0E, 0xA2, 0x01, 0xAD, 0x1B, 0x0E,
0xC9, 0x02, 0xF0, 0x02, 0xA2, 0x03, 0xAD, 0x1B, 0x0E, 0xC9, 0x02, 0xD0, 0x05, 0xEC, 0x19, 0x0E,
0xF0, 0x03, 0x4C, 0x76, 0x06, 0xB5, 0xF0, 0x3D, 0x72, 0x06, 0xF0, 0x12, 0xA0, 0x28, 0xB1, 0xEC,
0x18, 0x7D, 0xE1, 0x0D, 0x20, 0x75, 0x09, 0x38, 0x7D, 0x01, 0x0E, 0x9D, 0xCB, 0x0D, 0xCA, 0x10,
0xD5, 0xA9, 0x03, 0x8D, 0x0F, 0xD2, 0xA5, 0xF1, 0x29, 0x10, 0xF0, 0x0F, 0xAC, 0xE2, 0x0D, 0xB9,
0xC6, 0x09, 0x8D, 0xC9, 0x0D, 0xB9, 0x05, 0x0A, 0x8D, 0xCA, 0x0D, 0xAD, 0xC9, 0x0D, 0x8D, 0x00,
0xD2, 0xAD, 0xCA, 0x0D, 0x8D, 0x02, 0xD2, 0xAD, 0xCB, 0x0D, 0x8D, 0x04, 0xD2, 0xAD, 0xCC, 0x0D,
0x8D, 0x06, 0xD2, 0xAD, 0xC1, 0x0D, 0xA2, 0xFF, 0xAC, 0x1B, 0x0E, 0xC0, 0x01, 0xD0, 0x05, 0xAE,
0x19, 0x0E, 0xF0, 0x03, 0x8D, 0x01, 0xD2, 0xAD, 0xC2, 0x0D, 0xE0, 0x01, 0xF0, 0x03, 0x8D, 0x03,
0xD2, 0xC0, 0x02, 0xF0, 0x14, 0xAD, 0xC3, 0x0D, 0xE0, 0x02, 0xF0, 0x03, 0x8D, 0x05, 0xD2, 0xAD,
0xC4, 0x0D, 0xE0, 0x03, 0xF0, 0x03, 0x8D, 0x07, 0xD2, 0xA5, 0xF0, 0x05, 0xF1, 0x05, 0xF2, 0x05,
0xF3, 0x0D, 0x1C, 0x0E, 0x8D, 0x08, 0xD2, 0x60, 0x04, 0x02, 0x00, 0x00, 0xBD, 0xD9, 0x0D, 0x85,
0xEC, 0xBD, 0xDD, 0x0D, 0x85, 0xED, 0x05, 0xEC, 0xD0, 0x08, 0x9D, 0xC1, 0x0D, 0x95, 0xF0, 0x4C,
0xF8, 0x05, 0xB4, 0xF4, 0xC0, 0x20, 0xF0, 0x42, 0xB1, 0xEC, 0x38, 0xFD, 0xC5, 0x0D, 0x2C, 0x3A,
0x07, 0xF0, 0x02, 0x29, 0xF0, 0x9D, 0xC1, 0x0D, 0xC8, 0xB1, 0xEC, 0x8D, 0x1E, 0x0E, 0xC8, 0x94,
0xF4, 0x29, 0x07, 0xF0, 0x3C, 0xA8, 0xB9, 0x7E, 0x09, 0x8D, 0xCB, 0x06, 0xB9, 0x85, 0x09, 0x8D,
0xCC, 0x06, 0xAD, 0x1E, 0x0E, 0x4A, 0x4A, 0x4A, 0x4A, 0x4A, 0x09, 0x28, 0xA8, 0xB1, 0xEC, 0x18,
0x20, 0xFF, 0xFF, 0xA9, 0x00, 0x95, 0xF0, 0x4C, 0xF8, 0x05, 0xBD, 0x09, 0x0E, 0xF0, 0x12, 0xDE,
0x0D, 0x0E, 0xD0, 0x0D, 0x9D, 0x0D, 0x0E, 0xBD, 0xC1, 0x0D, 0x29, 0x0F, 0xF0, 0x03, 0xDE, 0xC1,
0x0D, 0xA0, 0x23, 0xB1, 0xEC, 0x95, 0xF0, 0xBD, 0x11, 0x0E, 0x18, 0x69, 0x25, 0xA8, 0x29, 0x03,
0x9D, 0x11, 0x0E, 0x88, 0xB1, 0xEC, 0x7D, 0xD1, 0x0D, 0x9D, 0xE1, 0x0D, 0x20, 0x77, 0x09, 0x9D,
0xC9, 0x0D, 0xBD, 0x05, 0x0E, 0xF0, 0x06, 0xDE, 0x05, 0x0E, 0x4C, 0xDF, 0x05, 0xBD, 0xBD, 0x0D,
0x8D, 0x1E, 0x07, 0x10, 0xFE, 0x4C, 0xC2, 0x08, 0x00, 0x4C, 0xE5, 0x08, 0x00, 0x4C, 0xFB, 0x08,
0x00, 0x4C, 0x15, 0x09, 0x00, 0x4C, 0x25, 0x09, 0x00, 0x4C, 0x38, 0x09, 0x00, 0x4C, 0x42, 0x09,
0x10, 0x4C, 0x48, 0x09, 0xA9, 0x00, 0x9D, 0xC5, 0x0D, 0xAC, 0x1F, 0x0E, 0x88, 0xC8, 0xB1, 0xEC,
0xC9, 0xFE, 0xD0, 0x04, 0x8C, 0x1F, 0x0E, 0x60, 0xC9, 0xE0, 0x90, 0x08, 0xAD, 0xBB, 0x0D, 0x8D,
0x17, 0x0E, 0xD0, 0xE9, 0xC9, 0xD0, 0x90, 0x0A, 0x29, 0x0F, 0x8D, 0xBC, 0x0D, 0x8D, 0x15, 0x0E,
0x10, 0xDB, 0xC9, 0xC0, 0x90, 0x09, 0x29, 0x0F, 0x49, 0x0F, 0x9D, 0xC5, 0x0D, 0x10, 0xCE, 0xC9,
0x80, 0x90, 0x07, 0x29, 0x3F, 0x9D, 0xF1, 0x0D, 0x10, 0xC3, 0xC9, 0x40, 0x90, 0x1B, 0xC8, 0x8C,
0x1F, 0x0E, 0x29, 0x1F, 0x9D, 0xE5, 0x0D, 0x0A, 0xA8, 0xB9, 0xFF, 0xFF, 0x9D, 0xD9, 0x0D, 0xC8,
0xB9, 0xFF, 0xFF, 0x9D, 0xDD, 0x0D, 0x4C, 0x3E, 0x07, 0x8C, 0x1F, 0x0E, 0x8D, 0x1E, 0x0E, 0x18,
0x7D, 0xD5, 0x0D, 0x9D, 0xD1, 0x0D, 0xAD, 0x1B, 0x0E, 0xF0, 0x42, 0xC9, 0x02, 0xF0, 0x3A, 0xBD,
0xE5, 0x0D, 0xC9, 0x1F, 0xD0, 0x37, 0xAD, 0x1E, 0x0E, 0x38, 0xE9, 0x01, 0x29, 0x0F, 0xA8, 0xB1,
0xFE, 0x85, 0xFD, 0x98, 0x09, 0x10, 0xA8, 0xB1, 0xFE, 0x85, 0xF8, 0xA0, 0x01, 0x05, 0xFD, 0xD0,
0x02, 0xA0, 0x00, 0x8C, 0x1A, 0x0E, 0xA9, 0x00, 0x85, 0xFC, 0x9D, 0xD9, 0x0D, 0x9D, 0xDD, 0x0D,
0x8A, 0x0A, 0x8D, 0x18, 0x0E, 0x8E, 0x19, 0x0E, 0x60, 0xE0, 0x02, 0xB0, 0x63, 0xBD, 0xD9, 0x0D,
0x85, 0xEE, 0xBD, 0xDD, 0x0D, 0x85, 0xEF, 0x05, 0xEE, 0xF0, 0x4A, 0xA0, 0x20, 0xB1, 0xEE, 0x29,
0x0F, 0x9D, 0xF9, 0x0D, 0xB1, 0xEE, 0x29, 0x70, 0x4A, 0x4A, 0x9D, 0xBD, 0x0D, 0xC8, 0xB1, 0xEE,
0x0A, 0x0A, 0x48, 0x29, 0x3F, 0x9D, 0x05, 0x0E, 0x68, 0x29, 0xC0, 0x9D, 0xCD, 0x0D, 0xC8, 0xB1,
0xEE, 0x9D, 0x09, 0x0E, 0x9D, 0x0D, 0x0E, 0xA9, 0x00, 0x95, 0xF4, 0x9D, 0x11, 0x0E, 0x9D, 0xFD,
0x0D, 0x9D, 0x01, 0x0E, 0xBD, 0xD1, 0x0D, 0x9D, 0xE1, 0x0D, 0x20, 0x75, 0x09, 0x9D, 0xC9, 0x0D,
0xEC, 0x19, 0x0E, 0xF0, 0x01, 0x60, 0xA0, 0xFF, 0x8C, 0x19, 0x0E, 0xC8, 0x8C, 0x1A, 0x0E, 0x60,
0xE0, 0x02, 0xD0, 0x33, 0xAC, 0xD3, 0x0D, 0xB9, 0x45, 0x0B, 0x8D, 0x79, 0x0D, 0xB9, 0x81, 0x0B,
0x8D, 0x7F, 0x0D, 0xA9, 0x00, 0x85, 0xF9, 0x85, 0xFA, 0xAD, 0xE7, 0x0D, 0x29, 0x0F, 0xA8, 0xB1,
0xFE, 0x85, 0xFB, 0x98, 0x09, 0x10, 0xA8, 0xB1, 0xFE, 0x8D, 0x89, 0x0D, 0x05, 0xFB, 0xD0, 0x06,
0x8D, 0x79, 0x0D, 0x8D, 0x7F, 0x0D, 0x60, 0xAD, 0xE8, 0x0D, 0x29, 0x0F, 0xA8, 0xB1, 0xFE, 0x85,
0xFD, 0x98, 0x09, 0x10, 0xA8, 0xB1, 0xFE, 0x05, 0xFD, 0xF0, 0x0F, 0xB1, 0xFE, 0x38, 0xE5, 0xFD,
0x85, 0xF8, 0xA9, 0x00, 0x85, 0xFC, 0xA9, 0x8D, 0xD0, 0x02, 0xA9, 0xAD, 0x8D, 0x61, 0x0D, 0x8D,
0x38, 0x0D, 0xA9, 0x18, 0x8D, 0x07, 0xD2, 0x60, 0xAD, 0x1D, 0x0E, 0x29, 0x07, 0x4A, 0x4A, 0x90,
0x12, 0xD0, 0x18, 0xBD, 0xF9, 0x0D, 0x18, 0x9D, 0x01, 0x0E, 0x7D, 0xC9, 0x0D, 0x9D, 0xC9, 0x0D,
0x4C, 0xDF, 0x05, 0xA9, 0x00, 0x9D, 0x01, 0x0E, 0x4C, 0xDF, 0x05, 0xBD, 0xC9, 0x0D, 0x38, 0xFD,
0xF9, 0x0D, 0x9D, 0xC9, 0x0D, 0x38, 0xA9, 0x00, 0xFD, 0xF9, 0x0D, 0x9D, 0x01, 0x0E, 0x4C, 0xDF,
0x05, 0xBD, 0xFD, 0x0D, 0x18, 0x9D, 0x01, 0x0E, 0x7D, 0xC9, 0x0D, 0x9D, 0xC9, 0x0D, 0x18, 0xBD,
0xFD, 0x0D, 0x7D, 0xF9, 0x0D, 0x9D, 0xFD, 0x0D, 0x4C, 0xDF, 0x05, 0xBD, 0xE1, 0x0D, 0x38, 0xFD,
0xFD, 0x0D, 0x9D, 0xE1, 0x0D, 0x20, 0x75, 0x09, 0x4C, 0x05, 0x09, 0xA9, 0x00, 0x38, 0xFD, 0xFD,
0x0D, 0x9D, 0x01, 0x0E, 0xBD, 0xC9, 0x0D, 0x38, 0xFD, 0xFD, 0x0D, 0x4C, 0x05, 0x09, 0xBD, 0xE1,
0x0D, 0x18, 0x7D, 0xFD, 0x0D, 0x4C, 0x1C, 0x09, 0x20, 0x55, 0x09, 0x4C, 0xD0, 0x08, 0x20, 0x55,
0x09, 0x18, 0x7D, 0xE1, 0x0D, 0x20, 0x9B, 0x09, 0x4C, 0xDF, 0x05, 0xBC, 0xFD, 0x0D, 0xBD, 0xF9,
0x0D, 0x30, 0x02, 0xC8, 0xC8, 0x88, 0x98, 0x9D, 0xFD, 0x0D, 0xDD, 0xF9, 0x0D, 0xD0, 0x08, 0xBD,
0xF9, 0x0D, 0x49, 0xFF, 0x9D, 0xF9, 0x0D, 0xBD, 0xFD, 0x0D, 0x60, 0x29, 0x3F, 0x1D, 0xCD, 0x0D,
0xA8, 0xB9, 0xFF, 0xFF, 0x60, 0x94, 0x91, 0x98, 0xA5, 0xAD, 0xB4, 0xC0, 0x09, 0x09, 0x09, 0x09,
0x09, 0x09, 0x09, 0x40, 0x00, 0x20, 0x00, 0x7D, 0xC9, 0x0D, 0x9D, 0xC9, 0x0D, 0x60, 0x7D, 0xD1,
0x0D, 0x9D, 0xE1, 0x0D, 0x20, 0x75, 0x09, 0x9D, 0xC9, 0x0D, 0x60, 0x9D, 0xC9, 0x0D, 0xBD, 0x8D,
0x09, 0x10, 0x0C, 0x9D, 0xC9, 0x0D, 0xA9, 0x80, 0xD0, 0x05, 0x9D, 0xC9, 0x0D, 0xA9, 0x01, 0x0D,
0x1C, 0x0E, 0x8D, 0x1C, 0x0E, 0x60, 0x2D, 0x0A, 0xD2, 0x9D, 0xC9, 0x0D, 0x60, 0xF2, 0x33, 0x96,
0xE2, 0x38, 0x8C, 0x00, 0x6A, 0xE8, 0x6A, 0xEF, 0x80, 0x08, 0xAE, 0x46, 0xE6, 0x95, 0x41, 0xF6,
0xB0, 0x6E, 0x30, 0xF6, 0xBB, 0x84, 0x52, 0x22, 0xF4, 0xC8, 0xA0, 0x7A, 0x55, 0x34, 0x14, 0xF5,
0xD8, 0xBD, 0xA4, 0x8D, 0x77, 0x60, 0x4E, 0x38, 0x27, 0x15, 0x06, 0xF7, 0xE8, 0xDB, 0xCF, 0xC3,
0xB8, 0xAC, 0xA2, 0x9A, 0x90, 0x88, 0x7F, 0x78, 0x70, 0x6A, 0x64, 0x5E, 0x0D, 0x0D, 0x0C, 0x0B,
0x0B, 0x0A, 0x0A, 0x09, 0x08, 0x08, 0x07, 0x07, 0x07, 0x06, 0x06, 0x05, 0x05, 0x05, 0x04, 0x04,
0x04, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18,
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x16, 0x16, 0x17, 0x17, 0x17,
0x17, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x19, 0x19, 0x19, 0x1A, 0x15, 0x15, 0x16, 0x16, 0x16,
0x17, 0x17, 0x18, 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1A, 0x1B, 0x14, 0x15, 0x15, 0x16, 0x16,
0x17, 0x17, 0x18, 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B, 0x14, 0x14, 0x15, 0x15, 0x16,
0x16, 0x17, 0x17, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B, 0x1C, 0x13, 0x14, 0x14, 0x15, 0x16,
0x16, 0x17, 0x17, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1C, 0x1C, 0x13, 0x13, 0x14, 0x15, 0x15,
0x16, 0x17, 0x17, 0x18, 0x19, 0x19, 0x1A, 0x1B, 0x1B, 0x1C, 0x1D, 0x12, 0x13, 0x14, 0x14, 0x15,
0x16, 0x17, 0x17, 0x18, 0x19, 0x19, 0x1A, 0x1B, 0x1C, 0x1C, 0x1D, 0x12, 0x13, 0x13, 0x14, 0x15,
0x16, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1A, 0x1B, 0x1C, 0x1D, 0x1D, 0x12, 0x12, 0x13, 0x14, 0x15,
0x16, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x11, 0x12, 0x13, 0x14, 0x15,
0x16, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x11, 0x12, 0x13, 0x14, 0x15,
0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1B, 0x1C, 0x1D, 0x1E, 0x11, 0x12, 0x13, 0x14, 0x14,
0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1C, 0x1D, 0x1E, 0x11, 0x12, 0x13, 0x13, 0x14,
0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1D, 0x1E, 0x11, 0x12, 0x12, 0x13, 0x14,
0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1E, 0x10, 0x11, 0x12, 0x13, 0x14,
0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x22, 0x24, 0x26, 0x29,
0x2B, 0x2E, 0x30, 0x33, 0x37, 0x3A, 0x3D, 0x41, 0x45, 0x49, 0x4D, 0x52, 0x57, 0x5C, 0x61, 0x67,
0x6E, 0x74, 0x7B, 0x82, 0x8A, 0x92, 0x9B, 0xA4, 0xAE, 0xB8, 0xC3, 0xCF, 0xDC, 0xE9, 0xF6, 0x05,
0x15, 0x25, 0x37, 0x49, 0x5D, 0x71, 0x87, 0x9F, 0xB8, 0xD2, 0xED, 0x0B, 0x2A, 0x4B, 0x6E, 0x93,
0xBA, 0xE3, 0x0F, 0x3E, 0x70, 0xA4, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
0x03, 0x03, 0x03, 0xE5, 0x2A, 0x40, 0x59, 0x64, 0xEE, 0x08, 0xA6, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C,
0x0C, 0x0D, 0x0D, 0x8E, 0x32, 0x07, 0x8C, 0x36, 0x07, 0x29, 0x07, 0xA8, 0xB9, 0xBD, 0x0B, 0x8D,
0xE3, 0x0B, 0xB9, 0xC5, 0x0B, 0x8D, 0xE4, 0x0B, 0x4C, 0xFF, 0xFF, 0xAD, 0x36, 0x07, 0xAE, 0x32,
0x07, 0x8D, 0x94, 0x07, 0x8D, 0x9B, 0x07, 0x8E, 0x95, 0x07, 0x8E, 0x9C, 0x07, 0x18, 0x69, 0x40,
0x8D, 0x81, 0x05, 0x8D, 0x87, 0x05, 0x90, 0x01, 0xE8, 0x8E, 0x82, 0x05, 0x8E, 0x88, 0x05, 0x18,
0x69, 0x80, 0x8D, 0x7C, 0x09, 0x90, 0x01, 0xE8, 0x8E, 0x7D, 0x09, 0xE8, 0x8D, 0x1F, 0x0C, 0x8E,
0x20, 0x0C, 0xA2, 0x09, 0xBD, 0xFF, 0xFF, 0x9D, 0xB3, 0x0D, 0xCA, 0x10, 0xF7, 0xCE, 0xBC, 0x0D,
0xA9, 0x00, 0x8D, 0x2E, 0x07, 0xA2, 0x62, 0x9D, 0xBD, 0x0D, 0xCA, 0x10, 0xFA, 0xA2, 0x08, 0x9D,
0x00, 0xD2, 0xCA, 0x10, 0xFA, 0x60, 0x20, 0x2A, 0x0C, 0xAD, 0x32, 0x07, 0x0A, 0x8D, 0x16, 0x0E,
0xAD, 0xBB, 0x0D, 0x8D, 0x17, 0x0E, 0xA9, 0x01, 0x8D, 0x15, 0x0E, 0x8D, 0x2E, 0x07, 0x60, 0xAD,
0x36, 0x07, 0x85, 0xFE, 0xAD, 0x32, 0x07, 0x85, 0xFF, 0x60, 0xAD, 0x36, 0x07, 0x29, 0x03, 0xAA,
0xAD, 0x32, 0x07, 0x20, 0xC6, 0x07, 0xAD, 0x1A, 0x0E, 0xF0, 0xEE, 0x0E, 0x36, 0x07, 0x20, 0xBE,
0x0C, 0xA9, 0x01, 0x8D, 0x1B, 0x0E, 0xAD, 0x1A, 0x0E, 0xF0, 0xDE, 0xC9, 0x01, 0xD0, 0x05, 0xA0,
0x00, 0xEE, 0x1A, 0x0E, 0xB1, 0xFC, 0xAE, 0x18, 0x0E, 0x4A, 0x4A, 0x4A, 0x4A, 0x09, 0x10, 0x8D,
0x0A, 0xD4, 0x8D, 0x0A, 0xD4, 0x9D, 0x01, 0xD2, 0xB1, 0xFC, 0x09, 0x10, 0x8D, 0x0A, 0xD4, 0x8D,
0x0A, 0xD4, 0x9D, 0x01, 0xD2, 0xC8, 0xD0, 0xCE, 0xE6, 0xFD, 0xA5, 0xFD, 0xC5, 0xF8, 0xD0, 0xC6,
0x8C, 0x1A, 0x0E, 0x60, 0x90, 0x15, 0xA9, 0xEA, 0x8D, 0x99, 0x0C, 0x8D, 0x9A, 0x0C, 0x8D, 0x9B,
0x0C, 0x8D, 0xA6, 0x0C, 0x8D, 0xA7, 0x0C, 0x8D, 0xA8, 0x0C, 0x60, 0xA9, 0x8D, 0x8D, 0x99, 0x0C,
0x8D, 0xA6, 0x0C, 0xA9, 0x0A, 0x8D, 0x9A, 0x0C, 0x8D, 0xA7, 0x0C, 0xA9, 0xD4, 0x8D, 0x9B, 0x0C,
0x8D, 0xA8, 0x0C, 0x60, 0xA9, 0x00, 0x8D, 0x1A, 0x0E, 0xAD, 0x32, 0x07, 0x4A, 0x20, 0xBE, 0x0C,
0xA9, 0x01, 0x8D, 0x1B, 0x0E, 0x20, 0x80, 0x0C, 0xAD, 0x1B, 0x0E, 0xD0, 0xF8, 0x60, 0xA9, 0x02,
0x8D, 0x1B, 0x0E, 0x8D, 0x19, 0x0E, 0xA9, 0x18, 0x8D, 0x07, 0xD2, 0xA9, 0x11, 0x85, 0xFA, 0xA9,
0x0D, 0x85, 0xFB, 0xA9, 0xAD, 0x8D, 0x61, 0x0D, 0x8D, 0x38, 0x0D, 0xA0, 0x00, 0x8C, 0x79, 0x0D,
0x8C, 0x7F, 0x0D, 0xAE, 0x0B, 0xD4, 0xB1, 0xFC, 0x4A, 0x4A, 0x4A, 0x4A, 0x09, 0x10, 0x8D, 0x07,
0xD2, 0x20, 0x75, 0x0D, 0xEC, 0x0B, 0xD4, 0xF0, 0xFB, 0x8D, 0x05, 0xD2, 0xAE, 0x0B, 0xD4, 0xB1,
0xFC, 0xE6, 0xFC, 0xD0, 0x10, 0xE6, 0xFD, 0xC6, 0xF8, 0xD0, 0x0A, 0xA9, 0xAD, 0x8D, 0x61, 0x0D,
0x8D, 0x38, 0x0D, 0xA9, 0x08, 0x09, 0x10, 0x8D, 0x07, 0xD2, 0x20, 0x75, 0x0D, 0xEC, 0x0B, 0xD4,
0xF0, 0xFB, 0x8D, 0x05, 0xD2, 0xAD, 0x1B, 0x0E, 0xD0, 0xB9, 0x60, 0x18, 0xA5, 0xF9, 0x69, 0x00,
0x85, 0xF9, 0xA5, 0xFA, 0x69, 0x00, 0x85, 0xFA, 0x90, 0x0F, 0xE6, 0xFB, 0xA5, 0xFB, 0xC9, 0x00,
0xD0, 0x07, 0x8C, 0x79, 0x0D, 0x8C, 0x7F, 0x0D, 0x60, 0xB1, 0xFA, 0x24, 0xF9, 0x30, 0x04, 0x4A,
0x4A, 0x4A, 0x4A, 0x29, 0x0F, 0xA8, 0xB9, 0x45, 0x0A, 0xA0, 0x00, 0x60, 0xA0, 0x00, 0x8C, 0x1B,
0x0E, 0x8C, 0x1A, 0x0E, 0x88, 0x8C, 0x19, 0x0E, 0x60
};
static const unsigned char rmt4_obx[] = {
0xFF, 0xFF, 0x90, 0x03, 0x60, 0x0B, 0x80, 0x00, 0x80, 0x20, 0x80, 0x40, 0x00, 0xC0, 0x80, 0x80,
0x80, 0xA0, 0x00, 0xC0, 0x40, 0xC0, 0x00, 0x01, 0x05, 0x0B, 0x15, 0x00, 0x01, 0xFF, 0xFF, 0x01,
0x01, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x01, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x33, 0x96, 0xE2, 0x38, 0x8C, 0x00, 0x6A, 0xE8, 0x6A,
0xEF, 0x80, 0x08, 0xAE, 0x46, 0xE6, 0x95, 0x41, 0xF6, 0xB0, 0x6E, 0x30, 0xF6, 0xBB, 0x84, 0x52,
0x22, 0xF4, 0xC8, 0xA0, 0x7A, 0x55, 0x34, 0x14, 0xF5, 0xD8, 0xBD, 0xA4, 0x8D, 0x77, 0x60, 0x4E,
0x38, 0x27, 0x15, 0x06, 0xF7, 0xE8, 0xDB, 0xCF, 0xC3, 0xB8, 0xAC, 0xA2, 0x9A, 0x90, 0x88, 0x7F,
0x78, 0x70, 0x6A, 0x64, 0x5E, 0x00, 0xBF, 0xB6, 0xAA, 0xA1, 0x98, 0x8F, 0x89, 0x80, 0xF2, 0xE6,
0xDA, 0xCE, 0xBF, 0xB6, 0xAA, 0xA1, 0x98, 0x8F, 0x89, 0x80, 0x7A, 0x71, 0x6B, 0x65, 0x5F, 0x5C,
0x56, 0x50, 0x4D, 0x47, 0x44, 0x3E, 0x3C, 0x38, 0x35, 0x32, 0x2F, 0x2D, 0x2A, 0x28, 0x25, 0x23,
0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17, 0x16, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D,
0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0xFF, 0xF1, 0xE4, 0xD8, 0xCA, 0xC0, 0xB5, 0xAB, 0xA2, 0x99,
0x8E, 0x87, 0x7F, 0x79, 0x73, 0x70, 0x66, 0x61, 0x5A, 0x55, 0x52, 0x4B, 0x48, 0x43, 0x3F, 0x3C,
0x39, 0x37, 0x33, 0x30, 0x2D, 0x2A, 0x28, 0x25, 0x24, 0x21, 0x1F, 0x1E, 0x1C, 0x1B, 0x19, 0x17,
0x16, 0x15, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0xF3, 0xE6, 0xD9, 0xCC, 0xC1, 0xB5, 0xAD, 0xA2, 0x99, 0x90,
0x88, 0x80, 0x79, 0x72, 0x6C, 0x66, 0x60, 0x5B, 0x55, 0x51, 0x4C, 0x48, 0x44, 0x40, 0x3C, 0x39,
0x35, 0x32, 0x2F, 0x2D, 0x2A, 0x28, 0x25, 0x23, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17, 0x16,
0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05,
0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x0D, 0x0D, 0x0C, 0x0B, 0x0B, 0x0A, 0x0A, 0x09, 0x08, 0x08,
0x07, 0x07, 0x07, 0x06, 0x06, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x03, 0x03,
0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03,
0x03, 0x04, 0x04, 0x04, 0x05, 0x05, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x04,
0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04,
0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05,
0x05, 0x06, 0x06, 0x07, 0x07, 0x08, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x04, 0x04, 0x05, 0x05,
0x06, 0x07, 0x07, 0x08, 0x08, 0x09, 0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x05, 0x06,
0x07, 0x07, 0x08, 0x09, 0x09, 0x0A, 0x00, 0x01, 0x01, 0x02, 0x03, 0x04, 0x04, 0x05, 0x06, 0x07,
0x07, 0x08, 0x09, 0x0A, 0x0A, 0x0B, 0x00, 0x01, 0x02, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0A, 0x0B, 0x0C, 0x00, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x0A, 0x0A, 0x0B, 0x0C, 0x0D, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x07, 0x08,
0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x4C, 0x0F, 0x06, 0x4C, 0xFC, 0x07, 0x4C, 0x21, 0x08, 0x4C,
0x58, 0x06, 0x4C, 0x2B, 0x0B, 0x86, 0xD3, 0x84, 0xD4, 0x48, 0xA0, 0xA8, 0xA9, 0x00, 0x99, 0x7F,
0x02, 0x88, 0xD0, 0xFA, 0xA0, 0x04, 0xB1, 0xD3, 0x8D, 0x15, 0x08, 0xC8, 0xB1, 0xD3, 0x8D, 0x24,
0x03, 0xC8, 0xB1, 0xD3, 0x8D, 0x05, 0x08, 0x8D, 0x26, 0x03, 0xA0, 0x08, 0xB1, 0xD3, 0x99, 0xC3,
0x00, 0xC8, 0xC0, 0x10, 0xD0, 0xF6, 0x68, 0x48, 0x0A, 0x0A, 0x18, 0x65, 0xD1, 0x85, 0xD1, 0x68,
0x08, 0x29, 0xC0, 0x0A, 0x2A, 0x2A, 0x28, 0x65, 0xD2, 0x85, 0xD2, 0x20, 0x6E, 0x06, 0xA9, 0x00,
0x8D, 0x08, 0xD2, 0xA0, 0x03, 0x8C, 0x0F, 0xD2, 0xA0, 0x08, 0x99, 0x00, 0xD2, 0x88, 0x10, 0xFA,
0xAD, 0x05, 0x08, 0x60, 0xA2, 0x00, 0x8E, 0x27, 0x03, 0x8A, 0xA8, 0xB1, 0xD1, 0xC9, 0xFE, 0xB0,
0x2D, 0xA8, 0xB1, 0xCD, 0x9D, 0x80, 0x02, 0xB1, 0xCF, 0x9D, 0x84, 0x02, 0xA9, 0x00, 0x9D, 0x88,
0x02, 0xA9, 0x01, 0x9D, 0x8C, 0x02, 0xA9, 0x80, 0x9D, 0xB4, 0x02, 0xE8, 0xE0, 0x04, 0xD0, 0xD9,
0xA5, 0xD1, 0x18, 0x69, 0x04, 0x85, 0xD1, 0x90, 0x1B, 0xE6, 0xD2, 0x4C, 0xBE, 0x06, 0xF0, 0x04,
0xA9, 0x00, 0xF0, 0xDF, 0xA0, 0x02, 0xB1, 0xD1, 0xAA, 0xC8, 0xB1, 0xD1, 0x85, 0xD2, 0x86, 0xD1,
0xA2, 0x00, 0xF0, 0xB5, 0xAD, 0x24, 0x03, 0x8D, 0x16, 0x07, 0xA2, 0xFF, 0xE8, 0xDE, 0x8C, 0x02,
0xD0, 0x45, 0xBD, 0x80, 0x02, 0x85, 0xD3, 0xBD, 0x84, 0x02, 0x85, 0xD4, 0xBC, 0x88, 0x02, 0xFE,
0x88, 0x02, 0xB1, 0xD3, 0x85, 0xD9, 0x29, 0x3F, 0xC9, 0x3D, 0xF0, 0x11, 0xB0, 0x38, 0x9D, 0x90,
0x02, 0x9D, 0x10, 0x03, 0xC8, 0xB1, 0xD3, 0x4A, 0x29, 0x7E, 0x9D, 0xB4, 0x02, 0xA9, 0x01, 0x9D,
0x8C, 0x02, 0xBC, 0x88, 0x02, 0xFE, 0x88, 0x02, 0xB1, 0xD3, 0x4A, 0x66, 0xD9, 0x4A, 0x66, 0xD9,
0xA5, 0xD9, 0x29, 0xF0, 0x9D, 0x94, 0x02, 0xE0, 0x03, 0xD0, 0xB1, 0xA9, 0xFF, 0x8D, 0x24, 0x03,
0x8D, 0x25, 0x03, 0x4C, 0x65, 0x07, 0xC9, 0x3F, 0xF0, 0x1B, 0xA5, 0xD9, 0x29, 0xC0, 0xF0, 0x09,
0x0A, 0x2A, 0x2A, 0x9D, 0x8C, 0x02, 0x4C, 0x11, 0x07, 0xC8, 0xB1, 0xD3, 0x9D, 0x8C, 0x02, 0xFE,
0x88, 0x02, 0x4C, 0x11, 0x07, 0xA5, 0xD9, 0x30, 0x0C, 0xC8, 0xB1, 0xD3, 0x8D, 0x16, 0x07, 0xFE,
0x88, 0x02, 0x4C, 0xD6, 0x06, 0xC9, 0xFF, 0xF0, 0x09, 0xC8, 0xB1, 0xD3, 0x9D, 0x88, 0x02, 0x4C,
0xD6, 0x06, 0x4C, 0x6E, 0x06, 0x4C, 0x21, 0x08, 0xCA, 0x30, 0xFA, 0xBC, 0xB4, 0x02, 0x30, 0xF8,
0xB1, 0xCB, 0x9D, 0xB8, 0x02, 0x85, 0xD7, 0xC8, 0xB1, 0xCB, 0x9D, 0xBC, 0x02, 0x85, 0xD8, 0xA9,
0x01, 0x9D, 0x14, 0x03, 0xA8, 0xB1, 0xD7, 0x9D, 0x04, 0x03, 0xC8, 0xB1, 0xD7, 0x9D, 0xC4, 0x02,
0xC8, 0xB1, 0xD7, 0x9D, 0xC8, 0x02, 0xC8, 0xB1, 0xD7, 0x9D, 0xF0, 0x02, 0x29, 0x3F, 0x9D, 0x08,
0x03, 0xB1, 0xD7, 0x29, 0x40, 0x9D, 0xF4, 0x02, 0xC8, 0xB1, 0xD7, 0x9D, 0x20, 0x03, 0xC8, 0xB1,
0xD7, 0x9D, 0xD0, 0x02, 0xC8, 0xB1, 0xD7, 0x9D, 0xD8, 0x02, 0xC8, 0xB1, 0xD7, 0x9D, 0xDC, 0x02,
0xC8, 0xB1, 0xD7, 0xA8, 0xB9, 0xA0, 0x03, 0x9D, 0xE0, 0x02, 0x9D, 0xE4, 0x02, 0xB9, 0xA1, 0x03,
0x9D, 0xE8, 0x02, 0xA0, 0x0A, 0xB1, 0xD7, 0x9D, 0xEC, 0x02, 0xA9, 0x80, 0x9D, 0xD4, 0x02, 0x9D,
0xB4, 0x02, 0x0A, 0x9D, 0xCC, 0x02, 0x9D, 0x9C, 0x02, 0xA8, 0xB1, 0xD7, 0x9D, 0x00, 0x03, 0x69,
0x00, 0x9D, 0xC0, 0x02, 0xA9, 0x0C, 0x9D, 0xFC, 0x02, 0xA8, 0xB1, 0xD7, 0x9D, 0xF8, 0x02, 0x4C,
0x62, 0x07, 0x20, 0x2B, 0x0B, 0xCE, 0x26, 0x03, 0xD0, 0x1D, 0xA9, 0xFF, 0x8D, 0x26, 0x03, 0xCE,
0x25, 0x03, 0xD0, 0x13, 0xEE, 0x27, 0x03, 0xAD, 0x27, 0x03, 0xC9, 0xFF, 0xF0, 0x03, 0x4C, 0xBE,
0x06, 0x4C, 0x6E, 0x06, 0x4C, 0x5F, 0x0A, 0xA9, 0x04, 0x85, 0xD6, 0xA2, 0x03, 0xBD, 0xBC, 0x02,
0xF0, 0xF2, 0x85, 0xD4, 0xBD, 0xB8, 0x02, 0x85, 0xD3, 0xBC, 0xC0, 0x02, 0xB1, 0xD3, 0x85, 0xD9,
0xC8, 0xB1, 0xD3, 0x85, 0xDA, 0xC8, 0xB1, 0xD3, 0x85, 0xDB, 0xC8, 0x98, 0xDD, 0xC4, 0x02, 0x90,
0x0A, 0xF0, 0x08, 0xA9, 0x80, 0x9D, 0xCC, 0x02, 0xBD, 0xC8, 0x02, 0x9D, 0xC0, 0x02, 0xA5, 0xD9,
0x29, 0x0F, 0x1D, 0x94, 0x02, 0xA8, 0xB9, 0x00, 0x05, 0x85, 0xDC, 0xA5, 0xDA, 0x29, 0x0E, 0xA8,
0xB9, 0x90, 0x03, 0x85, 0xD5, 0xA5, 0xDC, 0x19, 0x91, 0x03, 0x9D, 0x1C, 0x03, 0xBD, 0xDC, 0x02,
0xF0, 0x28, 0xC9, 0x01, 0xD0, 0x21, 0xBD, 0x9C, 0x02, 0x18, 0x7D, 0xEC, 0x02, 0x18, 0xBC, 0xE0,
0x02, 0x79, 0xA5, 0x03, 0x9D, 0x9C, 0x02, 0xC8, 0x98, 0xDD, 0xE8, 0x02, 0xD0, 0x03, 0xBD, 0xE4,
0x02, 0x9D, 0xE0, 0x02, 0x4C, 0xA4, 0x08, 0xDE, 0xDC, 0x02, 0xBC, 0x00, 0x03, 0xC0, 0x0D, 0x90,
0x3C, 0xBD, 0x08, 0x03, 0x10, 0x31, 0x98, 0xDD, 0xFC, 0x02, 0xD0, 0x08, 0xBD, 0x04, 0x03, 0x9D,
0xFC, 0x02, 0xD0, 0x03, 0xFE, 0xFC, 0x02, 0xBD, 0xB8, 0x02, 0x85, 0xD7, 0xBD, 0xBC, 0x02, 0x85,
0xD8, 0xBC, 0xFC, 0x02, 0xB1, 0xD7, 0xBC, 0xF4, 0x02, 0xF0, 0x04, 0x18, 0x7D, 0xF8, 0x02, 0x9D,
0xF8, 0x02, 0xBD, 0xF0, 0x02, 0x29, 0x3F, 0x38, 0xE9, 0x01, 0x9D, 0x08, 0x03, 0xBD, 0xCC, 0x02,
0x10, 0x1F, 0xBD, 0x94, 0x02, 0xF0, 0x1A, 0xDD, 0xD8, 0x02, 0xF0, 0x15, 0x90, 0x13, 0xA8, 0xBD,
0xD4, 0x02, 0x18, 0x7D, 0xD0, 0x02, 0x9D, 0xD4, 0x02, 0x90, 0x06, 0x98, 0xE9, 0x10, 0x9D, 0x94,
0x02, 0xA9, 0x00, 0x85, 0xDD, 0xA5, 0xDA, 0x9D, 0x0C, 0x03, 0x29, 0x70, 0x4A, 0x4A, 0x8D, 0x1C,
0x09, 0x90, 0xFE, 0x4C, 0xD2, 0x09, 0xEA, 0x4C, 0x3C, 0x09, 0xEA, 0x4C, 0x41, 0x09, 0xEA, 0x4C,
0x4B, 0x09, 0xEA, 0x4C, 0x57, 0x09, 0xEA, 0x4C, 0x66, 0x09, 0xEA, 0x4C, 0xA9, 0x09, 0xEA, 0x4C,
0xB8, 0x09, 0xA5, 0xDB, 0x4C, 0x15, 0x0A, 0xA5, 0xDB, 0x85, 0xDD, 0xBD, 0x90, 0x02, 0x4C, 0xD8,
0x09, 0xBD, 0x90, 0x02, 0x18, 0x65, 0xDB, 0x9D, 0x90, 0x02, 0x4C, 0xD8, 0x09, 0xBD, 0x9C, 0x02,
0x18, 0x65, 0xDB, 0x9D, 0x9C, 0x02, 0xBD, 0x90, 0x02, 0x4C, 0xD8, 0x09, 0xBD, 0xF0, 0x02, 0x10,
0x0C, 0xBC, 0x90, 0x02, 0xB1, 0xD5, 0x18, 0x7D, 0xF8, 0x02, 0x4C, 0x87, 0x09, 0xBD, 0x90, 0x02,
0x18, 0x7D, 0xF8, 0x02, 0xC9, 0x3D, 0x90, 0x02, 0xA9, 0x3F, 0xA8, 0xB1, 0xD5, 0x9D, 0xA0, 0x02,
0xA4, 0xDB, 0xD0, 0x03, 0x9D, 0xA4, 0x02, 0x98, 0x4A, 0x4A, 0x4A, 0x4A, 0x9D, 0xA8, 0x02, 0x9D,
0xAC, 0x02, 0xA5, 0xDB, 0x29, 0x0F, 0x9D, 0xB0, 0x02, 0xBD, 0x90, 0x02, 0x4C, 0xD8, 0x09, 0xA5,
0xDB, 0x18, 0x7D, 0x14, 0x03, 0x9D, 0x14, 0x03, 0xBD, 0x90, 0x02, 0x4C, 0xD8, 0x09, 0xA5, 0xDB,
0xC9, 0x80, 0xF0, 0x06, 0x9D, 0x90, 0x02, 0x4C, 0xD8, 0x09, 0xBD, 0x1C, 0x03, 0x09, 0xF0, 0x9D,
0x1C, 0x03, 0xBD, 0x90, 0x02, 0x4C, 0xD8, 0x09, 0xBD, 0x90, 0x02, 0x18, 0x65, 0xDB, 0xBC, 0xF0,
0x02, 0x30, 0x1F, 0x18, 0x7D, 0xF8, 0x02, 0xC9, 0x3D, 0x90, 0x07, 0xA9, 0x00, 0x9D, 0x1C, 0x03,
0xA9, 0x3F, 0x9D, 0x10, 0x03, 0xA8, 0xB1, 0xD5, 0x18, 0x7D, 0x9C, 0x02, 0x18, 0x65, 0xDD, 0x4C,
0x15, 0x0A, 0xC9, 0x3D, 0x90, 0x07, 0xA9, 0x00, 0x9D, 0x1C, 0x03, 0xA9, 0x3F, 0xA8, 0xBD, 0x9C,
0x02, 0x18, 0x7D, 0xF8, 0x02, 0x18, 0x71, 0xD5, 0x18, 0x65, 0xDD, 0x9D, 0x18, 0x03, 0xBD, 0xAC,
0x02, 0xF0, 0x32, 0xDE, 0xAC, 0x02, 0xD0, 0x2D, 0xBD, 0xA8, 0x02, 0x9D, 0xAC, 0x02, 0xBD, 0xA4,
0x02, 0xDD, 0xA0, 0x02, 0xF0, 0x1F, 0xB0, 0x0D, 0x7D, 0xB0, 0x02, 0xB0, 0x12, 0xDD, 0xA0, 0x02,
0xB0, 0x0D, 0x4C, 0x4C, 0x0A, 0xFD, 0xB0, 0x02, 0x90, 0x05, 0xDD, 0xA0, 0x02, 0xB0, 0x03, 0xBD,
0xA0, 0x02, 0x9D, 0xA4, 0x02, 0xA5, 0xDA, 0x29, 0x01, 0xF0, 0x0A, 0xBD, 0xA4, 0x02, 0x18, 0x7D,
0x9C, 0x02, 0x9D, 0x18, 0x03, 0xCA, 0x30, 0x03, 0x4C, 0x27, 0x08, 0xAD, 0x20, 0x03, 0x0D, 0x21,
0x03, 0x0D, 0x22, 0x03, 0x0D, 0x23, 0x03, 0xAA, 0x8E, 0x2C, 0x0B, 0xAD, 0x0C, 0x03, 0x10, 0x21,
0xAD, 0x1C, 0x03, 0x29, 0x0F, 0xF0, 0x1A, 0xAD, 0x18, 0x03, 0x18, 0x6D, 0x14, 0x03, 0x8D, 0x1A,
0x03, 0xAD, 0x1E, 0x03, 0x29, 0x10, 0xD0, 0x05, 0xA9, 0x00, 0x8D, 0x1E, 0x03, 0x8A, 0x09, 0x04,
0xAA, 0xAD, 0x0D, 0x03, 0x10, 0x21, 0xAD, 0x1D, 0x03, 0x29, 0x0F, 0xF0, 0x1A, 0xAD, 0x19, 0x03,
0x18, 0x6D, 0x15, 0x03, 0x8D, 0x1B, 0x03, 0xAD, 0x1F, 0x03, 0x29, 0x10, 0xD0, 0x05, 0xA9, 0x00,
0x8D, 0x1F, 0x03, 0x8A, 0x09, 0x02, 0xAA, 0xEC, 0x2C, 0x0B, 0xD0, 0x5E, 0xAD, 0x0D, 0x03, 0x29,
0x0E, 0xC9, 0x06, 0xD0, 0x26, 0xAD, 0x1D, 0x03, 0x29, 0x0F, 0xF0, 0x1F, 0xAC, 0x11, 0x03, 0xB9,
0xC0, 0x03, 0x8D, 0x18, 0x03, 0xB9, 0xC0, 0x04, 0x8D, 0x19, 0x03, 0xAD, 0x1C, 0x03, 0x29, 0x10,
0xD0, 0x05, 0xA9, 0x00, 0x8D, 0x1C, 0x03, 0x8A, 0x09, 0x50, 0xAA, 0xAD, 0x0F, 0x03, 0x29, 0x0E,
0xC9, 0x06, 0xD0, 0x26, 0xAD, 0x1F, 0x03, 0x29, 0x0F, 0xF0, 0x1F, 0xAC, 0x13, 0x03, 0xB9, 0xC0,
0x03, 0x8D, 0x1A, 0x03, 0xB9, 0xC0, 0x04, 0x8D, 0x1B, 0x03, 0xAD, 0x1E, 0x03, 0x29, 0x10, 0xD0,
0x05, 0xA9, 0x00, 0x8D, 0x1E, 0x03, 0x8A, 0x09, 0x28, 0xAA, 0x8E, 0x2C, 0x0B, 0xAD, 0x26, 0x03,
0x60, 0xA0, 0xFF, 0xAD, 0x18, 0x03, 0xAE, 0x1C, 0x03, 0x8D, 0x00, 0xD2, 0x8E, 0x01, 0xD2, 0xAD,
0x19, 0x03, 0xAE, 0x1D, 0x03, 0x8D, 0x02, 0xD2, 0x8E, 0x03, 0xD2, 0xAD, 0x1A, 0x03, 0xAE, 0x1E,
0x03, 0x8D, 0x04, 0xD2, 0x8E, 0x05, 0xD2, 0xAD, 0x1B, 0x03, 0xAE, 0x1F, 0x03, 0x8D, 0x06, 0xD2,
0x8E, 0x07, 0xD2, 0x8C, 0x08, 0xD2, 0x60
};
static const unsigned char rmt8_obx[] = {
0xFF, 0xFF, 0x90, 0x03, 0x6C, 0x0C, 0x80, 0x00, 0x80, 0x20, 0x80, 0x40, 0x00, 0xC0, 0x80, 0x80,
0x80, 0xA0, 0x00, 0xC0, 0x40, 0xC0, 0x00, 0x01, 0x05, 0x0B, 0x15, 0x00, 0x01, 0xFF, 0xFF, 0x01,
0x01, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x01, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x33, 0x96, 0xE2, 0x38, 0x8C, 0x00, 0x6A, 0xE8, 0x6A,
0xEF, 0x80, 0x08, 0xAE, 0x46, 0xE6, 0x95, 0x41, 0xF6, 0xB0, 0x6E, 0x30, 0xF6, 0xBB, 0x84, 0x52,
0x22, 0xF4, 0xC8, 0xA0, 0x7A, 0x55, 0x34, 0x14, 0xF5, 0xD8, 0xBD, 0xA4, 0x8D, 0x77, 0x60, 0x4E,
0x38, 0x27, 0x15, 0x06, 0xF7, 0xE8, 0xDB, 0xCF, 0xC3, 0xB8, 0xAC, 0xA2, 0x9A, 0x90, 0x88, 0x7F,
0x78, 0x70, 0x6A, 0x64, 0x5E, 0x00, 0xBF, 0xB6, 0xAA, 0xA1, 0x98, 0x8F, 0x89, 0x80, 0xF2, 0xE6,
0xDA, 0xCE, 0xBF, 0xB6, 0xAA, 0xA1, 0x98, 0x8F, 0x89, 0x80, 0x7A, 0x71, 0x6B, 0x65, 0x5F, 0x5C,
0x56, 0x50, 0x4D, 0x47, 0x44, 0x3E, 0x3C, 0x38, 0x35, 0x32, 0x2F, 0x2D, 0x2A, 0x28, 0x25, 0x23,
0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17, 0x16, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D,
0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0xFF, 0xF1, 0xE4, 0xD8, 0xCA, 0xC0, 0xB5, 0xAB, 0xA2, 0x99,
0x8E, 0x87, 0x7F, 0x79, 0x73, 0x70, 0x66, 0x61, 0x5A, 0x55, 0x52, 0x4B, 0x48, 0x43, 0x3F, 0x3C,
0x39, 0x37, 0x33, 0x30, 0x2D, 0x2A, 0x28, 0x25, 0x24, 0x21, 0x1F, 0x1E, 0x1C, 0x1B, 0x19, 0x17,
0x16, 0x15, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0xF3, 0xE6, 0xD9, 0xCC, 0xC1, 0xB5, 0xAD, 0xA2, 0x99, 0x90,
0x88, 0x80, 0x79, 0x72, 0x6C, 0x66, 0x60, 0x5B, 0x55, 0x51, 0x4C, 0x48, 0x44, 0x40, 0x3C, 0x39,
0x35, 0x32, 0x2F, 0x2D, 0x2A, 0x28, 0x25, 0x23, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17, 0x16,
0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05,
0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x0D, 0x0D, 0x0C, 0x0B, 0x0B, 0x0A, 0x0A, 0x09, 0x08, 0x08,
0x07, 0x07, 0x07, 0x06, 0x06, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x03, 0x03,
0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03,
0x03, 0x04, 0x04, 0x04, 0x05, 0x05, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x04,
0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04,
0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05,
0x05, 0x06, 0x06, 0x07, 0x07, 0x08, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x04, 0x04, 0x05, 0x05,
0x06, 0x07, 0x07, 0x08, 0x08, 0x09, 0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x05, 0x06,
0x07, 0x07, 0x08, 0x09, 0x09, 0x0A, 0x00, 0x01, 0x01, 0x02, 0x03, 0x04, 0x04, 0x05, 0x06, 0x07,
0x07, 0x08, 0x09, 0x0A, 0x0A, 0x0B, 0x00, 0x01, 0x02, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0A, 0x0B, 0x0C, 0x00, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x0A, 0x0A, 0x0B, 0x0C, 0x0D, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x07, 0x08,
0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x4C, 0x0F, 0x06, 0x4C, 0x09, 0x08, 0x4C, 0x2E, 0x08, 0x4C,
0x5C, 0x06, 0x4C, 0x02, 0x0C, 0x86, 0xD3, 0x84, 0xD4, 0x48, 0xA0, 0x00, 0x98, 0x99, 0x00, 0x02,
0x99, 0x4C, 0x02, 0xC8, 0xD0, 0xF7, 0xA0, 0x04, 0xB1, 0xD3, 0x8D, 0x22, 0x08, 0xC8, 0xB1, 0xD3,
0x8D, 0x48, 0x03, 0xC8, 0xB1, 0xD3, 0x8D, 0x12, 0x08, 0x8D, 0x4A, 0x03, 0xA0, 0x08, 0xB1, 0xD3,
0x99, 0xC3, 0x00, 0xC8, 0xC0, 0x10, 0xD0, 0xF6, 0x68, 0x48, 0x0A, 0x0A, 0x0A, 0x18, 0x65, 0xD1,
0x85, 0xD1, 0x68, 0x08, 0x29, 0xE0, 0x0A, 0x2A, 0x2A, 0x2A, 0x28, 0x65, 0xD2, 0x85, 0xD2, 0x20,
0x7B, 0x06, 0xA9, 0x00, 0x8D, 0x08, 0xD2, 0x8D, 0x18, 0xD2, 0xA0, 0x03, 0x8C, 0x0F, 0xD2, 0x8C,
0x1F, 0xD2, 0xA0, 0x08, 0x99, 0x00, 0xD2, 0x99, 0x10, 0xD2, 0x88, 0x10, 0xF7, 0xAD, 0x12, 0x08,
0x60, 0xA2, 0x00, 0x8E, 0x4B, 0x03, 0x8A, 0xA8, 0xB1, 0xD1, 0xC9, 0xFE, 0xB0, 0x2D, 0xA8, 0xB1,
0xCD, 0x9D, 0x00, 0x02, 0xB1, 0xCF, 0x9D, 0x08, 0x02, 0xA9, 0x00, 0x9D, 0x10, 0x02, 0xA9, 0x01,
0x9D, 0x18, 0x02, 0xA9, 0x80, 0x9D, 0x68, 0x02, 0xE8, 0xE0, 0x08, 0xD0, 0xD9, 0xA5, 0xD1, 0x18,
0x69, 0x08, 0x85, 0xD1, 0x90, 0x1B, 0xE6, 0xD2, 0x4C, 0xCB, 0x06, 0xF0, 0x04, 0xA9, 0x00, 0xF0,
0xDF, 0xA0, 0x02, 0xB1, 0xD1, 0xAA, 0xC8, 0xB1, 0xD1, 0x85, 0xD2, 0x86, 0xD1, 0xA2, 0x00, 0xF0,
0xB5, 0xAD, 0x48, 0x03, 0x8D, 0x23, 0x07, 0xA2, 0xFF, 0xE8, 0xDE, 0x18, 0x02, 0xD0, 0x45, 0xBD,
0x00, 0x02, 0x85, 0xD3, 0xBD, 0x08, 0x02, 0x85, 0xD4, 0xBC, 0x10, 0x02, 0xFE, 0x10, 0x02, 0xB1,
0xD3, 0x85, 0xD9, 0x29, 0x3F, 0xC9, 0x3D, 0xF0, 0x11, 0xB0, 0x38, 0x9D, 0x20, 0x02, 0x9D, 0x20,
0x03, 0xC8, 0xB1, 0xD3, 0x4A, 0x29, 0x7E, 0x9D, 0x68, 0x02, 0xA9, 0x01, 0x9D, 0x18, 0x02, 0xBC,
0x10, 0x02, 0xFE, 0x10, 0x02, 0xB1, 0xD3, 0x4A, 0x66, 0xD9, 0x4A, 0x66, 0xD9, 0xA5, 0xD9, 0x29,
0xF0, 0x9D, 0x28, 0x02, 0xE0, 0x07, 0xD0, 0xB1, 0xA9, 0xFF, 0x8D, 0x48, 0x03, 0x8D, 0x49, 0x03,
0x4C, 0x72, 0x07, 0xC9, 0x3F, 0xF0, 0x1B, 0xA5, 0xD9, 0x29, 0xC0, 0xF0, 0x09, 0x0A, 0x2A, 0x2A,
0x9D, 0x18, 0x02, 0x4C, 0x1E, 0x07, 0xC8, 0xB1, 0xD3, 0x9D, 0x18, 0x02, 0xFE, 0x10, 0x02, 0x4C,
0x1E, 0x07, 0xA5, 0xD9, 0x30, 0x0C, 0xC8, 0xB1, 0xD3, 0x8D, 0x23, 0x07, 0xFE, 0x10, 0x02, 0x4C,
0xE3, 0x06, 0xC9, 0xFF, 0xF0, 0x09, 0xC8, 0xB1, 0xD3, 0x9D, 0x10, 0x02, 0x4C, 0xE3, 0x06, 0x4C,
0x7B, 0x06, 0x4C, 0x2E, 0x08, 0xCA, 0x30, 0xFA, 0xBC, 0x68, 0x02, 0x30, 0xF8, 0xB1, 0xCB, 0x9D,
0x70, 0x02, 0x85, 0xD7, 0xC8, 0xB1, 0xCB, 0x9D, 0x78, 0x02, 0x85, 0xD8, 0xA9, 0x01, 0x9D, 0x28,
0x03, 0xA8, 0xB1, 0xD7, 0x9D, 0x08, 0x03, 0xC8, 0xB1, 0xD7, 0x9D, 0x88, 0x02, 0xC8, 0xB1, 0xD7,
0x9D, 0x90, 0x02, 0xC8, 0xB1, 0xD7, 0x9D, 0xE0, 0x02, 0x29, 0x3F, 0x9D, 0x10, 0x03, 0xB1, 0xD7,
0x29, 0x40, 0x9D, 0xE8, 0x02, 0xC8, 0xB1, 0xD7, 0x9D, 0x40, 0x03, 0xC8, 0xB1, 0xD7, 0x9D, 0xA0,
0x02, 0xC8, 0xB1, 0xD7, 0x9D, 0xB0, 0x02, 0xC8, 0xB1, 0xD7, 0x9D, 0xB8, 0x02, 0xC8, 0xB1, 0xD7,
0xA8, 0xB9, 0xA0, 0x03, 0x9D, 0xC0, 0x02, 0x9D, 0xC8, 0x02, 0xB9, 0xA1, 0x03, 0x9D, 0xD0, 0x02,
0xA0, 0x0A, 0xB1, 0xD7, 0x9D, 0xD8, 0x02, 0xA9, 0x80, 0x9D, 0xA8, 0x02, 0x9D, 0x68, 0x02, 0x0A,
0x9D, 0x98, 0x02, 0x9D, 0x38, 0x02, 0xA8, 0xB1, 0xD7, 0x9D, 0x00, 0x03, 0x69, 0x00, 0x9D, 0x80,
0x02, 0xA9, 0x0C, 0x9D, 0xF8, 0x02, 0xA8, 0xB1, 0xD7, 0x9D, 0xF0, 0x02, 0x4C, 0x6F, 0x07, 0x20,
0x02, 0x0C, 0xCE, 0x4A, 0x03, 0xD0, 0x1D, 0xA9, 0xFF, 0x8D, 0x4A, 0x03, 0xCE, 0x49, 0x03, 0xD0,
0x13, 0xEE, 0x4B, 0x03, 0xAD, 0x4B, 0x03, 0xC9, 0xFF, 0xF0, 0x03, 0x4C, 0xCB, 0x06, 0x4C, 0x7B,
0x06, 0x4C, 0x74, 0x0A, 0xA9, 0x04, 0x85, 0xD6, 0xA2, 0x07, 0xBD, 0x78, 0x02, 0xF0, 0xF2, 0x85,
0xD4, 0xBD, 0x70, 0x02, 0x85, 0xD3, 0xBC, 0x80, 0x02, 0xB1, 0xD3, 0x85, 0xD9, 0xC8, 0xB1, 0xD3,
0x85, 0xDA, 0xC8, 0xB1, 0xD3, 0x85, 0xDB, 0xC8, 0x98, 0xDD, 0x88, 0x02, 0x90, 0x0A, 0xF0, 0x08,
0xA9, 0x80, 0x9D, 0x98, 0x02, 0xBD, 0x90, 0x02, 0x9D, 0x80, 0x02, 0xA5, 0xD9, 0xE0, 0x04, 0x90,
0x04, 0x4A, 0x4A, 0x4A, 0x4A, 0x29, 0x0F, 0x1D, 0x28, 0x02, 0xA8, 0xB9, 0x00, 0x05, 0x85, 0xDC,
0xA5, 0xDA, 0x29, 0x0E, 0xA8, 0xB9, 0x90, 0x03, 0x85, 0xD5, 0xA5, 0xDC, 0x19, 0x91, 0x03, 0x9D,
0x38, 0x03, 0xBD, 0xB8, 0x02, 0xF0, 0x28, 0xC9, 0x01, 0xD0, 0x21, 0xBD, 0x38, 0x02, 0x18, 0x7D,
0xD8, 0x02, 0x18, 0xBC, 0xC0, 0x02, 0x79, 0xA5, 0x03, 0x9D, 0x38, 0x02, 0xC8, 0x98, 0xDD, 0xD0,
0x02, 0xD0, 0x03, 0xBD, 0xC8, 0x02, 0x9D, 0xC0, 0x02, 0x4C, 0xB9, 0x08, 0xDE, 0xB8, 0x02, 0xBC,
0x00, 0x03, 0xC0, 0x0D, 0x90, 0x3C, 0xBD, 0x10, 0x03, 0x10, 0x31, 0x98, 0xDD, 0xF8, 0x02, 0xD0,
0x08, 0xBD, 0x08, 0x03, 0x9D, 0xF8, 0x02, 0xD0, 0x03, 0xFE, 0xF8, 0x02, 0xBD, 0x70, 0x02, 0x85,
0xD7, 0xBD, 0x78, 0x02, 0x85, 0xD8, 0xBC, 0xF8, 0x02, 0xB1, 0xD7, 0xBC, 0xE8, 0x02, 0xF0, 0x04,
0x18, 0x7D, 0xF0, 0x02, 0x9D, 0xF0, 0x02, 0xBD, 0xE0, 0x02, 0x29, 0x3F, 0x38, 0xE9, 0x01, 0x9D,
0x10, 0x03, 0xBD, 0x98, 0x02, 0x10, 0x1F, 0xBD, 0x28, 0x02, 0xF0, 0x1A, 0xDD, 0xB0, 0x02, 0xF0,
0x15, 0x90, 0x13, 0xA8, 0xBD, 0xA8, 0x02, 0x18, 0x7D, 0xA0, 0x02, 0x9D, 0xA8, 0x02, 0x90, 0x06,
0x98, 0xE9, 0x10, 0x9D, 0x28, 0x02, 0xA9, 0x00, 0x85, 0xDD, 0xA5, 0xDA, 0x9D, 0x18, 0x03, 0x29,
0x70, 0x4A, 0x4A, 0x8D, 0x31, 0x09, 0x90, 0xFE, 0x4C, 0xE7, 0x09, 0xEA, 0x4C, 0x51, 0x09, 0xEA,
0x4C, 0x56, 0x09, 0xEA, 0x4C, 0x60, 0x09, 0xEA, 0x4C, 0x6C, 0x09, 0xEA, 0x4C, 0x7B, 0x09, 0xEA,
0x4C, 0xBE, 0x09, 0xEA, 0x4C, 0xCD, 0x09, 0xA5, 0xDB, 0x4C, 0x2A, 0x0A, 0xA5, 0xDB, 0x85, 0xDD,
0xBD, 0x20, 0x02, 0x4C, 0xED, 0x09, 0xBD, 0x20, 0x02, 0x18, 0x65, 0xDB, 0x9D, 0x20, 0x02, 0x4C,
0xED, 0x09, 0xBD, 0x38, 0x02, 0x18, 0x65, 0xDB, 0x9D, 0x38, 0x02, 0xBD, 0x20, 0x02, 0x4C, 0xED,
0x09, 0xBD, 0xE0, 0x02, 0x10, 0x0C, 0xBC, 0x20, 0x02, 0xB1, 0xD5, 0x18, 0x7D, 0xF0, 0x02, 0x4C,
0x9C, 0x09, 0xBD, 0x20, 0x02, 0x18, 0x7D, 0xF0, 0x02, 0xC9, 0x3D, 0x90, 0x02, 0xA9, 0x3F, 0xA8,
0xB1, 0xD5, 0x9D, 0x40, 0x02, 0xA4, 0xDB, 0xD0, 0x03, 0x9D, 0x48, 0x02, 0x98, 0x4A, 0x4A, 0x4A,
0x4A, 0x9D, 0x50, 0x02, 0x9D, 0x58, 0x02, 0xA5, 0xDB, 0x29, 0x0F, 0x9D, 0x60, 0x02, 0xBD, 0x20,
0x02, 0x4C, 0xED, 0x09, 0xA5, 0xDB, 0x18, 0x7D, 0x28, 0x03, 0x9D, 0x28, 0x03, 0xBD, 0x20, 0x02,
0x4C, 0xED, 0x09, 0xA5, 0xDB, 0xC9, 0x80, 0xF0, 0x06, 0x9D, 0x20, 0x02, 0x4C, 0xED, 0x09, 0xBD,
0x38, 0x03, 0x09, 0xF0, 0x9D, 0x38, 0x03, 0xBD, 0x20, 0x02, 0x4C, 0xED, 0x09, 0xBD, 0x20, 0x02,
0x18, 0x65, 0xDB, 0xBC, 0xE0, 0x02, 0x30, 0x1F, 0x18, 0x7D, 0xF0, 0x02, 0xC9, 0x3D, 0x90, 0x07,
0xA9, 0x00, 0x9D, 0x38, 0x03, 0xA9, 0x3F, 0x9D, 0x20, 0x03, 0xA8, 0xB1, 0xD5, 0x18, 0x7D, 0x38,
0x02, 0x18, 0x65, 0xDD, 0x4C, 0x2A, 0x0A, 0xC9, 0x3D, 0x90, 0x07, 0xA9, 0x00, 0x9D, 0x38, 0x03,
0xA9, 0x3F, 0xA8, 0xBD, 0x38, 0x02, 0x18, 0x7D, 0xF0, 0x02, 0x18, 0x71, 0xD5, 0x18, 0x65, 0xDD,
0x9D, 0x30, 0x03, 0xBD, 0x58, 0x02, 0xF0, 0x32, 0xDE, 0x58, 0x02, 0xD0, 0x2D, 0xBD, 0x50, 0x02,
0x9D, 0x58, 0x02, 0xBD, 0x48, 0x02, 0xDD, 0x40, 0x02, 0xF0, 0x1F, 0xB0, 0x0D, 0x7D, 0x60, 0x02,
0xB0, 0x12, 0xDD, 0x40, 0x02, 0xB0, 0x0D, 0x4C, 0x61, 0x0A, 0xFD, 0x60, 0x02, 0x90, 0x05, 0xDD,
0x40, 0x02, 0xB0, 0x03, 0xBD, 0x40, 0x02, 0x9D, 0x48, 0x02, 0xA5, 0xDA, 0x29, 0x01, 0xF0, 0x0A,
0xBD, 0x48, 0x02, 0x18, 0x7D, 0x38, 0x02, 0x9D, 0x30, 0x03, 0xCA, 0x30, 0x03, 0x4C, 0x34, 0x08,
0xAD, 0x40, 0x03, 0x0D, 0x41, 0x03, 0x0D, 0x42, 0x03, 0x0D, 0x43, 0x03, 0xAA, 0x8E, 0x65, 0x0C,
0xAD, 0x18, 0x03, 0x10, 0x21, 0xAD, 0x38, 0x03, 0x29, 0x0F, 0xF0, 0x1A, 0xAD, 0x30, 0x03, 0x18,
0x6D, 0x28, 0x03, 0x8D, 0x32, 0x03, 0xAD, 0x3A, 0x03, 0x29, 0x10, 0xD0, 0x05, 0xA9, 0x00, 0x8D,
0x3A, 0x03, 0x8A, 0x09, 0x04, 0xAA, 0xAD, 0x19, 0x03, 0x10, 0x21, 0xAD, 0x39, 0x03, 0x29, 0x0F,
0xF0, 0x1A, 0xAD, 0x31, 0x03, 0x18, 0x6D, 0x29, 0x03, 0x8D, 0x33, 0x03, 0xAD, 0x3B, 0x03, 0x29,
0x10, 0xD0, 0x05, 0xA9, 0x00, 0x8D, 0x3B, 0x03, 0x8A, 0x09, 0x02, 0xAA, 0xEC, 0x65, 0x0C, 0xD0,
0x5E, 0xAD, 0x19, 0x03, 0x29, 0x0E, 0xC9, 0x06, 0xD0, 0x26, 0xAD, 0x39, 0x03, 0x29, 0x0F, 0xF0,
0x1F, 0xAC, 0x21, 0x03, 0xB9, 0xC0, 0x03, 0x8D, 0x30, 0x03, 0xB9, 0xC0, 0x04, 0x8D, 0x31, 0x03,
0xAD, 0x38, 0x03, 0x29, 0x10, 0xD0, 0x05, 0xA9, 0x00, 0x8D, 0x38, 0x03, 0x8A, 0x09, 0x50, 0xAA,
0xAD, 0x1B, 0x03, 0x29, 0x0E, 0xC9, 0x06, 0xD0, 0x26, 0xAD, 0x3B, 0x03, 0x29, 0x0F, 0xF0, 0x1F,
0xAC, 0x23, 0x03, 0xB9, 0xC0, 0x03, 0x8D, 0x32, 0x03, 0xB9, 0xC0, 0x04, 0x8D, 0x33, 0x03, 0xAD,
0x3A, 0x03, 0x29, 0x10, 0xD0, 0x05, 0xA9, 0x00, 0x8D, 0x3A, 0x03, 0x8A, 0x09, 0x28, 0xAA, 0x8E,
0x65, 0x0C, 0xAD, 0x44, 0x03, 0x0D, 0x45, 0x03, 0x0D, 0x46, 0x03, 0x0D, 0x47, 0x03, 0xAA, 0x8E,
0x03, 0x0C, 0xAD, 0x1C, 0x03, 0x10, 0x21, 0xAD, 0x3C, 0x03, 0x29, 0x0F, 0xF0, 0x1A, 0xAD, 0x34,
0x03, 0x18, 0x6D, 0x2C, 0x03, 0x8D, 0x36, 0x03, 0xAD, 0x3E, 0x03, 0x29, 0x10, 0xD0, 0x05, 0xA9,
0x00, 0x8D, 0x3E, 0x03, 0x8A, 0x09, 0x04, 0xAA, 0xAD, 0x1D, 0x03, 0x10, 0x21, 0xAD, 0x3D, 0x03,
0x29, 0x0F, 0xF0, 0x1A, 0xAD, 0x35, 0x03, 0x18, 0x6D, 0x2D, 0x03, 0x8D, 0x37, 0x03, 0xAD, 0x3F,
0x03, 0x29, 0x10, 0xD0, 0x05, 0xA9, 0x00, 0x8D, 0x3F, 0x03, 0x8A, 0x09, 0x02, 0xAA, 0xEC, 0x03,
0x0C, 0xD0, 0x5E, 0xAD, 0x1D, 0x03, 0x29, 0x0E, 0xC9, 0x06, 0xD0, 0x26, 0xAD, 0x3D, 0x03, 0x29,
0x0F, 0xF0, 0x1F, 0xAC, 0x25, 0x03, 0xB9, 0xC0, 0x03, 0x8D, 0x34, 0x03, 0xB9, 0xC0, 0x04, 0x8D,
0x35, 0x03, 0xAD, 0x3C, 0x03, 0x29, 0x10, 0xD0, 0x05, 0xA9, 0x00, 0x8D, 0x3C, 0x03, 0x8A, 0x09,
0x50, 0xAA, 0xAD, 0x1F, 0x03, 0x29, 0x0E, 0xC9, 0x06, 0xD0, 0x26, 0xAD, 0x3F, 0x03, 0x29, 0x0F,
0xF0, 0x1F, 0xAC, 0x27, 0x03, 0xB9, 0xC0, 0x03, 0x8D, 0x36, 0x03, 0xB9, 0xC0, 0x04, 0x8D, 0x37,
0x03, 0xAD, 0x3E, 0x03, 0x29, 0x10, 0xD0, 0x05, 0xA9, 0x00, 0x8D, 0x3E, 0x03, 0x8A, 0x09, 0x28,
0xAA, 0x8E, 0x03, 0x0C, 0xAD, 0x4A, 0x03, 0x60, 0xA0, 0xFF, 0xAD, 0x34, 0x03, 0xAE, 0x30, 0x03,
0x8D, 0x10, 0xD2, 0x8E, 0x00, 0xD2, 0xAD, 0x3C, 0x03, 0xAE, 0x38, 0x03, 0x8D, 0x11, 0xD2, 0x8E,
0x01, 0xD2, 0xAD, 0x35, 0x03, 0xAE, 0x31, 0x03, 0x8D, 0x12, 0xD2, 0x8E, 0x02, 0xD2, 0xAD, 0x3D,
0x03, 0xAE, 0x39, 0x03, 0x8D, 0x13, 0xD2, 0x8E, 0x03, 0xD2, 0xAD, 0x36, 0x03, 0xAE, 0x32, 0x03,
0x8D, 0x14, 0xD2, 0x8E, 0x04, 0xD2, 0xAD, 0x3E, 0x03, 0xAE, 0x3A, 0x03, 0x8D, 0x15, 0xD2, 0x8E,
0x05, 0xD2, 0xAD, 0x37, 0x03, 0xAE, 0x33, 0x03, 0x8D, 0x16, 0xD2, 0x8E, 0x06, 0xD2, 0xAD, 0x3F,
0x03, 0xAE, 0x3B, 0x03, 0x8D, 0x17, 0xD2, 0x8E, 0x07, 0xD2, 0xA9, 0xFF, 0x8C, 0x18, 0xD2, 0x8D,
0x08, 0xD2, 0x60
};
static const unsigned char tmc_obx[] = {
0xFF, 0xFF, 0x00, 0x05, 0x68, 0x0F, 0x4C, 0xCE, 0x0D, 0x4C, 0xD0, 0x08, 0x4C, 0xEF, 0x09, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
0x04, 0x04, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04,
0x05, 0x05, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x04, 0x05, 0x05,
0x06, 0x06, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06,
0x07, 0x07, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07,
0x07, 0x08, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x07, 0x07, 0x08,
0x08, 0x09, 0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x05, 0x06, 0x07, 0x07, 0x08, 0x09,
0x09, 0x0A, 0x00, 0x01, 0x01, 0x02, 0x03, 0x04, 0x04, 0x05, 0x06, 0x07, 0x07, 0x08, 0x09, 0x0A,
0x0A, 0x0B, 0x00, 0x01, 0x02, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0A,
0x0B, 0x0C, 0x00, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0A, 0x0B,
0x0C, 0x0D, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
0x0D, 0x0E, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
0x0E, 0x0F, 0x00, 0xF1, 0xE4, 0xD7, 0xCB, 0xC0, 0xB5, 0xAA, 0xA1, 0x98, 0x8F, 0x87, 0x7F, 0x78,
0x72, 0x6B, 0x65, 0x5F, 0x5A, 0x55, 0x50, 0x4B, 0x47, 0x43, 0x3F, 0x3C, 0x38, 0x35, 0x32, 0x2F,
0x2C, 0x2A, 0x27, 0x25, 0x23, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17, 0x16, 0x14, 0x13, 0x12,
0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02,
0x01, 0x00, 0x00, 0xF2, 0xE6, 0xDA, 0xCE, 0xBF, 0xB6, 0xAA, 0xA1, 0x98, 0x8F, 0x89, 0x80, 0x7A,
0x71, 0x6B, 0x65, 0x5F, 0x5C, 0x56, 0x50, 0x4D, 0x47, 0x44, 0x3E, 0x3C, 0x38, 0x35, 0x32, 0x2F,
0x2D, 0x2A, 0x28, 0x25, 0x23, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17, 0x16, 0x14, 0x13, 0x12,
0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02,
0x01, 0x00, 0x00, 0xFF, 0xF1, 0xE4, 0xD8, 0xCA, 0xC0, 0xB5, 0xAB, 0xA2, 0x99, 0x8E, 0x87, 0x7F,
0x79, 0x73, 0x70, 0x66, 0x61, 0x5A, 0x55, 0x52, 0x4B, 0x48, 0x43, 0x3F, 0x3C, 0x39, 0x37, 0x33,
0x30, 0x2D, 0x2A, 0x28, 0x25, 0x24, 0x21, 0x1F, 0x1E, 0x1C, 0x1B, 0x19, 0x17, 0x16, 0x15, 0x13,
0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03,
0x02, 0x01, 0x00, 0xF3, 0xE6, 0xD9, 0xCC, 0xC1, 0xB5, 0xAD, 0xA2, 0x99, 0x90, 0x88, 0x80, 0x79,
0x72, 0x6C, 0x66, 0x60, 0x5B, 0x55, 0x51, 0x4C, 0x48, 0x44, 0x40, 0x3C, 0x39, 0x35, 0x32, 0x2F,
0x2D, 0x2A, 0x28, 0x25, 0x23, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17, 0x16, 0x14, 0x13, 0x12,
0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02,
0x01, 0x00, 0x00, 0xF2, 0x33, 0x96, 0xE2, 0x38, 0x8C, 0x00, 0x6A, 0xE8, 0x6A, 0xEF, 0x80, 0x08,
0xAE, 0x46, 0xE6, 0x95, 0x41, 0xF6, 0xB0, 0x6E, 0x30, 0xF6, 0xBB, 0x84, 0x52, 0x22, 0xF4, 0xC8,
0xA0, 0x7A, 0x55, 0x34, 0x14, 0xF5, 0xD8, 0xBD, 0xA4, 0x8D, 0x77, 0x60, 0x4E, 0x38, 0x27, 0x15,
0x06, 0xF7, 0xE8, 0xDB, 0xCF, 0xC3, 0xB8, 0xAC, 0xA2, 0x9A, 0x90, 0x88, 0x7F, 0x78, 0x70, 0x6A,
0x64, 0x5E, 0x00, 0x0D, 0x0D, 0x0C, 0x0B, 0x0B, 0x0A, 0x0A, 0x09, 0x08, 0x08, 0x07, 0x07, 0x07,
0x06, 0x06, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x05,
0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x10,
0x00, 0x08, 0x00, 0x10, 0x00, 0x08, 0xAD, 0xB7, 0x08, 0xF0, 0x5E, 0xAD, 0xB6, 0x08, 0xC9, 0x40,
0x90, 0x5A, 0xCE, 0xB5, 0x08, 0xF0, 0x03, 0x4C, 0xEF, 0x09, 0xA2, 0x07, 0xA9, 0x00, 0x9D, 0xC4,
0x07, 0x9D, 0xCC, 0x07, 0xCA, 0x10, 0xF7, 0x8D, 0xB6, 0x08, 0xAA, 0xA0, 0x0F, 0xB1, 0xFE, 0x10,
0x20, 0x88, 0xB1, 0xFE, 0x10, 0x03, 0x4C, 0x5F, 0x0E, 0x86, 0xFC, 0x0A, 0x0A, 0x26, 0xFC, 0x0A,
0x26, 0xFC, 0x0A, 0x26, 0xFC, 0x69, 0x00, 0x85, 0xFE, 0xA5, 0xFC, 0x69, 0x00, 0x85, 0xFF, 0x90,
0xDA, 0x9D, 0xD4, 0x07, 0x88, 0xB1, 0xFE, 0x9D, 0xDC, 0x07, 0xE8, 0x88, 0x10, 0xCF, 0x18, 0xA5,
0xFE, 0x69, 0x10, 0x85, 0xFE, 0x90, 0x02, 0xE6, 0xFF, 0x4C, 0xEF, 0x09, 0xCE, 0xB5, 0x08, 0x10,
0xF8, 0xEE, 0xB6, 0x08, 0xAD, 0xB4, 0x08, 0x8D, 0xB5, 0x08, 0xA2, 0x07, 0xDE, 0xCC, 0x07, 0x30,
0x03, 0x4C, 0xE9, 0x09, 0xBC, 0xD4, 0x07, 0xB9, 0xFF, 0xFF, 0x85, 0xFC, 0xB9, 0xFF, 0xFF, 0x85,
0xFD, 0xBC, 0xC4, 0x07, 0xB1, 0xFC, 0xD0, 0x06, 0x20, 0x6D, 0x0D, 0x4C, 0xE6, 0x09, 0xC9, 0x40,
0xB0, 0x12, 0x7D, 0xDC, 0x07, 0x9D, 0xE4, 0x07, 0x20, 0x6D, 0x0D, 0xBC, 0x2A, 0x05, 0x20, 0xBC,
0x0E, 0x4C, 0xE6, 0x09, 0xD0, 0x22, 0xC8, 0xFE, 0xC4, 0x07, 0xB1, 0xFC, 0x10, 0x07, 0x85, 0xFB,
0x20, 0x6D, 0x0D, 0xA5, 0xFB, 0x29, 0x7F, 0xD0, 0x07, 0xA9, 0x40, 0x8D, 0xB6, 0x08, 0xD0, 0x4C,
0x8D, 0xB4, 0x08, 0x8D, 0xB5, 0x08, 0xD0, 0x44, 0xC9, 0x80, 0xB0, 0x2B, 0x29, 0x3F, 0x7D, 0xDC,
0x07, 0x9D, 0xE4, 0x07, 0xC8, 0xFE, 0xC4, 0x07, 0xB1, 0xFC, 0x29, 0x7F, 0xD0, 0x07, 0xA9, 0x40,
0x8D, 0xB6, 0x08, 0xD0, 0x06, 0x8D, 0xB4, 0x08, 0x8D, 0xB5, 0x08, 0x20, 0x6D, 0x0D, 0xBC, 0x2A,
0x05, 0x20, 0xBC, 0x0E, 0x4C, 0xE6, 0x09, 0xC9, 0xC0, 0xB0, 0x0C, 0x29, 0x3F, 0x9D, 0x2A, 0x05,
0xC8, 0xFE, 0xC4, 0x07, 0x4C, 0x5E, 0x09, 0x29, 0x3F, 0x9D, 0xCC, 0x07, 0xFE, 0xC4, 0x07, 0xCA,
0x30, 0x03, 0x4C, 0x46, 0x09, 0xA2, 0x07, 0xBD, 0xBC, 0x07, 0xF0, 0x21, 0x20, 0x2E, 0x0B, 0xBD,
0x32, 0x05, 0x3D, 0xC0, 0x08, 0xF0, 0x16, 0xA0, 0x47, 0xB1, 0xFC, 0x18, 0x7D, 0x22, 0x05, 0x9D,
0x24, 0x05, 0xA8, 0xB9, 0x3C, 0x06, 0x38, 0x7D, 0x64, 0x08, 0x9D, 0xF6, 0x07, 0xCA, 0x10, 0xD7,
0x0E, 0x09, 0x05, 0x0E, 0x09, 0x05, 0x0E, 0x09, 0x05, 0x0E, 0x09, 0x05, 0xE8, 0x86, 0xFC, 0x86,
0xFD, 0xA2, 0x07, 0x8A, 0xA8, 0xB9, 0xFC, 0x07, 0xD0, 0x0C, 0xBC, 0xB8, 0x08, 0xB9, 0x04, 0x08,
0xD0, 0x04, 0x8A, 0xA8, 0xA9, 0x00, 0x85, 0xFA, 0x98, 0x9D, 0x1A, 0x05, 0xB9, 0xF4, 0x07, 0x9D,
0x12, 0x05, 0xB9, 0x32, 0x05, 0x85, 0xFB, 0x05, 0xFD, 0x85, 0xFD, 0xA5, 0xFB, 0x3D, 0xC0, 0x08,
0xF0, 0x06, 0xB9, 0xF6, 0x07, 0x9D, 0x14, 0x05, 0xA5, 0xFB, 0x3D, 0xC8, 0x08, 0xF0, 0x12, 0xB9,
0x22, 0x05, 0x29, 0x3F, 0xA8, 0xC8, 0x84, 0xFC, 0xB9, 0x7B, 0x07, 0x9D, 0x12, 0x05, 0x4C, 0x89,
0x0A, 0xA4, 0xFC, 0xF0, 0x0A, 0xB9, 0x3B, 0x07, 0x9D, 0x12, 0x05, 0xA9, 0x00, 0x85, 0xFC, 0xA5,
0xFA, 0x0D, 0x09, 0x05, 0xA8, 0xB9, 0x3C, 0x05, 0xBC, 0x1A, 0x05, 0x19, 0xEC, 0x07, 0x9D, 0x0A,
0x05, 0xE0, 0x04, 0xD0, 0x09, 0xA5, 0xFD, 0x8D, 0x3B, 0x05, 0xA9, 0x00, 0x85, 0xFD, 0xCA, 0x10,
0x82, 0x4E, 0x09, 0x05, 0x4E, 0x09, 0x05, 0x4E, 0x09, 0x05, 0x4E, 0x09, 0x05, 0xA5, 0xFD, 0xA2,
0x03, 0x8E, 0x1F, 0xD2, 0x8E, 0x0F, 0xD2, 0xAE, 0x16, 0x05, 0xAC, 0x12, 0x05, 0x8E, 0x10, 0xD2,
0x8C, 0x00, 0xD2, 0xAE, 0x0E, 0x05, 0xAC, 0x0A, 0x05, 0x8E, 0x11, 0xD2, 0x8C, 0x01, 0xD2, 0xAE,
0x17, 0x05, 0xAC, 0x13, 0x05, 0x8E, 0x12, 0xD2, 0x8C, 0x02, 0xD2, 0xAE, 0x0F, 0x05, 0xAC, 0x0B,
0x05, 0x8E, 0x13, 0xD2, 0x8C, 0x03, 0xD2, 0xAE, 0x18, 0x05, 0xAC, 0x14, 0x05, 0x8E, 0x14, 0xD2,
0x8C, 0x04, 0xD2, 0xAE, 0x10, 0x05, 0xAC, 0x0C, 0x05, 0x8E, 0x15, 0xD2, 0x8C, 0x05, 0xD2, 0xAE,
0x19, 0x05, 0xAC, 0x15, 0x05, 0x8E, 0x16, 0xD2, 0x8C, 0x06, 0xD2, 0xAE, 0x11, 0x05, 0xAC, 0x0D,
0x05, 0x8E, 0x17, 0xD2, 0x8C, 0x07, 0xD2, 0x8D, 0x3A, 0x05, 0xAE, 0x3B, 0x05, 0x8E, 0x18, 0xD2,
0x8D, 0x08, 0xD2, 0x60, 0xBD, 0x1C, 0x08, 0x85, 0xFC, 0xBD, 0x24, 0x08, 0x85, 0xFD, 0xBC, 0x2C,
0x08, 0xC0, 0x3F, 0xF0, 0x7B, 0xFE, 0x2C, 0x08, 0xFE, 0x2C, 0x08, 0xFE, 0x2C, 0x08, 0xB1, 0xFC,
0x29, 0xF0, 0x9D, 0xEC, 0x07, 0xB1, 0xFC, 0x29, 0x0F, 0x38, 0xFD, 0x0C, 0x08, 0x10, 0x02, 0xA9,
0x00, 0x9D, 0xFC, 0x07, 0xC8, 0xB1, 0xFC, 0x29, 0x0F, 0x38, 0xFD, 0x14, 0x08, 0x10, 0x02, 0xA9,
0x00, 0x9D, 0x04, 0x08, 0xB1, 0xFC, 0x29, 0xF0, 0xF0, 0x74, 0x10, 0x0B, 0xA0, 0x49, 0xB1, 0xFC,
0xBC, 0x2C, 0x08, 0x88, 0x88, 0x10, 0x02, 0xA9, 0x00, 0x9D, 0x32, 0x05, 0xB1, 0xFC, 0x29, 0x70,
0xF0, 0x63, 0x4A, 0x4A, 0x8D, 0x9A, 0x0B, 0xA9, 0x00, 0x9D, 0x64, 0x08, 0xC8, 0xB1, 0xFC, 0x90,
0xFE, 0xEA, 0xEA, 0xEA, 0xEA, 0x4C, 0x38, 0x0D, 0xEA, 0x4C, 0x35, 0x0D, 0xEA, 0x4C, 0x3C, 0x0D,
0xEA, 0x4C, 0x4A, 0x0D, 0xEA, 0x4C, 0x54, 0x0D, 0xEA, 0x4C, 0x5F, 0x0D, 0xEA, 0x4C, 0x51, 0x0D,
0xBD, 0x34, 0x08, 0xF0, 0x12, 0xDE, 0x44, 0x08, 0xD0, 0x0D, 0x9D, 0x44, 0x08, 0xBD, 0xFC, 0x07,
0x29, 0x0F, 0xF0, 0x03, 0xDE, 0xFC, 0x07, 0xBD, 0x3C, 0x08, 0xF0, 0x12, 0xDE, 0x4C, 0x08, 0xD0,
0x0D, 0x9D, 0x4C, 0x08, 0xBD, 0x04, 0x08, 0x29, 0x0F, 0xF0, 0x03, 0xDE, 0x04, 0x08, 0xA0, 0x48,
0xB1, 0xFC, 0x9D, 0x32, 0x05, 0xBD, 0x94, 0x08, 0x18, 0x69, 0x3F, 0xA8, 0xB1, 0xFC, 0x7D, 0xE4,
0x07, 0x9D, 0x22, 0x05, 0xA8, 0xB9, 0x3C, 0x06, 0x9D, 0xF4, 0x07, 0xDE, 0xA4, 0x08, 0x10, 0x33,
0xBD, 0x9C, 0x08, 0x9D, 0xA4, 0x08, 0xBD, 0xAC, 0x08, 0xF0, 0x18, 0x18, 0x7D, 0x94, 0x08, 0x9D,
0x94, 0x08, 0xF0, 0x07, 0xDD, 0x8C, 0x08, 0xD0, 0x1A, 0xA9, 0xFE, 0x18, 0x69, 0x01, 0x9D, 0xAC,
0x08, 0xD0, 0x10, 0xFE, 0x94, 0x08, 0xBD, 0x8C, 0x08, 0xDD, 0x94, 0x08, 0xB0, 0x05, 0xA9, 0x00,
0x9D, 0x94, 0x08, 0xBD, 0x74, 0x08, 0xF0, 0x04, 0xDE, 0x74, 0x08, 0x60, 0xBD, 0x6C, 0x08, 0x85,
0xFA, 0xBD, 0x5C, 0x08, 0x85, 0xFB, 0x20, 0x69, 0x0C, 0xDE, 0x84, 0x08, 0x10, 0x10, 0xA5, 0xFA,
0x9D, 0x6C, 0x08, 0xA5, 0xFB, 0x9D, 0x5C, 0x08, 0xBD, 0x7C, 0x08, 0x9D, 0x84, 0x08, 0x60, 0xBD,
0x54, 0x08, 0x8D, 0x70, 0x0C, 0x10, 0xFE, 0x4C, 0xA7, 0x0C, 0xEA, 0x4C, 0x90, 0x0C, 0xEA, 0x4C,
0xAE, 0x0C, 0xEA, 0x4C, 0xB4, 0x0C, 0xEA, 0x4C, 0xBE, 0x0C, 0xEA, 0x4C, 0xD2, 0x0C, 0xEA, 0x4C,
0xE2, 0x0C, 0xEA, 0x4C, 0xF4, 0x0C, 0xA5, 0xFA, 0xE6, 0xFA, 0x29, 0x03, 0x4A, 0x90, 0x0F, 0xD0,
0x47, 0xA5, 0xFB, 0x9D, 0x64, 0x08, 0x18, 0x7D, 0xF4, 0x07, 0x9D, 0xF4, 0x07, 0x60, 0xA9, 0x00,
0x9D, 0x64, 0x08, 0x60, 0x20, 0x1D, 0x0D, 0x4C, 0x9D, 0x0C, 0x20, 0x1D, 0x0D, 0x18, 0x7D, 0x22,
0x05, 0x4C, 0x54, 0x0D, 0xA5, 0xFA, 0x9D, 0x64, 0x08, 0x18, 0x7D, 0xF4, 0x07, 0x9D, 0xF4, 0x07,
0xA5, 0xFA, 0x18, 0x65, 0xFB, 0x85, 0xFA, 0x60, 0xBD, 0x22, 0x05, 0x38, 0xE5, 0xFA, 0x9D, 0x22,
0x05, 0xA8, 0xB9, 0x3C, 0x06, 0x4C, 0xC7, 0x0C, 0xBD, 0xF4, 0x07, 0x38, 0xE5, 0xFB, 0x9D, 0xF4,
0x07, 0x38, 0xA9, 0x00, 0xE5, 0xFB, 0x9D, 0x64, 0x08, 0x60, 0xBD, 0x84, 0x08, 0xD0, 0xAE, 0xA5,
0xFB, 0x10, 0x10, 0xBD, 0x04, 0x08, 0xF0, 0xA5, 0xBD, 0xFC, 0x07, 0xC9, 0x0F, 0xF0, 0x9E, 0xFE,
0xFC, 0x07, 0x60, 0xBD, 0xFC, 0x07, 0xF0, 0x95, 0xBD, 0x04, 0x08, 0xC9, 0x0F, 0xF0, 0x8E, 0xFE,
0x04, 0x08, 0x60, 0xA4, 0xFA, 0xA5, 0xFB, 0x30, 0x02, 0xC8, 0xC8, 0x88, 0x98, 0x85, 0xFA, 0xC5,
0xFB, 0xD0, 0x06, 0xA5, 0xFB, 0x49, 0xFF, 0x85, 0xFB, 0x98, 0x60, 0x7D, 0xF4, 0x07, 0x9D, 0xF4,
0x07, 0x60, 0xBC, 0xE4, 0x07, 0x79, 0x3C, 0x06, 0x9D, 0xF4, 0x07, 0x98, 0x9D, 0x22, 0x05, 0x60,
0x2D, 0x0A, 0xD2, 0x9D, 0xF4, 0x07, 0x60, 0x7D, 0xE4, 0x07, 0x9D, 0x22, 0x05, 0xA8, 0xB9, 0x3C,
0x06, 0x9D, 0xF4, 0x07, 0x60, 0x9D, 0x22, 0x05, 0xA8, 0xBD, 0xF4, 0x07, 0x79, 0x3C, 0x06, 0x9D,
0xF4, 0x07, 0x60, 0xC8, 0xFE, 0xC4, 0x07, 0xB1, 0xFC, 0x4A, 0x4A, 0x4A, 0x4A, 0x9D, 0x0C, 0x08,
0xB1, 0xFC, 0x29, 0x0F, 0x9D, 0x14, 0x08, 0x60, 0x20, 0x5F, 0x0E, 0xA0, 0x0F, 0xA9, 0x00, 0x85,
0xFE, 0xA9, 0x00, 0x85, 0xFF, 0x8A, 0xF0, 0x2E, 0xB1, 0xFE, 0x10, 0x01, 0xCA, 0x18, 0xA5, 0xFE,
0x69, 0x10, 0x85, 0xFE, 0x90, 0xEF, 0xE6, 0xFF, 0xB0, 0xEB, 0x20, 0x5F, 0x0E, 0xA9, 0x00, 0x85,
0xFC, 0x8A, 0x0A, 0x0A, 0x26, 0xFC, 0x0A, 0x26, 0xFC, 0x0A, 0x26, 0xFC, 0x69, 0x00, 0x85, 0xFE,
0xA5, 0xFC, 0x69, 0x00, 0x85, 0xFF, 0xA9, 0x40, 0x8D, 0xB6, 0x08, 0xA9, 0x01, 0x8D, 0xB5, 0x08,
0x8D, 0xB7, 0x08, 0x60, 0xC9, 0x10, 0x90, 0xB0, 0xC9, 0x20, 0x90, 0xCE, 0xC9, 0x30, 0xB0, 0x03,
0x4C, 0xAE, 0x0E, 0xC9, 0x40, 0xB0, 0x09, 0x8A, 0x29, 0x0F, 0xF0, 0x03, 0x8D, 0xB4, 0x08, 0x60,
0xC9, 0x50, 0x90, 0x71, 0xC9, 0x60, 0xB0, 0x06, 0xA9, 0x00, 0x8D, 0xB7, 0x08, 0x60, 0xC9, 0x70,
0x90, 0xF8, 0xA9, 0x01, 0x8D, 0xB5, 0x08, 0xA9, 0x40, 0x8D, 0xB6, 0x08, 0x84, 0xFC, 0x86, 0xFD,
0xA0, 0x1E, 0xB1, 0xFC, 0x8D, 0xB4, 0x08, 0xA5, 0xFC, 0x18, 0x69, 0x20, 0x8D, 0xC2, 0x0E, 0x90,
0x01, 0xE8, 0x8E, 0xC3, 0x0E, 0x18, 0x69, 0x40, 0x8D, 0xCA, 0x0E, 0x90, 0x01, 0xE8, 0x8E, 0xCB,
0x0E, 0x18, 0x69, 0x40, 0x8D, 0x52, 0x09, 0x90, 0x01, 0xE8, 0x8E, 0x53, 0x09, 0x18, 0x69, 0x80,
0x8D, 0x57, 0x09, 0x90, 0x01, 0xE8, 0x8E, 0x58, 0x09, 0x18, 0x69, 0x80, 0x85, 0xFE, 0x8D, 0x10,
0x09, 0x8D, 0x88, 0x0D, 0x8D, 0xB7, 0x0D, 0x90, 0x01, 0xE8, 0x86, 0xFF, 0x8E, 0x16, 0x09, 0x8E,
0x8C, 0x0D, 0x8E, 0xBD, 0x0D, 0xA0, 0x07, 0xA9, 0x00, 0x8D, 0xB7, 0x08, 0x99, 0x00, 0xD2, 0x99,
0x10, 0xD2, 0x99, 0x0A, 0x05, 0x99, 0xFC, 0x07, 0x99, 0x04, 0x08, 0x99, 0x32, 0x05, 0x99, 0xBC,
0x07, 0x88, 0x10, 0xE8, 0x8D, 0x08, 0xD2, 0x8D, 0x18, 0xD2, 0x8D, 0x3A, 0x05, 0x8D, 0x3B, 0x05,
0x60, 0x9D, 0xFC, 0x07, 0x9D, 0x04, 0x08, 0x9D, 0x32, 0x05, 0xBD, 0xE4, 0x07, 0x9D, 0x22, 0x05,
0x60, 0x98, 0x49, 0xF0, 0x4A, 0x4A, 0x4A, 0x4A, 0x9D, 0x0C, 0x08, 0x98, 0x29, 0x0F, 0x49, 0x0F,
0x9D, 0x14, 0x08, 0x60, 0x29, 0x07, 0x85, 0xFC, 0x8A, 0xA6, 0xFC, 0x29, 0x3F, 0xF0, 0xE2, 0x9D,
0xE4, 0x07, 0xA9, 0x00, 0x9D, 0xBC, 0x07, 0xB9, 0xFF, 0xFF, 0x9D, 0x1C, 0x08, 0x85, 0xFC, 0xB9,
0xFF, 0xFF, 0x9D, 0x24, 0x08, 0x85, 0xFD, 0x05, 0xFC, 0xF0, 0xB6, 0xA0, 0x4A, 0xB1, 0xFC, 0x9D,
0x34, 0x08, 0x9D, 0x44, 0x08, 0xC8, 0xB1, 0xFC, 0x9D, 0x3C, 0x08, 0x9D, 0x4C, 0x08, 0xC8, 0xB1,
0xFC, 0x29, 0x70, 0x4A, 0x4A, 0x9D, 0x54, 0x08, 0xB1, 0xFC, 0x29, 0x0F, 0x9D, 0x5C, 0x08, 0xB1,
0xFC, 0x10, 0x0B, 0xBD, 0x5C, 0x08, 0x49, 0xFF, 0x18, 0x69, 0x01, 0x9D, 0x5C, 0x08, 0xC8, 0xB1,
0xFC, 0x9D, 0x74, 0x08, 0xC8, 0xB1, 0xFC, 0x29, 0x3F, 0x9D, 0x7C, 0x08, 0x9D, 0x84, 0x08, 0xC8,
0xB1, 0xFC, 0x29, 0x80, 0xF0, 0x02, 0xA9, 0x01, 0x9D, 0xAC, 0x08, 0xB1, 0xFC, 0x29, 0x70, 0x4A,
0x4A, 0x4A, 0x4A, 0x9D, 0x8C, 0x08, 0xD0, 0x03, 0x9D, 0xAC, 0x08, 0xB1, 0xFC, 0x29, 0x0F, 0x9D,
0x9C, 0x08, 0x9D, 0xA4, 0x08, 0x88, 0xB1, 0xFC, 0x29, 0xC0, 0x18, 0x7D, 0xE4, 0x07, 0x9D, 0xE4,
0x07, 0x9D, 0x22, 0x05, 0xA8, 0xB9, 0x3C, 0x06, 0x9D, 0xF4, 0x07, 0xA9, 0x00, 0x9D, 0x2C, 0x08,
0x9D, 0x64, 0x08, 0x9D, 0x6C, 0x08, 0x9D, 0x94, 0x08, 0xA9, 0x01, 0x9D, 0xBC, 0x07, 0x60
};
static const unsigned char tm2_obx[] = {
0xFF, 0xFF, 0x00, 0x02, 0x6B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03,
0x03, 0x04, 0x04, 0x04, 0x05, 0x05, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x04,
0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04,
0x05, 0x05, 0x06, 0x06, 0x07, 0x07, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05,
0x05, 0x06, 0x06, 0x07, 0x07, 0x08, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x04, 0x04, 0x05, 0x05,
0x06, 0x07, 0x07, 0x08, 0x08, 0x09, 0x00, 0x01, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x05, 0x06,
0x07, 0x07, 0x08, 0x09, 0x09, 0x0A, 0x00, 0x01, 0x01, 0x02, 0x03, 0x04, 0x04, 0x05, 0x06, 0x07,
0x07, 0x08, 0x09, 0x0A, 0x0A, 0x0B, 0x00, 0x01, 0x02, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0A, 0x0B, 0x0C, 0x00, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x0A, 0x0A, 0x0B, 0x0C, 0x0D, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x07, 0x08,
0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x00, 0xF1, 0xE4, 0xD7, 0xCB, 0xC0, 0xB5, 0xAA, 0xA1, 0x98,
0x8F, 0x87, 0x7F, 0x78, 0x72, 0x6B, 0x65, 0x5F, 0x5A, 0x55, 0x50, 0x4B, 0x47, 0x43, 0x3F, 0x3C,
0x38, 0x35, 0x32, 0x2F, 0x2C, 0x2A, 0x27, 0x25, 0x23, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17,
0x16, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0xF2, 0xE9, 0xDA, 0xCE, 0xBF, 0xB6, 0xAA, 0xA1, 0x98,
0x8F, 0x89, 0x80, 0x7A, 0x71, 0x6B, 0x65, 0x5F, 0x5C, 0x56, 0x50, 0x4D, 0x47, 0x44, 0x3E, 0x3C,
0x38, 0x35, 0x32, 0x2F, 0x2D, 0x2A, 0x28, 0x25, 0x23, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17,
0x16, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0xFF, 0xF1, 0xE4, 0xD8, 0xCA, 0xC0, 0xB5, 0xAB, 0xA2,
0x99, 0x8E, 0x87, 0x7F, 0x79, 0x73, 0x70, 0x66, 0x61, 0x5A, 0x55, 0x52, 0x4B, 0x48, 0x43, 0x3F,
0x3C, 0x39, 0x37, 0x33, 0x30, 0x2D, 0x2A, 0x28, 0x25, 0x24, 0x21, 0x1F, 0x1E, 0x1C, 0x1B, 0x19,
0x17, 0x16, 0x15, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07,
0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0xF3, 0xE6, 0xD9, 0xCC, 0xC1, 0xB5, 0xAD, 0xA2, 0x99,
0x90, 0x88, 0x80, 0x79, 0x72, 0x6C, 0x66, 0x60, 0x5B, 0x55, 0x51, 0x4C, 0x48, 0x44, 0x40, 0x3C,
0x39, 0x35, 0x32, 0x2F, 0x2D, 0x2A, 0x28, 0x25, 0x23, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x18, 0x17,
0x16, 0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06,
0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0xE2, 0x38, 0x8C, 0x00, 0x6A, 0xE8, 0x6A, 0xEF, 0x80, 0x08,
0xAE, 0x46, 0xE6, 0x95, 0x41, 0xF6, 0xB0, 0x6E, 0x30, 0xF6, 0xBB, 0x84, 0x52, 0x22, 0xF4, 0xC8,
0xA0, 0x7A, 0x55, 0x34, 0x14, 0xF5, 0xD8, 0xBD, 0xA4, 0x8D, 0x77, 0x60, 0x4E, 0x38, 0x27, 0x15,
0x06, 0xF7, 0xE8, 0xDB, 0xCF, 0xC3, 0xB8, 0xAC, 0xA2, 0x9A, 0x90, 0x88, 0x7F, 0x78, 0x70, 0x6A,
0x64, 0x5E, 0x57, 0x52, 0x32, 0x0A, 0x00, 0xF2, 0x33, 0x96, 0xE2, 0x38, 0x8C, 0x00, 0x6A, 0xE8,
0x6A, 0xEF, 0x80, 0x08, 0xAE, 0x46, 0xE6, 0x95, 0x41, 0xF6, 0xB0, 0x6E, 0x30, 0xF6, 0xBB, 0x84,
0x52, 0x22, 0xF4, 0xC8, 0xA0, 0x7A, 0x55, 0x34, 0x14, 0xF5, 0xD8, 0xBD, 0xA4, 0x8D, 0x77, 0x60,
0x4E, 0x38, 0x27, 0x15, 0x06, 0xF7, 0xE8, 0xDB, 0xCF, 0xC3, 0xB8, 0xAC, 0xA2, 0x9A, 0x90, 0x88,
0x7F, 0x78, 0x70, 0x6A, 0x64, 0x5E, 0x0B, 0x0B, 0x0A, 0x0A, 0x09, 0x08, 0x08, 0x07, 0x07, 0x07,
0x06, 0x06, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0D, 0x0C, 0x0B, 0x0B, 0x0A, 0x0A, 0x09, 0x08,
0x08, 0x07, 0x07, 0x07, 0x06, 0x06, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x03, 0x03, 0x03,
0x03, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xE4, 0x0D, 0x4C, 0xE3, 0x06, 0x4C, 0x9F, 0x08, 0x01,
0x10, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x05,
0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x10,
0x00, 0x08, 0x00, 0x10, 0x00, 0x08, 0x85, 0xD3, 0x81, 0xA9, 0x85, 0xD3, 0x81, 0xA9, 0x88, 0xB1,
0xFA, 0x8D, 0x17, 0x05, 0xA2, 0x00, 0x86, 0xFC, 0x0A, 0x26, 0xFC, 0x0A, 0x26, 0xFC, 0x0A, 0x26,
0xFC, 0x0A, 0x26, 0xFC, 0x6D, 0x17, 0x05, 0x90, 0x02, 0xE6, 0xFC, 0x18, 0x69, 0x00, 0x85, 0xFA,
0xA5, 0xFC, 0x69, 0x00, 0x85, 0xFB, 0x4C, 0x07, 0x07, 0x20, 0xB5, 0x09, 0xAD, 0x16, 0x05, 0xF0,
0x05, 0xCE, 0x1C, 0x05, 0x30, 0x03, 0x4C, 0xA2, 0x08, 0xCE, 0x1D, 0x05, 0xD0, 0x52, 0xA2, 0x00,
0xEE, 0x17, 0x05, 0xAD, 0x19, 0x05, 0x85, 0xFA, 0xAD, 0x1A, 0x05, 0x85, 0xFB, 0xA0, 0x10, 0xB1,
0xFA, 0x30, 0xAB, 0xD0, 0x03, 0x4C, 0x2C, 0x0F, 0x8D, 0x1D, 0x05, 0x88, 0xB1, 0xFA, 0x88, 0x84,
0xFC, 0xA8, 0xB9, 0xFF, 0xFF, 0x9D, 0x50, 0x05, 0xB9, 0xFF, 0xFF, 0x9D, 0x58, 0x05, 0xA9, 0x00,
0x9D, 0x70, 0x05, 0x9D, 0x60, 0x05, 0xA4, 0xFC, 0xB1, 0xFA, 0x9D, 0x68, 0x05, 0xE8, 0x88, 0x10,
0xDB, 0xA9, 0x11, 0x18, 0x65, 0xFA, 0x8D, 0x19, 0x05, 0xA9, 0x00, 0x65, 0xFB, 0x8D, 0x1A, 0x05,
0xAD, 0x1B, 0x05, 0x8D, 0x1C, 0x05, 0xA2, 0x07, 0xDE, 0x70, 0x05, 0x30, 0x06, 0xCA, 0x10, 0xF8,
0x4C, 0xA2, 0x08, 0xBD, 0x50, 0x05, 0x85, 0xFA, 0xBD, 0x58, 0x05, 0x85, 0xFB, 0xBC, 0x60, 0x05,
0xB1, 0xFA, 0xD0, 0x1C, 0xC8, 0xB1, 0xFA, 0x9D, 0xD0, 0x05, 0x29, 0xF0, 0x9D, 0xD8, 0x05, 0xB1,
0xFA, 0x0A, 0x0A, 0x0A, 0x0A, 0x9D, 0xE0, 0x05, 0xC8, 0x98, 0x9D, 0x60, 0x05, 0x4C, 0x57, 0x07,
0xC9, 0x40, 0xB0, 0x4F, 0x7D, 0x68, 0x05, 0x9D, 0x98, 0x05, 0xC8, 0xB1, 0xFA, 0x10, 0x25, 0x29,
0x7F, 0x85, 0xFC, 0xC8, 0xB1, 0xFA, 0x9D, 0xD0, 0x05, 0x29, 0xF0, 0x9D, 0xD8, 0x05, 0xB1, 0xFA,
0x0A, 0x0A, 0x0A, 0x0A, 0x9D, 0xE0, 0x05, 0xC8, 0x98, 0x9D, 0x60, 0x05, 0xA4, 0xFC, 0x20, 0x9C,
0x0F, 0x4C, 0x57, 0x07, 0xA8, 0xFE, 0x60, 0x05, 0xFE, 0x60, 0x05, 0xBD, 0xD0, 0x05, 0x29, 0xF0,
0x9D, 0xD8, 0x05, 0xBD, 0xD0, 0x05, 0x0A, 0x0A, 0x0A, 0x0A, 0x9D, 0xE0, 0x05, 0x20, 0x9C, 0x0F,
0x4C, 0x57, 0x07, 0xC9, 0x80, 0xB0, 0x25, 0x29, 0x3F, 0x18, 0x7D, 0x68, 0x05, 0x9D, 0x98, 0x05,
0xC8, 0xB1, 0xFA, 0x9D, 0xD0, 0x05, 0x29, 0xF0, 0x9D, 0xD8, 0x05, 0xB1, 0xFA, 0x0A, 0x0A, 0x0A,
0x0A, 0x9D, 0xE0, 0x05, 0xC8, 0x98, 0x9D, 0x60, 0x05, 0x4C, 0x57, 0x07, 0xD0, 0x0E, 0xC8, 0xB1,
0xFA, 0x9D, 0x70, 0x05, 0xC8, 0x98, 0x9D, 0x60, 0x05, 0x4C, 0x57, 0x07, 0xC9, 0xC0, 0xB0, 0x0F,
0x29, 0x3F, 0x18, 0x7D, 0x68, 0x05, 0x9D, 0x98, 0x05, 0xFE, 0x60, 0x05, 0x4C, 0x57, 0x07, 0xC9,
0xD0, 0xB0, 0x0F, 0xC8, 0xFE, 0x60, 0x05, 0x29, 0x0F, 0x8D, 0x1B, 0x05, 0x8D, 0x1C, 0x05, 0x4C,
0x6A, 0x07, 0xC9, 0xE0, 0xB0, 0x16, 0xB1, 0xFA, 0x85, 0xFC, 0xC8, 0xB1, 0xFA, 0x85, 0xFD, 0xC8,
0x98, 0x9D, 0x60, 0x05, 0xA5, 0xFC, 0x20, 0x0E, 0x0E, 0x4C, 0x57, 0x07, 0xC9, 0xF0, 0xB0, 0x2E,
0xB1, 0xFA, 0x85, 0xFC, 0xC8, 0xB1, 0xFA, 0x85, 0xFD, 0xA5, 0xFC, 0x20, 0x0E, 0x0E, 0xBC, 0x60,
0x05, 0xC8, 0xC8, 0xB1, 0xFA, 0x9D, 0xD0, 0x05, 0x29, 0xF0, 0x9D, 0xD8, 0x05, 0xB1, 0xFA, 0x0A,
0x0A, 0x0A, 0x0A, 0x9D, 0xE0, 0x05, 0xC8, 0x98, 0x9D, 0x60, 0x05, 0x4C, 0x57, 0x07, 0xC9, 0xFF,
0xB0, 0x0B, 0xE9, 0xEF, 0x9D, 0x70, 0x05, 0xFE, 0x60, 0x05, 0x4C, 0x57, 0x07, 0xA9, 0x40, 0x9D,
0x70, 0x05, 0x4C, 0x57, 0x07, 0x20, 0xB5, 0x09, 0xA2, 0x07, 0xBD, 0x78, 0x05, 0xF0, 0x73, 0x4C,
0xD9, 0x0A, 0xBD, 0x0E, 0x05, 0xF0, 0x0E, 0xA9, 0x00, 0x9D, 0x20, 0x05, 0x9D, 0x28, 0x05, 0xCA,
0x10, 0xE8, 0x4C, 0x1F, 0x09, 0xA4, 0xFD, 0xB9, 0x00, 0x03, 0x18, 0x65, 0xFC, 0x9D, 0x38, 0x05,
0x98, 0x9D, 0xA0, 0x05, 0xBD, 0xB0, 0x05, 0x3D, 0xA8, 0x06, 0xF0, 0x28, 0xA5, 0xFD, 0x29, 0x7F,
0xA8, 0xB9, 0x00, 0x04, 0x18, 0x65, 0xFC, 0x9D, 0x37, 0x05, 0xB9, 0x80, 0x04, 0x69, 0x00, 0x9D,
0x38, 0x05, 0xA9, 0x00, 0x9D, 0x1F, 0x05, 0xBC, 0x98, 0x06, 0x99, 0x27, 0x05, 0xCA, 0xCA, 0x10,
0xA9, 0x4C, 0x1F, 0x09, 0xBD, 0xB0, 0x05, 0x3D, 0xA0, 0x06, 0xF0, 0x16, 0xBD, 0x68, 0x06, 0x18,
0x65, 0xFD, 0x9D, 0xA2, 0x05, 0xA8, 0xB9, 0x00, 0x03, 0x18, 0x65, 0xFC, 0x38, 0x65, 0xFE, 0x9D,
0x3A, 0x05, 0xCA, 0x10, 0x85, 0xE8, 0x86, 0xFC, 0xA2, 0x03, 0xAD, 0x09, 0x05, 0xF0, 0x06, 0x29,
0x40, 0xD0, 0x3C, 0xA2, 0x07, 0x8A, 0xA8, 0xB9, 0x20, 0x05, 0xD0, 0x0C, 0xBC, 0x98, 0x06, 0xB9,
0x28, 0x05, 0xD0, 0x04, 0x8A, 0xA8, 0xA9, 0x00, 0x19, 0xA8, 0x05, 0x9D, 0x30, 0x05, 0xB9, 0x38,
0x05, 0x9D, 0x48, 0x05, 0xB9, 0xA0, 0x05, 0x9D, 0x40, 0x05, 0xB9, 0xB0, 0x05, 0x05, 0xFC, 0x85,
0xFC, 0xE0, 0x04, 0xD0, 0x03, 0x8D, 0x1F, 0x05, 0xCA, 0x10, 0xCA, 0x8D, 0x1E, 0x05, 0x60, 0xBD,
0x20, 0x05, 0x1D, 0xA8, 0x05, 0x9D, 0x30, 0x05, 0xBD, 0x2C, 0x05, 0x1D, 0xAC, 0x05, 0x9D, 0x34,
0x05, 0xBD, 0x38, 0x05, 0x9D, 0x48, 0x05, 0xBD, 0x3C, 0x05, 0x9D, 0x4C, 0x05, 0xBD, 0xA0, 0x05,
0x9D, 0x40, 0x05, 0xBD, 0xA4, 0x05, 0x9D, 0x44, 0x05, 0xCA, 0x10, 0xD3, 0xAD, 0xB0, 0x05, 0x0D,
0xB1, 0x05, 0x0D, 0xB2, 0x05, 0x0D, 0xB3, 0x05, 0x8D, 0x1E, 0x05, 0xAD, 0xB4, 0x05, 0x0D, 0xB5,
0x05, 0x0D, 0xB6, 0x05, 0x0D, 0xB7, 0x05, 0x8D, 0x1F, 0x05, 0x60, 0xAD, 0x09, 0x05, 0xD0, 0x03,
0x4C, 0x90, 0x0A, 0x30, 0x03, 0x4C, 0x48, 0x0A, 0xAD, 0x0D, 0x05, 0xAA, 0x4A, 0x4A, 0x29, 0x01,
0xA8, 0xB9, 0x1E, 0x05, 0x8D, 0x38, 0xD2, 0x8A, 0x29, 0x04, 0xA8, 0xB9, 0x38, 0x05, 0x8D, 0x30,
0xD2, 0xBD, 0x20, 0x05, 0x8D, 0x31, 0xD2, 0xB9, 0x39, 0x05, 0x8D, 0x32, 0xD2, 0xBD, 0x21, 0x05,
0x8D, 0x33, 0xD2, 0xB9, 0x3A, 0x05, 0x8D, 0x34, 0xD2, 0xBD, 0x22, 0x05, 0x8D, 0x35, 0xD2, 0xB9,
0x3B, 0x05, 0x8D, 0x36, 0xD2, 0xBD, 0x23, 0x05, 0x8D, 0x37, 0xD2, 0xAD, 0x0C, 0x05, 0xAA, 0x4A,
0x4A, 0x29, 0x01, 0xA8, 0xB9, 0x1E, 0x05, 0x8D, 0x28, 0xD2, 0x8A, 0x29, 0x04, 0xA8, 0xB9, 0x38,
0x05, 0x8D, 0x20, 0xD2, 0xBD, 0x20, 0x05, 0x8D, 0x21, 0xD2, 0xB9, 0x39, 0x05, 0x8D, 0x22, 0xD2,
0xBD, 0x21, 0x05, 0x8D, 0x23, 0xD2, 0xB9, 0x3A, 0x05, 0x8D, 0x24, 0xD2, 0xBD, 0x22, 0x05, 0x8D,
0x25, 0xD2, 0xB9, 0x3B, 0x05, 0x8D, 0x26, 0xD2, 0xBD, 0x23, 0x05, 0x8D, 0x27, 0xD2, 0xAD, 0x0B,
0x05, 0xAA, 0x4A, 0x4A, 0x29, 0x01, 0xA8, 0xB9, 0x1E, 0x05, 0x8D, 0x18, 0xD2, 0x8A, 0xAC, 0x09,
0x05, 0x10, 0x02, 0x29, 0x04, 0xA8, 0xB9, 0x38, 0x05, 0x8D, 0x10, 0xD2, 0xBD, 0x20, 0x05, 0x8D,
0x11, 0xD2, 0xB9, 0x39, 0x05, 0x8D, 0x12, 0xD2, 0xBD, 0x21, 0x05, 0x8D, 0x13, 0xD2, 0xB9, 0x3A,
0x05, 0x8D, 0x14, 0xD2, 0xBD, 0x22, 0x05, 0x8D, 0x15, 0xD2, 0xB9, 0x3B, 0x05, 0x8D, 0x16, 0xD2,
0xBD, 0x23, 0x05, 0x8D, 0x17, 0xD2, 0xAD, 0x0A, 0x05, 0xAA, 0x4A, 0x4A, 0x29, 0x01, 0xA8, 0xB9,
0x1E, 0x05, 0x8D, 0x08, 0xD2, 0x8A, 0xAC, 0x09, 0x05, 0x10, 0x02, 0x29, 0x04, 0xA8, 0xB9, 0x38,
0x05, 0x8D, 0x00, 0xD2, 0xBD, 0x20, 0x05, 0x8D, 0x01, 0xD2, 0xB9, 0x39, 0x05, 0x8D, 0x02, 0xD2,
0xBD, 0x21, 0x05, 0x8D, 0x03, 0xD2, 0xB9, 0x3A, 0x05, 0x8D, 0x04, 0xD2, 0xBD, 0x22, 0x05, 0x8D,
0x05, 0xD2, 0xB9, 0x3B, 0x05, 0x8D, 0x06, 0xD2, 0xBD, 0x23, 0x05, 0x8D, 0x07, 0xD2, 0x60, 0xBD,
0x80, 0x05, 0x85, 0xFA, 0xBD, 0x88, 0x05, 0x85, 0xFB, 0xBD, 0x80, 0x06, 0x85, 0xFC, 0xBD, 0x88,
0x06, 0x85, 0xFD, 0xBD, 0x90, 0x06, 0x85, 0xFE, 0xBD, 0xB8, 0x05, 0xDD, 0xC0, 0x05, 0x90, 0x0C,
0x9D, 0x08, 0x06, 0xBD, 0xC8, 0x05, 0x9D, 0xB8, 0x05, 0x4C, 0x0B, 0x0B, 0xBD, 0x08, 0x06, 0xF0,
0x30, 0xBD, 0xE8, 0x05, 0xF0, 0x13, 0xDE, 0xF8, 0x05, 0xD0, 0x0E, 0x9D, 0xF8, 0x05, 0xBD, 0xD8,
0x05, 0xF0, 0x06, 0x38, 0xE9, 0x10, 0x9D, 0xD8, 0x05, 0xBD, 0xF0, 0x05, 0xF0, 0x13, 0xDE, 0x00,
0x06, 0xD0, 0x0E, 0x9D, 0x00, 0x06, 0xBD, 0xE0, 0x05, 0xF0, 0x06, 0x38, 0xE9, 0x10, 0x9D, 0xE0,
0x05, 0xBC, 0x48, 0x06, 0xB1, 0xFA, 0x18, 0x7D, 0x98, 0x05, 0x18, 0x65, 0xFD, 0x85, 0xFD, 0xDE,
0x58, 0x06, 0x10, 0x39, 0xBD, 0x50, 0x06, 0x9D, 0x58, 0x06, 0xBD, 0x60, 0x06, 0xF0, 0x1E, 0x18,
0x7D, 0x48, 0x06, 0x9D, 0x48, 0x06, 0xF0, 0x0D, 0xDD, 0x40, 0x06, 0x90, 0x20, 0xA9, 0xFF, 0x9D,
0x60, 0x06, 0x4C, 0x87, 0x0B, 0xA9, 0x01, 0x9D, 0x60, 0x06, 0x4C, 0x87, 0x0B, 0xFE, 0x48, 0x06,
0xBD, 0x40, 0x06, 0xDD, 0x48, 0x06, 0xB0, 0x05, 0xA9, 0x00, 0x9D, 0x48, 0x06, 0xA9, 0x13, 0x18,
0x65, 0xFA, 0x85, 0xFA, 0x90, 0x02, 0xE6, 0xFB, 0xBC, 0xB8, 0x05, 0xB1, 0xFA, 0x29, 0xF0, 0x9D,
0xA8, 0x05, 0xB1, 0xFA, 0x29, 0x0F, 0x1D, 0xD8, 0x05, 0xA8, 0xB9, 0x00, 0x02, 0x05, 0xFF, 0xA8,
0xB9, 0x00, 0x02, 0x9D, 0x20, 0x05, 0xBC, 0xB8, 0x05, 0xC8, 0xB1, 0xFA, 0x29, 0x0F, 0x1D, 0xE0,
0x05, 0xA8, 0xB9, 0x00, 0x02, 0x05, 0xFF, 0xA8, 0xB9, 0x00, 0x02, 0x9D, 0x28, 0x05, 0xBD, 0x28,
0x06, 0xD0, 0x27, 0xBD, 0x10, 0x06, 0x8D, 0xD4, 0x0B, 0x10, 0xFE, 0x4C, 0xD1, 0x0C, 0xEA, 0x4C,
0x6C, 0x0C, 0xEA, 0x4C, 0xA7, 0x0C, 0xEA, 0x4C, 0xD4, 0x0C, 0xEA, 0x4C, 0x01, 0x0D, 0xEA, 0x4C,
0x21, 0x0D, 0xEA, 0x4C, 0x41, 0x0D, 0xEA, 0x4C, 0x49, 0x0D, 0xDE, 0x28, 0x06, 0xBC, 0xB8, 0x05,
0xC8, 0xB1, 0xFA, 0x29, 0x70, 0x4A, 0x4A, 0x4A, 0x8D, 0x22, 0x0C, 0xB1, 0xFA, 0x30, 0x06, 0xBD,
0x70, 0x06, 0x4C, 0x12, 0x0C, 0xBD, 0x78, 0x06, 0x3D, 0xB0, 0x06, 0x9D, 0xB0, 0x05, 0xC8, 0xC8,
0x98, 0x9D, 0xB8, 0x05, 0x88, 0xB1, 0xFA, 0x90, 0xFE, 0x90, 0x16, 0x90, 0x0C, 0x90, 0x22, 0x90,
0x18, 0x90, 0x2E, 0x90, 0x24, 0x90, 0x32, 0x90, 0x34, 0x7D, 0x80, 0x06, 0x9D, 0x80, 0x06, 0xB1,
0xFA, 0x18, 0x65, 0xFC, 0x85, 0xFC, 0x4C, 0xAC, 0x08, 0x7D, 0x88, 0x06, 0x9D, 0x88, 0x06, 0xB1,
0xFA, 0x18, 0x65, 0xFD, 0x85, 0xFD, 0x4C, 0xAC, 0x08, 0x7D, 0x90, 0x06, 0x9D, 0x90, 0x06, 0xB1,
0xFA, 0x18, 0x65, 0xFE, 0x85, 0xFE, 0x4C, 0xAC, 0x08, 0x85, 0xFC, 0xA9, 0x00, 0x85, 0xFD, 0x4C,
0xAC, 0x08, 0xBD, 0x20, 0x06, 0x29, 0x03, 0x4A, 0x90, 0x0A, 0xD0, 0x19, 0xBD, 0x18, 0x06, 0x18,
0x65, 0xFC, 0x85, 0xFC, 0xDE, 0x38, 0x06, 0x10, 0x4E, 0xFE, 0x20, 0x06, 0xBD, 0x30, 0x06, 0x9D,
0x38, 0x06, 0x4C, 0xF7, 0x0B, 0xA5, 0xFC, 0xFD, 0x18, 0x06, 0x85, 0xFC, 0xDE, 0x38, 0x06, 0x10,
0x36, 0xFE, 0x20, 0x06, 0xBD, 0x30, 0x06, 0x9D, 0x38, 0x06, 0x4C, 0xF7, 0x0B, 0xBC, 0x20, 0x06,
0xBD, 0x18, 0x06, 0x30, 0x02, 0xC8, 0xC8, 0x88, 0x98, 0x18, 0x65, 0xFC, 0x85, 0xFC, 0xDE, 0x38,
0x06, 0x10, 0x14, 0x98, 0x9D, 0x20, 0x06, 0xDD, 0x18, 0x06, 0xD0, 0x05, 0x49, 0xFF, 0x9D, 0x18,
0x06, 0xBD, 0x30, 0x06, 0x9D, 0x38, 0x06, 0x4C, 0xF7, 0x0B, 0xBC, 0x20, 0x06, 0xBD, 0x18, 0x06,
0x30, 0x02, 0xC8, 0xC8, 0x88, 0x98, 0x18, 0x65, 0xFD, 0x85, 0xFD, 0xDE, 0x38, 0x06, 0x10, 0xE7,
0x98, 0x9D, 0x20, 0x06, 0xDD, 0x18, 0x06, 0xD0, 0xD8, 0x49, 0xFF, 0x9D, 0x18, 0x06, 0xBD, 0x30,
0x06, 0x9D, 0x38, 0x06, 0x4C, 0xF7, 0x0B, 0xBD, 0x20, 0x06, 0x18, 0x65, 0xFC, 0x85, 0xFC, 0xDE,
0x38, 0x06, 0x10, 0xC3, 0xBD, 0x18, 0x06, 0x18, 0x7D, 0x20, 0x06, 0x9D, 0x20, 0x06, 0xBD, 0x30,
0x06, 0x9D, 0x38, 0x06, 0x4C, 0xF7, 0x0B, 0xA5, 0xFD, 0x38, 0xFD, 0x20, 0x06, 0x85, 0xFD, 0xDE,
0x38, 0x06, 0x10, 0xA3, 0xBD, 0x18, 0x06, 0x18, 0x7D, 0x20, 0x06, 0x9D, 0x20, 0x06, 0xBD, 0x30,
0x06, 0x9D, 0x38, 0x06, 0x4C, 0xF7, 0x0B, 0xBD, 0x18, 0x06, 0x18, 0x65, 0xFC, 0x85, 0xFC, 0x4C,
0xF7, 0x0B, 0xA0, 0x10, 0xA9, 0x00, 0x85, 0xFA, 0xA9, 0x00, 0x85, 0xFB, 0xA9, 0x00, 0x8D, 0x17,
0x05, 0x8A, 0xF0, 0x3F, 0xB1, 0xFA, 0xF0, 0x02, 0x10, 0x01, 0xCA, 0xA9, 0x11, 0x18, 0x65, 0xFA,
0x85, 0xFA, 0x90, 0x02, 0xE6, 0xFB, 0xEE, 0x17, 0x05, 0xD0, 0xE6, 0xA2, 0x00, 0xA9, 0x00, 0x85,
0xFC, 0x8A, 0x8D, 0x17, 0x05, 0x0A, 0x26, 0xFC, 0x0A, 0x26, 0xFC, 0x0A, 0x26, 0xFC, 0x0A, 0x26,
0xFC, 0x6D, 0x17, 0x05, 0x90, 0x02, 0xE6, 0xFC, 0x18, 0x69, 0x00, 0x85, 0xFA, 0xA5, 0xFC, 0x69,
0x00, 0x85, 0xFB, 0x20, 0x2C, 0x0F, 0xA5, 0xFA, 0x8D, 0x19, 0x05, 0xA5, 0xFB, 0x8D, 0x1A, 0x05,
0xA2, 0x07, 0xA9, 0xFF, 0x9D, 0xD0, 0x05, 0xA9, 0xF0, 0x9D, 0xD8, 0x05, 0x9D, 0xE0, 0x05, 0xCA,
0x10, 0xF0, 0xA9, 0x03, 0x8D, 0x0F, 0xD2, 0x8D, 0x1F, 0xD2, 0x8D, 0x2F, 0xD2, 0x8D, 0x3F, 0xD2,
0xCE, 0x17, 0x05, 0xE8, 0x8E, 0x1C, 0x05, 0xE8, 0x8E, 0x1D, 0x05, 0x8E, 0x16, 0x05, 0x60, 0x8A,
0x29, 0x0F, 0x8D, 0x1B, 0x05, 0x60, 0x8E, 0x16, 0x05, 0x60, 0xC9, 0x10, 0xB0, 0x03, 0x4C, 0x4C,
0x0D, 0xC9, 0x20, 0x90, 0x88, 0xC9, 0x30, 0xB0, 0x03, 0x4C, 0x85, 0x0F, 0xC9, 0x40, 0x90, 0xDF,
0xC9, 0x50, 0xB0, 0x03, 0x4C, 0x2C, 0x0F, 0xC9, 0x60, 0x90, 0xDB, 0xC9, 0x70, 0x90, 0x03, 0x4C,
0xB4, 0x0E, 0x84, 0xFD, 0x29, 0x0F, 0x0A, 0x8D, 0x17, 0x0E, 0xA5, 0xFD, 0x90, 0xFE, 0x90, 0x1E,
0x90, 0x38, 0x90, 0x59, 0x90, 0x60, 0x90, 0x1A, 0x90, 0x1C, 0x90, 0x1E, 0x90, 0x20, 0x90, 0x22,
0x90, 0x24, 0x90, 0x0D, 0x90, 0x0B, 0x90, 0x09, 0x90, 0x07, 0x90, 0x05, 0x90, 0x03, 0x8D, 0x18,
0x05, 0x60, 0x9D, 0x68, 0x06, 0x60, 0x9D, 0x70, 0x06, 0x60, 0x9D, 0x78, 0x06, 0x60, 0x9D, 0x90,
0x06, 0x60, 0x9D, 0x80, 0x06, 0x60, 0x9D, 0x88, 0x06, 0x60, 0x29, 0x70, 0x4A, 0x4A, 0x9D, 0x10,
0x06, 0x29, 0x30, 0xD0, 0x03, 0x9D, 0x20, 0x06, 0xA5, 0xFD, 0x30, 0x06, 0x29, 0x0F, 0x9D, 0x18,
0x06, 0x60, 0x29, 0x0F, 0x49, 0xFF, 0x18, 0x69, 0x01, 0x9D, 0x18, 0x06, 0x60, 0x29, 0x3F, 0x9D,
0x30, 0x06, 0x9D, 0x38, 0x06, 0x60, 0x29, 0x80, 0x0A, 0x2A, 0x9D, 0x60, 0x06, 0xA5, 0xFD, 0x29,
0x70, 0x4A, 0x4A, 0x4A, 0x4A, 0x9D, 0x40, 0x06, 0xD0, 0x03, 0x9D, 0x60, 0x06, 0xA5, 0xFD, 0x29,
0x0F, 0x9D, 0x50, 0x06, 0x9D, 0x58, 0x06, 0xBD, 0x48, 0x06, 0xDD, 0x40, 0x06, 0x90, 0x8F, 0xBD,
0x40, 0x06, 0xF0, 0x02, 0xE9, 0x01, 0x9D, 0x48, 0x06, 0x60, 0x84, 0xFA, 0x86, 0xFB, 0xA0, 0x19,
0xB1, 0xFA, 0xC8, 0x8D, 0x09, 0x05, 0xB1, 0xFA, 0xC8, 0x8D, 0x0A, 0x05, 0xB1, 0xFA, 0xC8, 0x8D,
0x0B, 0x05, 0xB1, 0xFA, 0xC8, 0x8D, 0x0C, 0x05, 0xB1, 0xFA, 0xC8, 0x8D, 0x0D, 0x05, 0xB1, 0xFA,
0x8D, 0x1B, 0x05, 0xA5, 0xFA, 0x49, 0x80, 0x30, 0x01, 0xE8, 0x8D, 0xAC, 0x0F, 0x8E, 0xAD, 0x0F,
0x49, 0x80, 0x30, 0x01, 0xE8, 0x8D, 0x1D, 0x07, 0x8E, 0x1E, 0x07, 0xE8, 0x8D, 0x23, 0x07, 0x8E,
0x24, 0x07, 0xE8, 0x8D, 0xA2, 0x0F, 0x8E, 0xA3, 0x0F, 0x49, 0x80, 0x30, 0x01, 0xE8, 0x8D, 0x19,
0x05, 0x8D, 0xD7, 0x06, 0x8D, 0x4F, 0x0D, 0x8D, 0x94, 0x0D, 0x8E, 0x1A, 0x05, 0x8E, 0xDD, 0x06,
0x8E, 0x53, 0x0D, 0x8E, 0x9A, 0x0D, 0xA9, 0xF0, 0x85, 0xFF, 0xA9, 0x00, 0x8D, 0x16, 0x05, 0x8D,
0x18, 0x05, 0xA2, 0x07, 0xA9, 0x00, 0x8D, 0x16, 0x05, 0x9D, 0x78, 0x05, 0x9D, 0xB0, 0x05, 0x9D,
0x20, 0x05, 0x9D, 0x28, 0x05, 0x9D, 0x30, 0x05, 0x9D, 0x30, 0xD2, 0x9D, 0x20, 0xD2, 0x9D, 0x10,
0xD2, 0x9D, 0x00, 0xD2, 0xCA, 0x10, 0xE2, 0x8D, 0x18, 0xD2, 0x8D, 0x08, 0xD2, 0x8D, 0x38, 0xD2,
0x8D, 0x28, 0xD2, 0x8D, 0x1E, 0x05, 0x8D, 0x1F, 0x05, 0x60, 0x9D, 0x20, 0x05, 0x9D, 0x28, 0x05,
0x9D, 0x30, 0x05, 0x9D, 0xB0, 0x05, 0x60, 0x98, 0x9D, 0xD0, 0x05, 0x29, 0xF0, 0x9D, 0xD8, 0x05,
0xBD, 0xD0, 0x05, 0x0A, 0x0A, 0x0A, 0x0A, 0x9D, 0xE0, 0x05, 0x60, 0x29, 0x07, 0x85, 0xFA, 0x8A,
0xA6, 0xFA, 0x29, 0x3F, 0xF0, 0xE1, 0x9D, 0x98, 0x05, 0x98, 0x30, 0xEE, 0xBD, 0xD0, 0x05, 0x20,
0x75, 0x0F, 0xA9, 0x00, 0x9D, 0x78, 0x05, 0xB9, 0xFF, 0xFF, 0xF0, 0xBE, 0x9D, 0x88, 0x05, 0x85,
0xFB, 0xB9, 0xFF, 0xFF, 0x9D, 0x80, 0x05, 0x85, 0xFA, 0x98, 0x9D, 0x90, 0x05, 0xA0, 0x08, 0xB1,
0xFA, 0xC8, 0x9D, 0xC0, 0x05, 0xB1, 0xFA, 0xC8, 0x9D, 0xC8, 0x05, 0xB1, 0xFA, 0xC8, 0x9D, 0x68,
0x06, 0xB1, 0xFA, 0xC8, 0x9D, 0x70, 0x06, 0xB1, 0xFA, 0xC8, 0x9D, 0x78, 0x06, 0xB1, 0xFA, 0xC8,
0x9D, 0xE8, 0x05, 0x9D, 0xF8, 0x05, 0xB1, 0xFA, 0xC8, 0x9D, 0xF0, 0x05, 0x9D, 0x00, 0x06, 0xB1,
0xFA, 0x29, 0x70, 0x4A, 0x4A, 0x9D, 0x10, 0x06, 0xB1, 0xFA, 0xC8, 0x30, 0x08, 0x29, 0x0F, 0x9D,
0x18, 0x06, 0x4C, 0x09, 0x10, 0x29, 0x0F, 0x49, 0xFF, 0x18, 0x69, 0x01, 0x9D, 0x18, 0x06, 0xB1,
0xFA, 0xC8, 0x9D, 0x28, 0x06, 0xB1, 0xFA, 0xC8, 0x29, 0x3F, 0x9D, 0x30, 0x06, 0x9D, 0x38, 0x06,
0xB1, 0xFA, 0x29, 0x80, 0x0A, 0x2A, 0x9D, 0x60, 0x06, 0xB1, 0xFA, 0x29, 0x70, 0x4A, 0x4A, 0x4A,
0x4A, 0x9D, 0x40, 0x06, 0xD0, 0x03, 0x9D, 0x60, 0x06, 0xB1, 0xFA, 0x88, 0x29, 0x0F, 0x9D, 0x50,
0x06, 0x9D, 0x58, 0x06, 0xB1, 0xFA, 0x29, 0xC0, 0x1D, 0x98, 0x05, 0x9D, 0x98, 0x05, 0xA8, 0xB9,
0x00, 0x03, 0x9D, 0x38, 0x05, 0xA9, 0x00, 0x9D, 0xB8, 0x05, 0x9D, 0x20, 0x06, 0x9D, 0x08, 0x06,
0x9D, 0x48, 0x06, 0x9D, 0x80, 0x06, 0x9D, 0x88, 0x06, 0x9D, 0x90, 0x06, 0xA9, 0x01, 0x9D, 0x78,
0x05, 0x60
};