ElfLinker started. Dos/com & dos/sys formats converted

This commit is contained in:
László Molnár 2006-06-28 14:45:58 +02:00
parent 58e885c052
commit 6d8afec510
13 changed files with 2182 additions and 388 deletions

View File

@ -346,6 +346,290 @@ unsigned char *SimpleLinker::getLoader(int *llen)
}
void ElfLinker::preprocessSections(char *start, const char *end)
{
nsections = 0;
while (start < end)
{
char name[1024];
unsigned offset, size;
char *nextl = strchr(start, '\n');
assert(nextl != NULL);
if (sscanf(start, "%*d %1023s %x %*d %*d %x",
name, &size, &offset) == 3)
{
char *n = strstr(start, name);
n[strlen(name)] = 0;
addSection(n, input + offset, size);
printf("section %s preprocessed\n", n);
}
start = nextl + 1;
}
addSection("*ABS*", NULL, 0);
addSection("*UND*", NULL, 0);
}
void ElfLinker::preprocessSymbols(char *start, const char *end)
{
nsymbols = 0;
while (start < end)
{
char section[1024];
char symbol[1024];
unsigned offset;
char *nextl = strchr(start, '\n');
assert(nextl != NULL);
if (sscanf(start, "%x%*8c %1024s %*x %1023s",
&offset, section, symbol) == 3)
{
char *s = strstr(start, symbol);
s[strlen(symbol)] = 0;
assert(nsymbols < TABLESIZE(symbols));
symbols[nsymbols++] = Symbol(s, findSection(section), offset);
printf("symbol %s preprocessed\n", s);
}
start = nextl + 1;
}
}
void ElfLinker::preprocessRelocations(char *start, const char *end)
{
char sect[1024];
Section *section = NULL;
nrelocations = 0;
while (start < end)
{
if (sscanf(start, "RELOCATION RECORDS FOR [%[^]]", sect) == 1)
section = findSection(sect);
unsigned offset;
char type[100];
char symbol[1024];
char *nextl = strchr(start, '\n');
assert(nextl != NULL);
if (sscanf(start, "%x %99s %1023s",
&offset, type, symbol) == 3)
{
char *t = strstr(start, type);
t[strlen(type)] = 0;
assert(nrelocations < TABLESIZE(relocations));
relocations[nrelocations++] = Relocation(section, offset, t,
findSymbol(symbol));
printf("relocation %s %x preprocessed\n", section->name, offset);
}
start = nextl + 1;
}
}
ElfLinker::Section *ElfLinker::findSection(const char *name)
{
for (unsigned ic = 0; ic < nsections; ic++)
if (strcmp(sections[ic].name, name) == 0)
return sections + ic;
printf("unknown section %s\n", name);
abort();
return NULL;
}
ElfLinker::Symbol *ElfLinker::findSymbol(const char *name)
{
for (unsigned ic = 0; ic < nsymbols; ic++)
if (strcmp(symbols[ic].name, name) == 0)
return symbols + ic;
printf("unknown symbol %s\n", name);
abort();
return NULL;
}
ElfLinker::ElfLinker() : input(NULL), output(NULL)
{}
ElfLinker::~ElfLinker()
{
delete [] input;
delete [] output;
}
void ElfLinker::init(const void *pdata, int plen, int)
{
unsigned char *i = new unsigned char[plen];
memcpy(i, pdata, plen);
input = i;
inputlen = plen;
output = new unsigned char[plen];
outputlen = 0;
int pos = find(input, plen, "Sections:", 9);
assert(pos != -1);
char *psections = pos + (char *) input;
char *psymbols = strstr(psections, "SYMBOL TABLE:");
assert(psymbols != NULL);
char *prelocs = strstr(psymbols, "RELOCATION RECORDS FOR");
assert(prelocs != NULL);
preprocessSections(psections, psymbols);
preprocessSymbols(psymbols, prelocs);
preprocessRelocations(prelocs, (char*) input + inputlen);
}
void ElfLinker::setLoaderAlignOffset(int phase)
{
assert(phase & 0);
}
int ElfLinker::addSection(const char *sname)
{
assert(!frozen);
if (sname[0] == 0)
return outputlen;
char *begin = strdup(sname);
char *end = begin + strlen(begin);
for (char *sect = begin; sect < end; )
{
for (char *tokend = sect; *tokend; tokend++)
if (*tokend == ' ' || *tokend == ',')
{
*tokend = 0;
break;
}
if (*sect == '+') // alignment
printf("alignment skipped %s\n", sect);
else
{
Section *section = findSection(sect);
memcpy(output + outputlen, section->input, section->size);
section->output = output + outputlen;
outputlen += section->size;
printf("section added: %s\n", sect);
}
sect += strlen(sect) + 1;
}
free(begin);
return outputlen;
}
void ElfLinker::addSection(const char *sname, const void *sdata, int slen)
{
assert(nsections < TABLESIZE(sections));
sections[nsections++] = Section(sname, sdata, slen);
}
void ElfLinker::freeze()
{
if (frozen)
return;
addSection("*UND*");
findSection("*UND*")->output = output;
frozen = true;
}
int ElfLinker::getSection(const char *sname, int *slen)
{
assert(frozen);
Section *section = findSection(sname);
if (slen)
*slen = section->size;
return section->output - output;
}
unsigned char *ElfLinker::getLoader(int *llen)
{
assert(frozen);
if (llen)
*llen = outputlen;
return output;
}
void ElfLinker::relocate()
{
for (unsigned ic = 0; ic < nrelocations; ic++)
{
Relocation *rel = relocations + ic;
if (rel->section->output == NULL)
continue;
if (rel->value->section->output == NULL)
{
printf("can not apply reloc '%s:%x' without section '%s'\n",
rel->section->name, rel->offset,
rel->value->section->name);
//abort();
continue;
}
if (strcmp(rel->value->section->name, "*UND*") == 0 &&
rel->value->offset == 0)
{
printf("undefined symbol '%s' referenced\n", rel->value->name);
abort();
}
unsigned value = rel->value->section->output + rel->value->offset
- output;
unsigned char *location = rel->section->output + rel->offset;
if (strcmp(rel->type, "R_386_PC8") == 0)
{
value -= location - output;
*location += value;
}
else if (strcmp(rel->type, "R_386_PC16") == 0)
{
value -= location - output;
set_le16(location, get_le16(location) + value);
}
else if (strcmp(rel->type, "R_386_32") == 0)
{
set_le32(location, get_le32(location) + value);
}
else if (strcmp(rel->type, "R_386_16") == 0)
{
set_le16(location, get_le16(location) + value);
}
else if (strcmp(rel->type, "R_386_8") == 0)
{
*location += value;
}
else
{
printf("unknown relocation type '%s\n", rel->type);
abort();
}
}
}
void ElfLinker::defineSymbol(const char *name, unsigned value)
{
Symbol *symbol = findSymbol(name);
if (strcmp(symbol->section->name, "*UND*") == 0)
symbol->offset = value;
else
printf("symbol '%s' already defined\n", name);
}
/*
vi:ts=4:et
*/

View File

@ -54,6 +54,9 @@ public:
virtual int getSection(const char *sname, int *slen=NULL) = 0;
virtual unsigned char *getLoader(int *llen=NULL) = 0;
virtual void defineSymbol(const char *, unsigned) {}
virtual void relocate() {}
protected:
bool frozen;
@ -146,6 +149,88 @@ typedef TSimpleLinker<NBELE::BEPolicy> SimpleBELinker;
typedef TSimpleLinker<NBELE::LEPolicy> SimpleLELinker;
class ElfLinker : public Linker
{
typedef Linker super;
struct Section
{
const char *name;
const void *input;
unsigned char *output;
unsigned size;
Section(){}
Section(const char *n, const void *i, unsigned s) :
name(n), input(i), output(NULL), size(s)
{}
};
struct Symbol
{
const char *name;
Section *section;
unsigned offset;
Symbol(){}
Symbol(const char *n, Section *s, unsigned o) :
name(n), section(s), offset(o)
{}
};
struct Relocation
{
Section *section;
unsigned offset;
const char *type;
Symbol *value;
Relocation(){}
Relocation(Section *s, unsigned o, const char *t, Symbol *v) :
section(s), offset(o), type(t), value(v)
{}
};
unsigned char *input;
int inputlen;
unsigned char *output;
int outputlen;
Section sections[550];
Symbol symbols[100];
Relocation relocations[2000];
unsigned nsections;
unsigned nsymbols;
unsigned nrelocations;
void preprocessSections(char *start, const char *end);
void preprocessSymbols(char *start, const char *end);
void preprocessRelocations(char *start, const char *end);
Section *findSection(const char *name);
Symbol *findSymbol(const char *name);
public:
ElfLinker();
protected:
virtual ~ElfLinker();
virtual void init(const void *pdata, int plen, int);
virtual void setLoaderAlignOffset(int phase);
virtual int addSection(const char *sname);
virtual void addSection(const char *sname, const void *sdata, int slen);
virtual void freeze();
virtual int getSection(const char *sname, int *slen=NULL);
virtual unsigned char *getLoader(int *llen=NULL);
virtual void relocate();
virtual void defineSymbol(const char *name, unsigned value);
virtual unsigned get32(const void *) const { return 0; }
virtual void set32(void *, unsigned) const {}
};
#endif /* already included */

View File

@ -31,6 +31,7 @@
#include "filter.h"
#include "packer.h"
#include "p_com.h"
#include "linker.h"
static const
#include "stub/i086-dos16.com.h"
@ -98,7 +99,6 @@ void PackCom::patchLoader(OutputFile *fo,
upx_byte *loader, int lsize,
unsigned calls)
{
const int filter_id = ph.filter;
const int e_len = getLoaderSectionStart("COMCUTPO");
const int d_len = lsize - e_len;
assert(e_len > 0 && e_len < 256);
@ -111,22 +111,21 @@ void PackCom::patchLoader(OutputFile *fo,
if (upper_end + stacksize > 0xfffe)
throwCantPack("file is too big for dos/com");
if (filter_id)
{
assert(calls > 0);
patch_le16(loader,lsize,"CT",calls);
}
linker->defineSymbol("calltrick_calls", calls);
linker->defineSymbol("sp_limit", upper_end + stacksize);
linker->defineSymbol("bytes_to_copy", ph.c_len + lsize);
linker->defineSymbol("copy_source", ph.c_len + lsize + 0x100);
linker->defineSymbol("copy_destination", upper_end);
// FIXME: Depends on: decompr_start == cutpoint+1 !!!
linker->defineSymbol("decompressor", upper_end - 0xff -
d_len - getLoaderSection("UPX1HEAD"));
linker->relocate();
loader = getLoader();
// some day we could use the relocation stuff for patchPackHeader too
patchPackHeader(loader,e_len);
// NOTE: Depends on: decompr_start == cutpoint+1 !!!
patch_le16(loader,e_len,"JM",upper_end - 0xff - d_len - getLoaderSection("UPX1HEAD"));
loader[getLoaderSectionStart("COMSUBSI") - 1] = (upx_byte) -e_len;
patch_le16(loader,e_len,"DI",upper_end);
patch_le16(loader,e_len,"SI",ph.c_len + lsize + 0x100);
patch_le16(loader,e_len,"CX",ph.c_len + lsize);
patch_le16(loader,e_len,"SP",upper_end + stacksize);
// write loader + compressed file
fo->write(loader,e_len); // entry
fo->write(obuf,ph.c_len);
@ -142,7 +141,7 @@ void PackCom::patchLoader(OutputFile *fo,
int PackCom::buildLoader(const Filter *ft)
{
initLoader(nrv2b_loader,sizeof(nrv2b_loader));
addLoader("COMMAIN1,COMSUBSI",
addLoader("COMMAIN1",
ph.first_offset_found == 1 ? "COMSBBBP" : "",
"COMPSHDI",
ft->id ? "COMCALLT" : "",
@ -271,6 +270,12 @@ void PackCom::unpack(OutputFile *fo)
}
Linker* PackCom::newLinker() const
{
return new ElfLinker();
}
/*
vi:ts=4:et
*/

View File

@ -53,6 +53,7 @@ public:
protected:
virtual unsigned getCallTrickOffset() const { return 0x100; }
virtual Linker* newLinker() const;
protected:
virtual int buildLoader(const Filter *ft);

View File

@ -32,6 +32,7 @@
#include "packer.h"
#include "p_com.h"
#include "p_sys.h"
#include "linker.h"
static const
#include "stub/i086-dos16.sys.h"
@ -67,7 +68,6 @@ void PackSys::patchLoader(OutputFile *fo,
upx_byte *loader, int lsize,
unsigned calls)
{
const int filter_id = ph.filter;
const int e_len = getLoaderSectionStart("SYSCUTPO");
const int d_len = lsize - e_len;
assert(e_len > 0 && e_len < 256);
@ -76,25 +76,23 @@ void PackSys::patchLoader(OutputFile *fo,
if (ph.u_len + d_len + ph.overlap_overhead > 0xfffe)
throwNotCompressible();
memcpy(loader,ibuf,6); // copy from orig. header
memcpy(loader+8,ibuf+8,2); // opendos wants this word too
// use some fields of the original file
linker->defineSymbol("next", get_le32(ibuf));
linker->defineSymbol("attribute", get_le16(ibuf + 4));
linker->defineSymbol("interrupt", get_le16(ibuf + 8));
unsigned copy_to = ph.u_len + d_len + ph.overlap_overhead;
patch_le16(loader,lsize,"JO",get_le16(ibuf+6)-copy_to-1);
if (filter_id)
{
assert(calls > 0);
patch_le16(loader,lsize,"CT",calls);
}
linker->defineSymbol("sys_entry", get_le16(ibuf + 6) - copy_to - 1);
linker->defineSymbol("calltrick_calls", calls);
linker->defineSymbol("copy_source", ph.c_len + lsize -1);
linker->defineSymbol("copy_destination", copy_to);
linker->defineSymbol("decompressor", ph.u_len + ph.overlap_overhead + 2);
linker->relocate();
loader = getLoader();
patchPackHeader(loader,e_len);
const unsigned jmp_pos = find_le16(loader,e_len,get_le16("JM"));
patch_le16(loader,e_len,"JM",ph.u_len+ph.overlap_overhead+2-jmp_pos-2);
loader[getLoaderSectionStart("SYSSUBSI") - 1] = (upx_byte) -e_len;
patch_le16(loader,e_len,"DI",copy_to);
patch_le16(loader,e_len,"SI",ph.c_len+e_len+d_len-1);
// write loader + compressed file
fo->write(loader,e_len); // entry
fo->write(obuf,ph.c_len);
@ -107,7 +105,7 @@ int PackSys::buildLoader(const Filter *ft)
initLoader(nrv2b_loader,sizeof(nrv2b_loader));
addLoader("SYSMAIN1",
opt->cpu == opt->CPU_8086 ? "SYSI0861" : "SYSI2861",
"SYSMAIN2,SYSSUBSI",
"SYSMAIN2",
ph.first_offset_found == 1 ? "SYSSBBBP" : "",
ft->id ? "SYSCALLT" : "",
"SYSMAIN3,UPX1HEAD,SYSCUTPO,NRV2B160,NRVDDONE,NRVDECO1",

View File

@ -251,9 +251,8 @@ arm.v4t-wince.pe.h : $(srcdir)/src/$$T.S
i086-dos16.com% : tc_list = i086 default
i086-dos16.com.h : $(srcdir)/src/$$T.asm
$(call tc,pp-nasm) --MMD=$@ $< -o tmp/$T.tmp1
$(call tc,app-nasm) tmp/$T.tmp1 tmp/$T.tmp2
$(call tc,nasm) -f bin -l tmp/$T.bin.lst tmp/$T.tmp2 -o tmp/$T.bin
gcc -c -x assembler-with-cpp $< -o tmp/$T.bin
objdump -trwh tmp/$T.bin >> tmp/$T.bin
$(call tc,bin2h) --ident=nrv2b_loader tmp/$T.bin $@
@ -277,9 +276,8 @@ i086-dos16.exe.h : $(srcdir)/src/$$T.asm
i086-dos16.sys% : tc_list = i086 default
i086-dos16.sys.h : $(srcdir)/src/$$T.asm
$(call tc,pp-nasm) --MMD=$@ $< -o tmp/$T.tmp1
$(call tc,app-nasm) tmp/$T.tmp1 tmp/$T.tmp2
$(call tc,nasm) -f bin -l tmp/$T.bin.lst tmp/$T.tmp2 -o tmp/$T.bin
gcc -c -x assembler-with-cpp $< -o tmp/$T.bin
objdump -trwh tmp/$T.bin >> tmp/$T.bin
$(call tc,bin2h) --ident=nrv2b_loader tmp/$T.bin $@

View File

@ -1,4 +1,4 @@
/* i086-dos16.com.h -- created from i086-dos16.com.bin, 906 (0x38a) bytes
/* i086-dos16.com.h -- created from i086-dos16.com.bin, 11210 (0x2bca) bytes
This file is part of the UPX executable compressor.
@ -27,66 +27,710 @@
*/
#define NRV2B_LOADER_SIZE 906
#define NRV2B_LOADER_ADLER32 0x1e09d469
#define NRV2B_LOADER_CRC32 0x7de34e70
#define NRV2B_LOADER_SIZE 11210
#define NRV2B_LOADER_ADLER32 0x9d478123
#define NRV2B_LOADER_CRC32 0xe55ca2e3
unsigned char nrv2b_loader[906] = {
129,252, 83, 80,119, 2,205, 32,185, 67, 88,190, 83, 73,191, 68, /* 0x 0 */
73,187, 0,128,253,243,164,252,135,247,131,238,198, 25,237, 87, /* 0x 10 */
87,233, 74, 77, 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, /* 0x 20 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 45,164,232, 0, 0,114,250, /* 0x 30 */
65,232, 0, 0,227, 0,227, 0,115, 0,131,233, 3,114, 6,136, /* 0x 40 */
204,172,247,208,149, 49,201,232, 0, 0, 17,201,117, 8, 65,232, /* 0x 50 */
0, 0,115,251, 65, 65, 65,129,253, 0,243,131,209, 1,141, 3, /* 0x 60 */
150,243,164,150,235, 0,232, 2, 0, 17,201, 1,219,117, 4,173, /* 0x 70 */
17,192,147,195, 94,185, 67, 84,172, 44,232, 60, 1,119,249,193, /* 0x 80 */
4, 8, 41, 52,139, 28,134,223, 41,243,137, 28,173,226, 0,176, /* 0x 90 */
232,176,233, 95,185, 67, 84,242,174,117, 0,117, 0,193, 5, 8, /* 0x a0 */
41, 61,139, 29,134,223, 41,251,137, 29,175,235, 0,195, 0, 0, /* 0x b0 */
67, 79, 77, 77, 65, 73, 78, 49, 0, 0, 0, 0, 0, 67, 79, 77, /* 0x c0 */
83, 85, 66, 83, 73, 0, 29, 0, 0, 0, 67, 79, 77, 83, 66, 66, /* 0x d0 */
66, 80, 0, 29, 0, 0, 0, 67, 79, 77, 80, 83, 72, 68, 73, 0, /* 0x e0 */
31, 0, 0, 0, 67, 79, 77, 67, 65, 76, 76, 84, 0, 32, 0, 0, /* 0x f0 */
0, 67, 79, 77, 77, 65, 73, 78, 50, 0, 33, 0, 0, 0, 85, 80, /* 0x 100 */
88, 49, 72, 69, 65, 68, 0, 36, 0, 0, 0, 67, 79, 77, 67, 85, /* 0x 110 */
84, 80, 79, 0, 58, 0, 0, 0, 78, 82, 86, 50, 66, 49, 54, 48, /* 0x 120 */
0, 58, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 78, 82, 86, /* 0x 130 */
68, 69, 67, 79, 50, 0, 13, 0, 0, 0, 0, 0, 0, 0, 68, 0, /* 0x 140 */
0, 0, 78, 82, 86, 68, 69, 67, 79, 50, 0, 8, 0, 0, 0, 78, /* 0x 150 */
82, 86, 68, 68, 79, 78, 69, 0, 68, 0, 0, 0, 0, 0, 0, 0, /* 0x 160 */
70, 0, 0, 0, 78, 82, 86, 68, 69, 67, 79, 50, 0, 22, 0, 0, /* 0x 170 */
0, 78, 82, 86, 68, 82, 69, 84, 85, 0, 70, 0, 0, 0, 0, 0, /* 0x 180 */
0, 0, 72, 0, 0, 0, 78, 82, 86, 68, 69, 67, 79, 50, 0, 21, /* 0x 190 */
0, 0, 0, 78, 82, 86, 68, 69, 67, 79, 49, 0, 72, 0, 0, 0, /* 0x 1a0 */
0, 0, 0, 0, 74, 0, 0, 0, 78, 82, 86, 50, 66, 49, 54, 48, /* 0x 1b0 */
0, 7, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 78, 82, 86, /* 0x 1c0 */
68, 69, 67, 79, 50, 0, 8, 0, 0, 0, 0, 0, 0, 0, 98, 0, /* 0x 1d0 */
0, 0, 78, 82, 86, 68, 69, 67, 79, 50, 0, 8, 0, 0, 0, 78, /* 0x 1e0 */
82, 86, 76, 69, 68, 48, 48, 0,102, 0, 0, 0, 78, 82, 86, 71, /* 0x 1f0 */
84, 68, 48, 48, 0,103, 0, 0, 0, 78, 82, 86, 68, 69, 67, 79, /* 0x 200 */
50, 0,110, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 78, 82, /* 0x 210 */
86, 50, 66, 49, 54, 48, 0, 1, 0, 0, 0, 78, 82, 86, 50, 66, /* 0x 220 */
49, 54, 57, 0,132, 0, 0, 0, 67, 65, 76, 76, 84, 82, 49, 54, /* 0x 230 */
0,132, 0, 0, 0, 67, 84, 49, 54, 73, 50, 56, 54, 0,143, 0, /* 0x 240 */
0, 0, 67, 84, 49, 54, 83, 85, 66, 48, 0,146, 0, 0, 0, 67, /* 0x 250 */
84, 49, 54, 73, 48, 56, 54, 0,148, 0, 0, 0, 67, 65, 76, 76, /* 0x 260 */
84, 82, 73, 50, 0,156, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, /* 0x 270 */
0, 67, 65, 76, 76, 84, 82, 49, 54, 0, 4, 0, 0, 0, 67, 84, /* 0x 280 */
49, 54, 68, 85, 77, 49, 0,159, 0, 0, 0, 67, 84, 49, 54, 69, /* 0x 290 */
56, 48, 48, 0,159, 0, 0, 0, 67, 84, 49, 54, 69, 57, 48, 48, /* 0x 2a0 */
0,161, 0, 0, 0, 67, 65, 76, 76, 84, 82, 73, 53, 0,163, 0, /* 0x 2b0 */
0, 0, 67, 84, 49, 54, 74, 69, 78, 68, 0,169, 0, 0, 0, 0, /* 0x 2c0 */
0, 0, 0,171, 0, 0, 0, 78, 82, 86, 68, 69, 67, 79, 50, 0, /* 0x 2d0 */
21, 0, 0, 0, 67, 84, 49, 54, 74, 85, 76, 50, 0,171, 0, 0, /* 0x 2e0 */
0, 0, 0, 0, 0,173, 0, 0, 0, 67, 65, 76, 76, 84, 82, 73, /* 0x 2f0 */
54, 0, 3, 0, 0, 0, 67, 84, 49, 54, 68, 85, 77, 50, 0,173, /* 0x 300 */
0, 0, 0, 67, 84, 49, 54, 73, 50, 56, 55, 0,173, 0, 0, 0, /* 0x 310 */
67, 84, 49, 54, 83, 85, 66, 49, 0,176, 0, 0, 0, 67, 84, 49, /* 0x 320 */
54, 73, 48, 56, 55, 0,178, 0, 0, 0, 67, 65, 76, 76, 84, 82, /* 0x 330 */
73, 54, 0,186, 0, 0, 0, 0, 0, 0, 0,189, 0, 0, 0, 67, /* 0x 340 */
65, 76, 76, 84, 82, 73, 53, 0, 4, 0, 0, 0, 67, 84, 49, 54, /* 0x 350 */
68, 85, 77, 77, 51, 0,189, 0, 0, 0, 67, 79, 82, 69, 84, 85, /* 0x 360 */
82, 78, 0,189, 0, 0, 0, 67, 79, 77, 84, 72, 69, 78, 68, 0, /* 0x 370 */
190, 0, 0, 0,255,255,255,255,190, 0 /* 0x 380 */
unsigned char nrv2b_loader[11210] = {
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */
124, 2, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */
51, 0, 48, 0,129,252, 0, 0,119, 2,205, 32,185, 0, 0,190, /* 0x 30 */
0, 0,191, 0, 0,187, 0,128,253,243,164,252,135,254,131,198, /* 0x 40 */
0, 25,237, 87, 87,233, 0, 0, 85, 80, 88, 33,161,216,208,213, /* 0x 50 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,164,232, /* 0x 60 */
11, 0,114,250, 65,232, 6, 0,227, 21,227, 20,115, 6,131,233, /* 0x 70 */
3,114, 6,136,204,172,247,208,149, 49,201,232, 6, 0, 17,201, /* 0x 80 */
117, 8, 65,232, 6, 0,115,251, 65, 65, 65,129,253, 0,243,131, /* 0x 90 */
209, 1,141, 3,150,243,164,150,235, 0,232, 2, 0, 17,201, 1, /* 0x a0 */
219,117, 4,173, 17,192,147,195, 94,185, 0, 0,172, 44,232, 60, /* 0x b0 */
1,119,249,193, 5, 8, 41, 52,139, 28,134,251, 41,243,137, 28, /* 0x c0 */
173,226, 3,176,232,176,233, 95,185, 0, 0,242,174,117, 20,117, /* 0x d0 */
2,193, 5, 8, 41, 61,139, 29,134,251, 41,251,137, 29,175,235, /* 0x e0 */
3,195, 6, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,105, 56, /* 0x f0 */
48, 56, 54, 0, 0, 0, 0, 46,115,121,109,116, 97, 98, 0, 46, /* 0x 100 */
115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, /* 0x 110 */
0, 46,116,101,120,116, 0, 46,100, 97,116, 97, 0, 46, 98,115, /* 0x 120 */
115, 0, 46,114,101,108, 67, 79, 77, 77, 65, 73, 78, 49, 0, 67, /* 0x 130 */
79, 77, 83, 66, 66, 66, 80, 0, 67, 79, 77, 80, 83, 72, 68, 73, /* 0x 140 */
0, 67, 79, 77, 67, 65, 76, 76, 84, 0, 46,114,101,108, 67, 79, /* 0x 150 */
77, 77, 65, 73, 78, 50, 0, 85, 80, 88, 49, 72, 69, 65, 68, 0, /* 0x 160 */
67, 79, 77, 67, 85, 84, 80, 79, 0, 46,114,101,108, 78, 82, 86, /* 0x 170 */
50, 66, 49, 54, 48, 0, 46,114,101,108, 78, 82, 86, 68, 68, 79, /* 0x 180 */
78, 69, 0, 46,114,101,108, 78, 82, 86, 68, 82, 69, 84, 85, 0, /* 0x 190 */
46,114,101,108, 78, 82, 86, 68, 69, 67, 79, 49, 0, 78, 82, 86, /* 0x 1a0 */
76, 69, 68, 48, 48, 0, 78, 82, 86, 71, 84, 68, 48, 48, 0, 46, /* 0x 1b0 */
114,101,108, 78, 82, 86, 68, 69, 67, 79, 50, 0, 78, 82, 86, 50, /* 0x 1c0 */
66, 49, 54, 57, 0, 46,114,101,108, 67, 65, 76, 76, 84, 82, 49, /* 0x 1d0 */
54, 0, 67, 84, 49, 54, 73, 50, 56, 54, 0, 67, 84, 49, 54, 83, /* 0x 1e0 */
85, 66, 48, 0, 67, 84, 49, 54, 73, 48, 56, 54, 0, 46,114,101, /* 0x 1f0 */
108, 67, 65, 76, 76, 84, 82, 73, 50, 0, 67, 84, 49, 54, 69, 56, /* 0x 200 */
48, 48, 0, 67, 84, 49, 54, 69, 57, 48, 48, 0, 46,114,101,108, /* 0x 210 */
67, 65, 76, 76, 84, 82, 73, 53, 0, 46,114,101,108, 67, 84, 49, /* 0x 220 */
54, 74, 69, 78, 68, 0, 46,114,101,108, 67, 84, 49, 54, 74, 85, /* 0x 230 */
76, 50, 0, 67, 84, 49, 54, 73, 50, 56, 55, 0, 67, 84, 49, 54, /* 0x 240 */
83, 85, 66, 49, 0, 67, 84, 49, 54, 73, 48, 56, 55, 0, 46,114, /* 0x 250 */
101,108, 67, 65, 76, 76, 84, 82, 73, 54, 0, 67, 79, 82, 69, 84, /* 0x 260 */
85, 82, 78, 0, 46,110,111,116,101, 0, 0, 0, 0, 0, 0, 0, /* 0x 270 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 280 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 290 */
0, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, /* 0x 2a0 */
0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2b0 */
0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, /* 0x 2c0 */
1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, /* 0x 2d0 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x 2e0 */
0, 0, 0, 0, 39, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, /* 0x 2f0 */
0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 300 */
0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, /* 0x 310 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, /* 0x 320 */
29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 330 */
0, 0, 0, 0, 44, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x 340 */
0, 0, 0, 0, 4, 15, 0, 0, 40, 0, 0, 0, 49, 0, 0, 0, /* 0x 350 */
4, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 57, 0, 0, 0, /* 0x 360 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, /* 0x 370 */
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 380 */
0, 0, 0, 0, 66, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 390 */
0, 0, 0, 0, 83, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 3a0 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, /* 0x 3b0 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, /* 0x 3c0 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 3d0 */
0, 0, 0, 0, 88, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 3e0 */
0, 0, 0, 0, 85, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, /* 0x 3f0 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, /* 0x 400 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 15, 0, 0, /* 0x 410 */
8, 0, 0, 0, 49, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, /* 0x 420 */
8, 0, 0, 0, 97, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 430 */
0, 0, 0, 0, 88, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, /* 0x 440 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, /* 0x 450 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0, /* 0x 460 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 470 */
0, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 480 */
0, 0, 0, 0,110, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, /* 0x 490 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,115, 0, 0, 0, /* 0x 4a0 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 15, 0, 0, /* 0x 4b0 */
16, 0, 0, 0, 49, 0, 0, 0, 13, 0, 0, 0, 4, 0, 0, 0, /* 0x 4c0 */
8, 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 4d0 */
0, 0, 0, 0,120, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x 4e0 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, /* 0x 4f0 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 15, 0, 0, /* 0x 500 */
8, 0, 0, 0, 49, 0, 0, 0, 15, 0, 0, 0, 4, 0, 0, 0, /* 0x 510 */
8, 0, 0, 0,145, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 520 */
0, 0, 0, 0,122, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x 530 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,141, 0, 0, 0, /* 0x 540 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 15, 0, 0, /* 0x 550 */
8, 0, 0, 0, 49, 0, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, /* 0x 560 */
8, 0, 0, 0,158, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 570 */
0, 0, 0, 0,124, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, /* 0x 580 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,154, 0, 0, 0, /* 0x 590 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 15, 0, 0, /* 0x 5a0 */
24, 0, 0, 0, 49, 0, 0, 0, 19, 0, 0, 0, 4, 0, 0, 0, /* 0x 5b0 */
8, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 5c0 */
0, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 5d0 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,176, 0, 0, 0, /* 0x 5e0 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, /* 0x 5f0 */
7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 600 */
0, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 610 */
0, 0, 0, 0,162, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, /* 0x 620 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,185, 0, 0, 0, /* 0x 630 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 15, 0, 0, /* 0x 640 */
8, 0, 0, 0, 49, 0, 0, 0, 23, 0, 0, 0, 4, 0, 0, 0, /* 0x 650 */
8, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 660 */
0, 0, 0, 0,184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 670 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, /* 0x 680 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 0, 0, 0, /* 0x 690 */
11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 6a0 */
0, 0, 0, 0,207, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x 6b0 */
0, 0, 0, 0,116, 15, 0, 0, 8, 0, 0, 0, 49, 0, 0, 0, /* 0x 6c0 */
26, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,220, 0, 0, 0, /* 0x 6d0 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 0, 0, 0, /* 0x 6e0 */
3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 6f0 */
0, 0, 0, 0,229, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 700 */
0, 0, 0, 0,198, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x 710 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,238, 0, 0, 0, /* 0x 720 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0, /* 0x 730 */
8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 740 */
0, 0, 0, 0,251, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 750 */
0, 0, 0, 0,208, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, /* 0x 760 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,247, 0, 0, 0, /* 0x 770 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 15, 0, 0, /* 0x 780 */
8, 0, 0, 0, 49, 0, 0, 0, 31, 0, 0, 0, 4, 0, 0, 0, /* 0x 790 */
8, 0, 0, 0, 4, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 7a0 */
0, 0, 0, 0,211, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x 7b0 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 13, 1, 0, 0, /* 0x 7c0 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213, 0, 0, 0, /* 0x 7d0 */
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 7e0 */
0, 0, 0, 0, 26, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 7f0 */
0, 0, 0, 0,215, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, /* 0x 800 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, /* 0x 810 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 15, 0, 0, /* 0x 820 */
8, 0, 0, 0, 49, 0, 0, 0, 35, 0, 0, 0, 4, 0, 0, 0, /* 0x 830 */
8, 0, 0, 0, 39, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 840 */
0, 0, 0, 0,221, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x 850 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 35, 1, 0, 0, /* 0x 860 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 15, 0, 0, /* 0x 870 */
8, 0, 0, 0, 49, 0, 0, 0, 37, 0, 0, 0, 4, 0, 0, 0, /* 0x 880 */
8, 0, 0, 0, 52, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 890 */
0, 0, 0, 0,223, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x 8a0 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48, 1, 0, 0, /* 0x 8b0 */
9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 15, 0, 0, /* 0x 8c0 */
8, 0, 0, 0, 49, 0, 0, 0, 39, 0, 0, 0, 4, 0, 0, 0, /* 0x 8d0 */
8, 0, 0, 0, 61, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 8e0 */
0, 0, 0, 0,225, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, /* 0x 8f0 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 70, 1, 0, 0, /* 0x 900 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 0, 0, 0, /* 0x 910 */
2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 920 */
0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 930 */
0, 0, 0, 0,230, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x 940 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 92, 1, 0, 0, /* 0x 950 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 0, 0, 0, /* 0x 960 */
3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 970 */
0, 0, 0, 0, 88, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x 980 */
0, 0, 0, 0,156, 15, 0, 0, 8, 0, 0, 0, 49, 0, 0, 0, /* 0x 990 */
44, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,101, 1, 0, 0, /* 0x 9a0 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 0, 0, 0, /* 0x 9b0 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x 9c0 */
0, 0, 0, 0,110, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, /* 0x 9d0 */
0, 0, 0, 0,242, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, /* 0x 9e0 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, /* 0x 9f0 */
3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 0, 0, /* 0x a00 */
116, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x a10 */
0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x a20 */
0, 0, 0, 0,116, 10, 0, 0,128, 3, 0, 0, 50, 0, 0, 0, /* 0x a30 */
50, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, /* 0x a40 */
3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,244, 13, 0, 0, /* 0x a50 */
13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x a60 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x a70 */
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x a80 */
4, 0,241,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x a90 */
3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x aa0 */
3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ab0 */
3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ac0 */
3, 0, 4, 0, 24, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x ad0 */
0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ae0 */
3, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x af0 */
3, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b00 */
3, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b10 */
3, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b20 */
3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b30 */
3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b40 */
3, 0, 13, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b50 */
0, 0, 13, 0, 43, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x b60 */
0, 0, 13, 0, 60, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, /* 0x b70 */
0, 0, 23, 0, 71, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, /* 0x b80 */
0, 0, 13, 0, 81, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x b90 */
0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ba0 */
3, 0, 15, 0, 95, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, /* 0x bb0 */
0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x bc0 */
3, 0, 17, 0,111, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, /* 0x bd0 */
0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x be0 */
3, 0, 19, 0,126, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, /* 0x bf0 */
0, 0, 19, 0,135, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, /* 0x c00 */
0, 0, 19, 0,150, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, /* 0x c10 */
0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c20 */
3, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c30 */
3, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c40 */
3, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c50 */
3, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c60 */
3, 0, 26, 0,160, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x c70 */
0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c80 */
3, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c90 */
3, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ca0 */
3, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x cb0 */
3, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x cc0 */
3, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x cd0 */
3, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ce0 */
3, 0, 35, 0,169, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x cf0 */
0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d00 */
3, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d10 */
3, 0, 39, 0,179, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, /* 0x d20 */
0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d30 */
3, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d40 */
3, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d50 */
3, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d60 */
3, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d70 */
3, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d80 */
3, 0, 47, 0,188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d90 */
16, 0, 0, 0,197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x da0 */
16, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x db0 */
16, 0, 0, 0,223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x dc0 */
16, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x dd0 */
16, 0, 0, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x de0 */
16, 0, 0, 0, 0,115,114, 99, 47,105, 48, 56, 54, 45,100,111, /* 0x df0 */
115, 49, 54, 46, 99,111,109, 46, 97,115,109, 0,109,101,109, 95, /* 0x e00 */
111,107, 0,108,105,116,101,114, 97,108, 95,110, 50, 98, 0,100, /* 0x e10 */
101, 99,111,109,112, 95,115,116, 97,114,116, 95,110, 50, 98, 0, /* 0x e20 */
103,101,116, 98,105,116, 95,110, 50, 98, 0,108,111,111,112, 49, /* 0x e30 */
95,110, 50, 98, 0,103,101,116, 98,105,116, 95, 99,120, 95,110, /* 0x e40 */
50, 98, 0,100,101, 99,111,109,112, 95,100,111,110,101, 95,110, /* 0x e50 */
50, 98, 0,100,101, 99,111,109,112, 95,114,101,116, 95,110, 50, /* 0x e60 */
98, 0, 97,120, 98,112, 95,110, 50, 98, 0, 99,111,112,121, 95, /* 0x e70 */
109, 97,116, 99,104, 95,110, 50, 98, 0,108,111,111,112, 50, 95, /* 0x e80 */
110, 50, 98, 0, 99,106,116, 49, 54, 95, 76, 49, 0, 99,106,116, /* 0x e90 */
49, 54, 95, 76, 49, 49, 0, 99,106,116, 49, 54, 95, 76, 50, 0, /* 0x ea0 */
115,112, 95,108,105,109,105,116, 0, 98,121,116,101,115, 95,116, /* 0x eb0 */
111, 95, 99,111,112,121, 0, 99,111,112,121, 95,115,111,117,114, /* 0x ec0 */
99,101, 0, 99,111,112,121, 95,100,101,115,116,105,110, 97,116, /* 0x ed0 */
105,111,110, 0,100,101, 99,111,109,112,114,101,115,115,111,114, /* 0x ee0 */
0, 99, 97,108,108,116,114,105, 99,107, 95, 99, 97,108,108,115, /* 0x ef0 */
0, 0, 0, 0, 2, 0, 0, 0, 20, 50, 0, 0, 9, 0, 0, 0, /* 0x f00 */
20, 51, 0, 0, 12, 0, 0, 0, 20, 52, 0, 0, 15, 0, 0, 0, /* 0x f10 */
20, 53, 0, 0, 28, 0, 0, 0, 22, 7, 0, 0, 1, 0, 0, 0, /* 0x f20 */
20, 54, 0, 0, 2, 0, 0, 0, 21, 29, 0, 0, 8, 0, 0, 0, /* 0x f30 */
21, 29, 0, 0, 1, 0, 0, 0, 23, 29, 0, 0, 1, 0, 0, 0, /* 0x f40 */
23, 29, 0, 0, 16, 0, 0, 0, 21, 29, 0, 0, 24, 0, 0, 0, /* 0x f50 */
21, 29, 0, 0, 1, 0, 0, 0, 23, 13, 0, 0, 7, 0, 0, 0, /* 0x f60 */
23, 13, 0, 0, 2, 0, 0, 0, 20, 55, 0, 0, 2, 0, 0, 0, /* 0x f70 */
23, 31, 0, 0, 2, 0, 0, 0, 20, 55, 0, 0, 1, 0, 0, 0, /* 0x f80 */
23, 29, 0, 0, 1, 0, 0, 0, 23, 47, 0, 0, 2, 0, 0, 0, /* 0x f90 */
23, 39, 0, 0, 10,116,109,112, 47,105, 48, 56, 54, 45,100,111, /* 0x fa0 */
115, 49, 54, 46, 99,111,109, 46, 98,105,110, 58, 32, 32, 32, 32, /* 0x fb0 */
32,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, /* 0x fc0 */
51, 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116,105,111,110, /* 0x fd0 */
115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, /* 0x fe0 */
32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, /* 0x ff0 */
77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, /* 0x1000 */
32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103, /* 0x1010 */
110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 46,116,101, /* 0x1020 */
120,116, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1030 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1040 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, /* 0x1050 */
52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1060 */
83, 44, 32, 65, 76, 76, 79, 67, 44, 32, 76, 79, 65, 68, 44, 32, /* 0x1070 */
82, 69, 65, 68, 79, 78, 76, 89, 44, 32, 67, 79, 68, 69, 10, 32, /* 0x1080 */
32, 49, 32, 46,100, 97,116, 97, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1090 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x10a0 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x10b0 */
48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, /* 0x10c0 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 65, 76, 76, 79, 67, 44, 32, /* 0x10d0 */
76, 79, 65, 68, 44, 32, 68, 65, 84, 65, 10, 32, 32, 50, 32, 46, /* 0x10e0 */
98,115,115, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x10f0 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1100 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1110 */
48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 65, 76, 76, 79, 67, /* 0x1120 */
10, 32, 32, 51, 32, 67, 79, 77, 77, 65, 73, 78, 49, 32, 32, 32, /* 0x1130 */
32, 32, 32, 48, 48, 48, 48, 48, 48, 49,100, 32, 32, 48, 48, 48, /* 0x1140 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1150 */
32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, /* 0x1160 */
32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1170 */
44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 67, /* 0x1180 */
79, 77, 83, 66, 66, 66, 80, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1190 */
48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x11a0 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x11b0 */
48, 53, 49, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x11c0 */
78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x11d0 */
53, 32, 67, 79, 77, 80, 83, 72, 68, 73, 32, 32, 32, 32, 32, 32, /* 0x11e0 */
48, 48, 48, 48, 48, 48, 48, 49, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x11f0 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1200 */
48, 48, 48, 48, 53, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1210 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1220 */
10, 32, 32, 54, 32, 67, 79, 77, 67, 65, 76, 76, 84, 32, 32, 32, /* 0x1230 */
32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 49, 32, 32, 48, 48, 48, /* 0x1240 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1250 */
32, 48, 48, 48, 48, 48, 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, /* 0x1260 */
32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x1270 */
78, 76, 89, 10, 32, 32, 55, 32, 67, 79, 77, 77, 65, 73, 78, 50, /* 0x1280 */
32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 51, 32, 32, /* 0x1290 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x12a0 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 53, 53, 32, 32, 50, 42, /* 0x12b0 */
42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x12c0 */
76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x12d0 */
56, 32, 85, 80, 88, 49, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, /* 0x12e0 */
48, 48, 48, 48, 48, 48, 49, 54, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x12f0 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1300 */
48, 48, 48, 48, 53, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1310 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1320 */
10, 32, 32, 57, 32, 67, 79, 77, 67, 85, 84, 80, 79, 32, 32, 32, /* 0x1330 */
32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1340 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1350 */
32, 48, 48, 48, 48, 48, 48, 54,101, 32, 32, 50, 42, 42, 48, 32, /* 0x1360 */
32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x1370 */
78, 76, 89, 10, 32, 49, 48, 32, 78, 82, 86, 50, 66, 49, 54, 48, /* 0x1380 */
32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 97, 32, 32, /* 0x1390 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x13a0 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 54,101, 32, 32, 50, 42, /* 0x13b0 */
42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x13c0 */
76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x13d0 */
49, 32, 78, 82, 86, 68, 68, 79, 78, 69, 32, 32, 32, 32, 32, 32, /* 0x13e0 */
48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x13f0 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1400 */
48, 48, 48, 48, 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1410 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1420 */
69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 78, 82, 86, 68, /* 0x1430 */
82, 69, 84, 85, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1440 */
48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1450 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 97, /* 0x1460 */
32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1470 */
44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1480 */
89, 10, 32, 49, 51, 32, 78, 82, 86, 68, 69, 67, 79, 49, 32, 32, /* 0x1490 */
32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49,101, 32, 32, 48, 48, /* 0x14a0 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x14b0 */
32, 32, 48, 48, 48, 48, 48, 48, 55, 99, 32, 32, 50, 42, 42, 48, /* 0x14c0 */
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x14d0 */
67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 52, 32, /* 0x14e0 */
78, 82, 86, 76, 69, 68, 48, 48, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x14f0 */
48, 48, 48, 48, 48, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1500 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1510 */
48, 48, 57, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1520 */
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1530 */
49, 53, 32, 78, 82, 86, 71, 84, 68, 48, 48, 32, 32, 32, 32, 32, /* 0x1540 */
32, 48, 48, 48, 48, 48, 48, 48, 55, 32, 32, 48, 48, 48, 48, 48, /* 0x1550 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1560 */
48, 48, 48, 48, 48, 57, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1570 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1580 */
89, 10, 32, 49, 54, 32, 78, 82, 86, 68, 69, 67, 79, 50, 32, 32, /* 0x1590 */
32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 54, 32, 32, 48, 48, /* 0x15a0 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x15b0 */
32, 32, 48, 48, 48, 48, 48, 48, 97, 50, 32, 32, 50, 42, 42, 48, /* 0x15c0 */
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x15d0 */
67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 55, 32, /* 0x15e0 */
78, 82, 86, 50, 66, 49, 54, 57, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x15f0 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1600 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1610 */
48, 48, 98, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1620 */
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1630 */
49, 56, 32, 67, 65, 76, 76, 84, 82, 49, 54, 32, 32, 32, 32, 32, /* 0x1640 */
32, 48, 48, 48, 48, 48, 48, 48, 98, 32, 32, 48, 48, 48, 48, 48, /* 0x1650 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1660 */
48, 48, 48, 48, 48, 98, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1670 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1680 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 57, 32, 67, 84, 49, /* 0x1690 */
54, 73, 50, 56, 54, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x16a0 */
48, 48, 51, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x16b0 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 99, /* 0x16c0 */
51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x16d0 */
83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 48, 32, /* 0x16e0 */
67, 84, 49, 54, 83, 85, 66, 48, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x16f0 */
48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1700 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1710 */
48, 48, 99, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1720 */
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1730 */
50, 49, 32, 67, 84, 49, 54, 73, 48, 56, 54, 32, 32, 32, 32, 32, /* 0x1740 */
32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, /* 0x1750 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1760 */
48, 48, 48, 48, 48, 99, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1770 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1780 */
89, 10, 32, 50, 50, 32, 67, 65, 76, 76, 84, 82, 73, 50, 32, 32, /* 0x1790 */
32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 51, 32, 32, 48, 48, /* 0x17a0 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x17b0 */
32, 32, 48, 48, 48, 48, 48, 48,100, 48, 32, 32, 50, 42, 42, 48, /* 0x17c0 */
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x17d0 */
67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 51, 32, /* 0x17e0 */
67, 84, 49, 54, 69, 56, 48, 48, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x17f0 */
48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1800 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1810 */
48, 48,100, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1820 */
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1830 */
50, 52, 32, 67, 84, 49, 54, 69, 57, 48, 48, 32, 32, 32, 32, 32, /* 0x1840 */
32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, /* 0x1850 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1860 */
48, 48, 48, 48, 48,100, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1870 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1880 */
89, 10, 32, 50, 53, 32, 67, 65, 76, 76, 84, 82, 73, 53, 32, 32, /* 0x1890 */
32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 54, 32, 32, 48, 48, /* 0x18a0 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x18b0 */
32, 32, 48, 48, 48, 48, 48, 48,100, 55, 32, 32, 50, 42, 42, 48, /* 0x18c0 */
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x18d0 */
67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 54, 32, /* 0x18e0 */
67, 84, 49, 54, 74, 69, 78, 68, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x18f0 */
48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1900 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1910 */
48, 48,100,100, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1920 */
69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x1930 */
68, 79, 78, 76, 89, 10, 32, 50, 55, 32, 67, 84, 49, 54, 74, 85, /* 0x1940 */
76, 50, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, /* 0x1950 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1960 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,100,102, 32, 32, /* 0x1970 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1980 */
82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x1990 */
32, 50, 56, 32, 67, 84, 49, 54, 73, 50, 56, 55, 32, 32, 32, 32, /* 0x19a0 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 51, 32, 32, 48, 48, 48, 48, /* 0x19b0 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x19c0 */
48, 48, 48, 48, 48, 48,101, 49, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x19d0 */
67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x19e0 */
76, 89, 10, 32, 50, 57, 32, 67, 84, 49, 54, 83, 85, 66, 49, 32, /* 0x19f0 */
32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, /* 0x1a00 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1a10 */
48, 32, 32, 48, 48, 48, 48, 48, 48,101, 52, 32, 32, 50, 42, 42, /* 0x1a20 */
48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x1a30 */
68, 79, 78, 76, 89, 10, 32, 51, 48, 32, 67, 84, 49, 54, 73, 48, /* 0x1a40 */
56, 55, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, /* 0x1a50 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1a60 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,101, 54, 32, 32, /* 0x1a70 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1a80 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 51, 49, 32, 67, 65, 76, /* 0x1a90 */
76, 84, 82, 73, 54, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1aa0 */
48, 48, 51, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1ab0 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,101, /* 0x1ac0 */
101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1ad0 */
83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1ae0 */
76, 89, 10, 32, 51, 50, 32, 67, 79, 82, 69, 84, 85, 82, 78, 32, /* 0x1af0 */
32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 49, 32, 32, 48, /* 0x1b00 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1b10 */
48, 32, 32, 48, 48, 48, 48, 48, 48,102, 49, 32, 32, 50, 42, 42, /* 0x1b20 */
48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x1b30 */
68, 79, 78, 76, 89, 10, 32, 51, 51, 32, 46,110,111,116,101, 32, /* 0x1b40 */
32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 52, /* 0x1b50 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1b60 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,102, 50, 32, 32, /* 0x1b70 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1b80 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, /* 0x1b90 */
84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1ba0 */
108, 32, 32, 32, 32,100,102, 32, 42, 65, 66, 83, 42, 9, 48, 48, /* 0x1bb0 */
48, 48, 48, 48, 48, 48, 32,115,114, 99, 47,105, 48, 56, 54, 45, /* 0x1bc0 */
100,111,115, 49, 54, 46, 99,111,109, 46, 97,115,109, 10, 48, 48, /* 0x1bd0 */
48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 46, /* 0x1be0 */
116,101,120,116, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 46,116, /* 0x1bf0 */
101,120,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x1c00 */
32, 32,100, 32, 32, 46,100, 97,116, 97, 9, 48, 48, 48, 48, 48, /* 0x1c10 */
48, 48, 48, 32, 46,100, 97,116, 97, 10, 48, 48, 48, 48, 48, 48, /* 0x1c20 */
48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 46, 98,115,115, 9, /* 0x1c30 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 46, 98,115,115, 10, 48, 48, /* 0x1c40 */
48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, /* 0x1c50 */
79, 77, 77, 65, 73, 78, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1c60 */
32, 67, 79, 77, 77, 65, 73, 78, 49, 10, 48, 48, 48, 48, 48, 48, /* 0x1c70 */
48, 56, 32,108, 32, 32, 32, 32, 32, 32, 32, 67, 79, 77, 77, 65, /* 0x1c80 */
73, 78, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,109,101,109, /* 0x1c90 */
95,111,107, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x1ca0 */
32, 32,100, 32, 32, 67, 79, 77, 67, 85, 84, 80, 79, 9, 48, 48, /* 0x1cb0 */
48, 48, 48, 48, 48, 48, 32, 67, 79, 77, 67, 85, 84, 80, 79, 10, /* 0x1cc0 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x1cd0 */
32, 67, 79, 77, 83, 66, 66, 66, 80, 9, 48, 48, 48, 48, 48, 48, /* 0x1ce0 */
48, 48, 32, 67, 79, 77, 83, 66, 66, 66, 80, 10, 48, 48, 48, 48, /* 0x1cf0 */
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 79, 77, /* 0x1d00 */
80, 83, 72, 68, 73, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, /* 0x1d10 */
79, 77, 80, 83, 72, 68, 73, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1d20 */
32,108, 32, 32, 32, 32,100, 32, 32, 67, 79, 77, 67, 65, 76, 76, /* 0x1d30 */
84, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 79, 77, 67, 65, /* 0x1d40 */
76, 76, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x1d50 */
32, 32,100, 32, 32, 67, 79, 77, 77, 65, 73, 78, 50, 9, 48, 48, /* 0x1d60 */
48, 48, 48, 48, 48, 48, 32, 67, 79, 77, 77, 65, 73, 78, 50, 10, /* 0x1d70 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x1d80 */
32, 85, 80, 88, 49, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, /* 0x1d90 */
48, 48, 32, 85, 80, 88, 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, /* 0x1da0 */
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x1db0 */
50, 66, 49, 54, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, /* 0x1dc0 */
82, 86, 50, 66, 49, 54, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1dd0 */
32,108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 49, 54, /* 0x1de0 */
48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,105,116,101,114, /* 0x1df0 */
97,108, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, /* 0x1e00 */
108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 49, 54, 48, /* 0x1e10 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32,100,101, 99,111,109,112, /* 0x1e20 */
95,115,116, 97,114,116, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, /* 0x1e30 */
48, 48,100, 32,108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, /* 0x1e40 */
69, 67, 79, 50, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,103,101, /* 0x1e50 */
116, 98,105,116, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x1e60 */
55, 32,108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 49, /* 0x1e70 */
54, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,111,111,112, /* 0x1e80 */
49, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32,108, /* 0x1e90 */
32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 9, /* 0x1ea0 */
48, 48, 48, 48, 48, 48, 48, 48, 32,103,101,116, 98,105,116, 95, /* 0x1eb0 */
99,120, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1ec0 */
108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 68, 68, 79, 78, 69, /* 0x1ed0 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 68, 68, 79, /* 0x1ee0 */
78, 69, 10, 48, 48, 48, 48, 48, 48, 49, 54, 32,108, 32, 32, 32, /* 0x1ef0 */
32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 9, 48, 48, 48, /* 0x1f00 */
48, 48, 48, 48, 48, 32,100,101, 99,111,109,112, 95,100,111,110, /* 0x1f10 */
101, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x1f20 */
32, 32, 32, 32,100, 32, 32, 78, 82, 86, 68, 82, 69, 84, 85, 9, /* 0x1f30 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 68, 82, 69, 84, /* 0x1f40 */
85, 10, 48, 48, 48, 48, 48, 48, 49, 53, 32,108, 32, 32, 32, 32, /* 0x1f50 */
32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 9, 48, 48, 48, 48, /* 0x1f60 */
48, 48, 48, 48, 32,100,101, 99,111,109,112, 95,114,101,116, 95, /* 0x1f70 */
110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x1f80 */
32, 32,100, 32, 32, 78, 82, 86, 68, 69, 67, 79, 49, 9, 48, 48, /* 0x1f90 */
48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 68, 69, 67, 79, 49, 10, /* 0x1fa0 */
48, 48, 48, 48, 48, 48, 48,100, 32,108, 32, 32, 32, 32, 32, 32, /* 0x1fb0 */
32, 78, 82, 86, 68, 69, 67, 79, 49, 9, 48, 48, 48, 48, 48, 48, /* 0x1fc0 */
48, 48, 32, 97,120, 98,112, 95,110, 50, 98, 10, 48, 48, 48, 48, /* 0x1fd0 */
48, 48, 49,101, 32,108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, /* 0x1fe0 */
68, 69, 67, 79, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99, /* 0x1ff0 */
111,112,121, 95,109, 97,116, 99,104, 95,110, 50, 98, 10, 48, 48, /* 0x2000 */
48, 48, 48, 48, 49, 55, 32,108, 32, 32, 32, 32, 32, 32, 32, 78, /* 0x2010 */
82, 86, 68, 69, 67, 79, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2020 */
32,108,111,111,112, 50, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, /* 0x2030 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 76, /* 0x2040 */
69, 68, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, /* 0x2050 */
86, 76, 69, 68, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2060 */
108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 71, 84, 68, 48, 48, /* 0x2070 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 71, 84, 68, /* 0x2080 */
48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2090 */
32,100, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 9, 48, 48, 48, /* 0x20a0 */
48, 48, 48, 48, 48, 32, 78, 82, 86, 68, 69, 67, 79, 50, 10, 48, /* 0x20b0 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x20c0 */
78, 82, 86, 50, 66, 49, 54, 57, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x20d0 */
48, 32, 78, 82, 86, 50, 66, 49, 54, 57, 10, 48, 48, 48, 48, 48, /* 0x20e0 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 65, 76, 76, /* 0x20f0 */
84, 82, 49, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 65, /* 0x2100 */
76, 76, 84, 82, 49, 54, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x2110 */
108, 32, 32, 32, 32, 32, 32, 32, 67, 65, 76, 76, 84, 82, 49, 54, /* 0x2120 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,106,116, 49, 54, 95, /* 0x2130 */
76, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2140 */
32,100, 32, 32, 67, 84, 49, 54, 73, 50, 56, 54, 9, 48, 48, 48, /* 0x2150 */
48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 73, 50, 56, 54, 10, 48, /* 0x2160 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2170 */
67, 84, 49, 54, 83, 85, 66, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2180 */
48, 32, 67, 84, 49, 54, 83, 85, 66, 48, 10, 48, 48, 48, 48, 48, /* 0x2190 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 84, 49, 54, /* 0x21a0 */
73, 48, 56, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 84, /* 0x21b0 */
49, 54, 73, 48, 56, 54, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x21c0 */
108, 32, 32, 32, 32,100, 32, 32, 67, 65, 76, 76, 84, 82, 73, 50, /* 0x21d0 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 65, 76, 76, 84, 82, /* 0x21e0 */
73, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x21f0 */
32,100, 32, 32, 67, 84, 49, 54, 69, 56, 48, 48, 9, 48, 48, 48, /* 0x2200 */
48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 69, 56, 48, 48, 10, 48, /* 0x2210 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2220 */
67, 84, 49, 54, 69, 57, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2230 */
48, 32, 67, 84, 49, 54, 69, 57, 48, 48, 10, 48, 48, 48, 48, 48, /* 0x2240 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 65, 76, 76, /* 0x2250 */
84, 82, 73, 53, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 65, /* 0x2260 */
76, 76, 84, 82, 73, 53, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x2270 */
108, 32, 32, 32, 32, 32, 32, 32, 67, 65, 76, 76, 84, 82, 73, 53, /* 0x2280 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,106,116, 49, 54, 95, /* 0x2290 */
76, 49, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x22a0 */
32, 32,100, 32, 32, 67, 84, 49, 54, 74, 69, 78, 68, 9, 48, 48, /* 0x22b0 */
48, 48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 74, 69, 78, 68, 10, /* 0x22c0 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x22d0 */
32, 67, 84, 49, 54, 74, 85, 76, 50, 9, 48, 48, 48, 48, 48, 48, /* 0x22e0 */
48, 48, 32, 67, 84, 49, 54, 74, 85, 76, 50, 10, 48, 48, 48, 48, /* 0x22f0 */
48, 48, 48, 51, 32,108, 32, 32, 32, 32, 32, 32, 32, 67, 65, 76, /* 0x2300 */
76, 84, 82, 73, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99, /* 0x2310 */
106,116, 49, 54, 95, 76, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2320 */
32,108, 32, 32, 32, 32,100, 32, 32, 67, 84, 49, 54, 73, 50, 56, /* 0x2330 */
55, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 73, /* 0x2340 */
50, 56, 55, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2350 */
32, 32,100, 32, 32, 67, 84, 49, 54, 83, 85, 66, 49, 9, 48, 48, /* 0x2360 */
48, 48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 83, 85, 66, 49, 10, /* 0x2370 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x2380 */
32, 67, 84, 49, 54, 73, 48, 56, 55, 9, 48, 48, 48, 48, 48, 48, /* 0x2390 */
48, 48, 32, 67, 84, 49, 54, 73, 48, 56, 55, 10, 48, 48, 48, 48, /* 0x23a0 */
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 65, 76, /* 0x23b0 */
76, 84, 82, 73, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, /* 0x23c0 */
65, 76, 76, 84, 82, 73, 54, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x23d0 */
32,108, 32, 32, 32, 32,100, 32, 32, 67, 79, 82, 69, 84, 85, 82, /* 0x23e0 */
78, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 79, 82, 69, 84, /* 0x23f0 */
85, 82, 78, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2400 */
32, 32,100, 32, 32, 46,110,111,116,101, 9, 48, 48, 48, 48, 48, /* 0x2410 */
48, 48, 48, 32, 46,110,111,116,101, 10, 48, 48, 48, 48, 48, 48, /* 0x2420 */
48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, /* 0x2430 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,112, 95,108,105,109, /* 0x2440 */
105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x2450 */
32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x2460 */
48, 48, 32, 98,121,116,101,115, 95,116,111, 95, 99,111,112,121, /* 0x2470 */
10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, /* 0x2480 */
32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2490 */
32, 99,111,112,121, 95,115,111,117,114, 99,101, 10, 48, 48, 48, /* 0x24a0 */
48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x24b0 */
78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,111,112, /* 0x24c0 */
121, 95,100,101,115,116,105,110, 97,116,105,111,110, 10, 48, 48, /* 0x24d0 */
48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x24e0 */
85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,100,101, /* 0x24f0 */
99,111,109,112,114,101,115,115,111,114, 10, 48, 48, 48, 48, 48, /* 0x2500 */
48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x2510 */
42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99, 97,108,108,116, /* 0x2520 */
114,105, 99,107, 95, 99, 97,108,108,115, 10, 10, 10, 82, 69, 76, /* 0x2530 */
79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, /* 0x2540 */
70, 79, 82, 32, 91, 67, 79, 77, 77, 65, 73, 78, 49, 93, 58, 10, /* 0x2550 */
79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x2560 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x2570 */
32, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54, /* 0x2580 */
95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,115,112, 95, /* 0x2590 */
108,105,109,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 57, 32, 82, /* 0x25a0 */
95, 51, 56, 54, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x25b0 */
32, 98,121,116,101,115, 95,116,111, 95, 99,111,112,121, 10, 48, /* 0x25c0 */
48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 51, 56, 54, 95, 49, 54, /* 0x25d0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99,111,112,121, 95,115, /* 0x25e0 */
111,117,114, 99,101, 10, 48, 48, 48, 48, 48, 48, 48,102, 32, 82, /* 0x25f0 */
95, 51, 56, 54, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2600 */
32, 99,111,112,121, 95,100,101,115,116,105,110, 97,116,105,111, /* 0x2610 */
110, 10, 48, 48, 48, 48, 48, 48, 49, 99, 32, 82, 95, 51, 56, 54, /* 0x2620 */
95, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 79, 77, /* 0x2630 */
67, 85, 84, 80, 79, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x2640 */
79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x2650 */
67, 79, 77, 77, 65, 73, 78, 50, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x2660 */
84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2670 */
32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, /* 0x2680 */
48, 48, 48, 48, 49, 32, 82, 95, 51, 56, 54, 95, 49, 54, 32, 32, /* 0x2690 */
32, 32, 32, 32, 32, 32, 32, 32,100,101, 99,111,109,112,114,101, /* 0x26a0 */
115,115,111,114, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x26b0 */
78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, /* 0x26c0 */
82, 86, 50, 66, 49, 54, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x26d0 */
32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x26e0 */
32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, /* 0x26f0 */
48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 49, 54, 32, /* 0x2700 */
32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 10, /* 0x2710 */
48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 51, 56, 54, 95, 80, /* 0x2720 */
67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, 69, /* 0x2730 */
67, 79, 50, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x2740 */
32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, /* 0x2750 */
86, 68, 68, 79, 78, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x2760 */
32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2770 */
32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, /* 0x2780 */
48, 48, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 56, 32, 32, 32, /* 0x2790 */
32, 32, 32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 10, 10, /* 0x27a0 */
10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x27b0 */
82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 68, 82, 69, 84, /* 0x27c0 */
85, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, /* 0x27d0 */
69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x27e0 */
65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, /* 0x27f0 */
95, 51, 56, 54, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2800 */
32, 78, 82, 86, 68, 69, 67, 79, 50, 10, 10, 10, 82, 69, 76, 79, /* 0x2810 */
67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x2820 */
79, 82, 32, 91, 78, 82, 86, 68, 69, 67, 79, 49, 93, 58, 10, 79, /* 0x2830 */
70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x2840 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, /* 0x2850 */
10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 51, 56, 54, 95, /* 0x2860 */
80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, /* 0x2870 */
69, 67, 79, 50, 10, 48, 48, 48, 48, 48, 48, 49, 56, 32, 82, 95, /* 0x2880 */
51, 56, 54, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2890 */
78, 82, 86, 68, 69, 67, 79, 50, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x28a0 */
49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 56, 32, 32, 32, 32, 32, /* 0x28b0 */
32, 32, 32, 32, 78, 82, 86, 50, 66, 49, 54, 48, 10, 10, 10, 82, /* 0x28c0 */
69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x28d0 */
83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 68, 69, 67, 79, 50, 93, /* 0x28e0 */
58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, /* 0x28f0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, /* 0x2900 */
85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 55, 32, 82, 95, 51, /* 0x2910 */
56, 54, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, /* 0x2920 */
82, 86, 50, 66, 49, 54, 48, 10, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x2930 */
84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x2940 */
32, 91, 67, 65, 76, 76, 84, 82, 49, 54, 93, 58, 10, 79, 70, 70, /* 0x2950 */
83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x2960 */
32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, /* 0x2970 */
48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 49, 54, /* 0x2980 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 97,108,108,116,114, /* 0x2990 */
105, 99,107, 95, 99, 97,108,108,115, 10, 10, 10, 82, 69, 76, 79, /* 0x29a0 */
67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x29b0 */
79, 82, 32, 91, 67, 65, 76, 76, 84, 82, 73, 50, 93, 58, 10, 79, /* 0x29c0 */
70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x29d0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, /* 0x29e0 */
10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, /* 0x29f0 */
80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 65, 76, 76, /* 0x2a00 */
84, 82, 49, 54, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2a10 */
78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 67, /* 0x2a20 */
65, 76, 76, 84, 82, 73, 53, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x2a30 */
32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2a40 */
32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, /* 0x2a50 */
48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 49, 54, 32, 32, 32, /* 0x2a60 */
32, 32, 32, 32, 32, 32, 32, 99, 97,108,108,116,114,105, 99,107, /* 0x2a70 */
95, 99, 97,108,108,115, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x2a80 */
73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x2a90 */
91, 67, 84, 49, 54, 74, 69, 78, 68, 93, 58, 10, 79, 70, 70, 83, /* 0x2aa0 */
69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x2ab0 */
32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, /* 0x2ac0 */
48, 48, 48, 48, 48, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 56, /* 0x2ad0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, /* 0x2ae0 */
50, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x2af0 */
69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 67, 84, 49, 54, /* 0x2b00 */
74, 85, 76, 50, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x2b10 */
84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2b20 */
32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2b30 */
49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 56, 32, 32, 32, 32, 32, /* 0x2b40 */
32, 32, 32, 32, 67, 65, 76, 76, 84, 82, 73, 54, 10, 10, 10, 82, /* 0x2b50 */
69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x2b60 */
83, 32, 70, 79, 82, 32, 91, 67, 65, 76, 76, 84, 82, 73, 54, 93, /* 0x2b70 */
58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, /* 0x2b80 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, /* 0x2b90 */
85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, /* 0x2ba0 */
56, 54, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, /* 0x2bb0 */
65, 76, 76, 84, 82, 73, 53, 10, 10, 10 /* 0x2bc0 */
};

View File

@ -1,4 +1,4 @@
/* i086-dos16.sys.h -- created from i086-dos16.sys.bin, 991 (0x3df) bytes
/* i086-dos16.sys.h -- created from i086-dos16.sys.bin, 12750 (0x31ce) bytes
This file is part of the UPX executable compressor.
@ -27,71 +27,806 @@
*/
#define NRV2B_LOADER_SIZE 991
#define NRV2B_LOADER_ADLER32 0xf335eb3a
#define NRV2B_LOADER_CRC32 0x21f25aa3
#define NRV2B_LOADER_SIZE 12750
#define NRV2B_LOADER_ADLER32 0xd1a38445
#define NRV2B_LOADER_CRC32 0xfc3ae143
unsigned char nrv2b_loader[991] = {
255,255,255,255, 0, 0, 10, 0, 0, 0, 96, 80, 83, 81, 82, 86, /* 0x 0 */
87, 85,190, 83, 73,191, 68, 73,137,241, 6, 30, 7,253,243,164, /* 0x 10 */
252,187, 0,128,135,247,131,238,187, 25,237, 87,233, 74, 77, 85, /* 0x 20 */
80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */
0, 0, 0, 0, 45,164,232, 0, 0,114,250, 65,232, 0, 0,227, /* 0x 40 */
0,227, 0,115, 0,131,233, 3,114, 6,136,204,172,247,208,149, /* 0x 50 */
49,201,232, 0, 0, 17,201,117, 8, 65,232, 0, 0,115,251, 65, /* 0x 60 */
65, 65,129,253, 0,243,131,209, 1,141, 3,150,243,164,150,235, /* 0x 70 */
0,232, 2, 0, 17,201, 1,219,117, 4,173, 17,192,147,195, 94, /* 0x 80 */
185, 67, 84,172, 44,232, 60, 1,119,249,193, 4, 8, 41, 52,139, /* 0x 90 */
28,134,223, 41,243,137, 28,173,226, 0,176,232,176,233, 95,185, /* 0x a0 */
67, 84,242,174,117, 0,117, 0,193, 5, 8, 41, 61,139, 29,134, /* 0x b0 */
223, 41,251,137, 29,175,235, 0, 7, 97, 93, 95, 94, 90, 89, 91, /* 0x c0 */
88,233, 74, 79, 83, 89, 83, 77, 65, 73, 78, 49, 0, 0, 0, 0, /* 0x d0 */
0, 83, 89, 83, 73, 50, 56, 54, 49, 0, 10, 0, 0, 0, 83, 89, /* 0x e0 */
83, 73, 48, 56, 54, 49, 0, 11, 0, 0, 0, 83, 89, 83, 77, 65, /* 0x f0 */
73, 78, 50, 0, 18, 0, 0, 0, 83, 89, 83, 83, 85, 66, 83, 73, /* 0x 100 */
0, 41, 0, 0, 0, 83, 89, 83, 83, 66, 66, 66, 80, 0, 41, 0, /* 0x 110 */
0, 0, 83, 89, 83, 67, 65, 76, 76, 84, 0, 43, 0, 0, 0, 83, /* 0x 120 */
89, 83, 77, 65, 73, 78, 51, 0, 44, 0, 0, 0, 85, 80, 88, 49, /* 0x 130 */
72, 69, 65, 68, 0, 47, 0, 0, 0, 83, 89, 83, 67, 85, 84, 80, /* 0x 140 */
79, 0, 69, 0, 0, 0, 78, 82, 86, 50, 66, 49, 54, 48, 0, 69, /* 0x 150 */
0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 78, 82, 86, 68, 69, /* 0x 160 */
67, 79, 50, 0, 13, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, /* 0x 170 */
78, 82, 86, 68, 69, 67, 79, 50, 0, 8, 0, 0, 0, 78, 82, 86, /* 0x 180 */
68, 68, 79, 78, 69, 0, 79, 0, 0, 0, 0, 0, 0, 0, 81, 0, /* 0x 190 */
0, 0, 78, 82, 86, 68, 69, 67, 79, 50, 0, 22, 0, 0, 0, 78, /* 0x 1a0 */
82, 86, 68, 82, 69, 84, 85, 0, 81, 0, 0, 0, 0, 0, 0, 0, /* 0x 1b0 */
83, 0, 0, 0, 78, 82, 86, 68, 69, 67, 79, 50, 0, 21, 0, 0, /* 0x 1c0 */
0, 78, 82, 86, 68, 69, 67, 79, 49, 0, 83, 0, 0, 0, 0, 0, /* 0x 1d0 */
0, 0, 85, 0, 0, 0, 78, 82, 86, 50, 66, 49, 54, 48, 0, 7, /* 0x 1e0 */
0, 0, 0, 0, 0, 0, 0,101, 0, 0, 0, 78, 82, 86, 68, 69, /* 0x 1f0 */
67, 79, 50, 0, 8, 0, 0, 0, 0, 0, 0, 0,109, 0, 0, 0, /* 0x 200 */
78, 82, 86, 68, 69, 67, 79, 50, 0, 8, 0, 0, 0, 78, 82, 86, /* 0x 210 */
76, 69, 68, 48, 48, 0,113, 0, 0, 0, 78, 82, 86, 71, 84, 68, /* 0x 220 */
48, 48, 0,114, 0, 0, 0, 78, 82, 86, 68, 69, 67, 79, 50, 0, /* 0x 230 */
121, 0, 0, 0, 0, 0, 0, 0,129, 0, 0, 0, 78, 82, 86, 50, /* 0x 240 */
66, 49, 54, 48, 0, 1, 0, 0, 0, 78, 82, 86, 50, 66, 49, 54, /* 0x 250 */
57, 0,143, 0, 0, 0, 67, 65, 76, 76, 84, 82, 49, 54, 0,143, /* 0x 260 */
0, 0, 0, 67, 84, 49, 54, 73, 50, 56, 54, 0,154, 0, 0, 0, /* 0x 270 */
67, 84, 49, 54, 83, 85, 66, 48, 0,157, 0, 0, 0, 67, 84, 49, /* 0x 280 */
54, 73, 48, 56, 54, 0,159, 0, 0, 0, 67, 65, 76, 76, 84, 82, /* 0x 290 */
73, 50, 0,167, 0, 0, 0, 0, 0, 0, 0,170, 0, 0, 0, 67, /* 0x 2a0 */
65, 76, 76, 84, 82, 49, 54, 0, 4, 0, 0, 0, 67, 84, 49, 54, /* 0x 2b0 */
68, 85, 77, 49, 0,170, 0, 0, 0, 67, 84, 49, 54, 69, 56, 48, /* 0x 2c0 */
48, 0,170, 0, 0, 0, 67, 84, 49, 54, 69, 57, 48, 48, 0,172, /* 0x 2d0 */
0, 0, 0, 67, 65, 76, 76, 84, 82, 73, 53, 0,174, 0, 0, 0, /* 0x 2e0 */
67, 84, 49, 54, 74, 69, 78, 68, 0,180, 0, 0, 0, 0, 0, 0, /* 0x 2f0 */
0,182, 0, 0, 0, 78, 82, 86, 68, 69, 67, 79, 50, 0, 21, 0, /* 0x 300 */
0, 0, 67, 84, 49, 54, 74, 85, 76, 50, 0,182, 0, 0, 0, 0, /* 0x 310 */
0, 0, 0,184, 0, 0, 0, 67, 65, 76, 76, 84, 82, 73, 54, 0, /* 0x 320 */
3, 0, 0, 0, 67, 84, 49, 54, 68, 85, 77, 50, 0,184, 0, 0, /* 0x 330 */
0, 67, 84, 49, 54, 73, 50, 56, 55, 0,184, 0, 0, 0, 67, 84, /* 0x 340 */
49, 54, 83, 85, 66, 49, 0,187, 0, 0, 0, 67, 84, 49, 54, 73, /* 0x 350 */
48, 56, 55, 0,189, 0, 0, 0, 67, 65, 76, 76, 84, 82, 73, 54, /* 0x 360 */
0,197, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0, 67, 65, 76, /* 0x 370 */
76, 84, 82, 73, 53, 0, 4, 0, 0, 0, 67, 84, 49, 54, 68, 85, /* 0x 380 */
77, 77, 51, 0,200, 0, 0, 0, 83, 89, 83, 77, 65, 73, 78, 53, /* 0x 390 */
0,200, 0, 0, 0, 83, 89, 83, 73, 50, 56, 54, 50, 0,201, 0, /* 0x 3a0 */
0, 0, 83, 89, 83, 73, 48, 56, 54, 50, 0,202, 0, 0, 0, 83, /* 0x 3b0 */
89, 83, 74, 85, 77, 80, 49, 0,209, 0, 0, 0, 83, 89, 83, 84, /* 0x 3c0 */
72, 69, 78, 68, 0,212, 0, 0, 0,255,255,255,255,212, 0 /* 0x 3d0 */
unsigned char nrv2b_loader[12750] = {
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */
200, 2, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */
58, 0, 55, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 96, 80, /* 0x 30 */
83, 81, 82, 86, 87, 85,190, 0, 0,191, 0, 0,137,241, 6, 30, /* 0x 40 */
7,253,243,164,252,187, 0,128,135,254,131,198, 0, 25,237, 87, /* 0x 50 */
233,254,255, 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, /* 0x 60 */
0, 0, 0, 0, 0, 0, 0, 0, 45,164,232, 11, 0,114,250, 65, /* 0x 70 */
232, 6, 0,227, 21,227, 20,115, 6,131,233, 3,114, 6,136,204, /* 0x 80 */
172,247,208,149, 49,201,232, 6, 0, 17,201,117, 8, 65,232, 6, /* 0x 90 */
0,115,251, 65, 65, 65,129,253, 0,243,131,209, 1,141, 3,150, /* 0x a0 */
243,164,150,235, 0,232, 2, 0, 17,201, 1,219,117, 4,173, 17, /* 0x b0 */
192,147,195, 94,185, 0, 0,172, 44,232, 60, 1,119,249,193, 4, /* 0x c0 */
8, 41, 52,139, 28,134,251, 41,243,137, 28,173,226, 3,176,232, /* 0x d0 */
176,233, 95,185, 0, 0,242,174,117, 20,117, 2,193, 5, 8, 41, /* 0x e0 */
61,139, 29,134,251, 41,251,137, 29,175,235, 3, 7, 97, 93, 95, /* 0x f0 */
94, 90, 89, 91, 88,233, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, /* 0x 100 */
2, 0, 0, 0,105, 56, 48, 56, 54, 0, 0, 0, 0, 46,115,121, /* 0x 110 */
109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104, /* 0x 120 */
115,116,114,116, 97, 98, 0, 46,116,101,120,116, 0, 46,100, 97, /* 0x 130 */
116, 97, 0, 46, 98,115,115, 0, 46,114,101,108, 83, 89, 83, 77, /* 0x 140 */
65, 73, 78, 49, 0, 83, 89, 83, 73, 50, 56, 54, 49, 0, 83, 89, /* 0x 150 */
83, 73, 48, 56, 54, 49, 0, 46,114,101,108, 83, 89, 83, 77, 65, /* 0x 160 */
73, 78, 50, 0, 83, 89, 83, 83, 66, 66, 66, 80, 0, 83, 89, 83, /* 0x 170 */
67, 65, 76, 76, 84, 0, 46,114,101,108, 83, 89, 83, 77, 65, 73, /* 0x 180 */
78, 51, 0, 85, 80, 88, 49, 72, 69, 65, 68, 0, 83, 89, 83, 67, /* 0x 190 */
85, 84, 80, 79, 0, 46,114,101,108, 78, 82, 86, 50, 66, 49, 54, /* 0x 1a0 */
48, 0, 46,114,101,108, 78, 82, 86, 68, 68, 79, 78, 69, 0, 46, /* 0x 1b0 */
114,101,108, 78, 82, 86, 68, 82, 69, 84, 85, 0, 46,114,101,108, /* 0x 1c0 */
78, 82, 86, 68, 69, 67, 79, 49, 0, 78, 82, 86, 76, 69, 68, 48, /* 0x 1d0 */
48, 0, 78, 82, 86, 71, 84, 68, 48, 48, 0, 46,114,101,108, 78, /* 0x 1e0 */
82, 86, 68, 69, 67, 79, 50, 0, 78, 82, 86, 50, 66, 49, 54, 57, /* 0x 1f0 */
0, 46,114,101,108, 67, 65, 76, 76, 84, 82, 49, 54, 0, 67, 84, /* 0x 200 */
49, 54, 73, 50, 56, 54, 0, 67, 84, 49, 54, 83, 85, 66, 48, 0, /* 0x 210 */
67, 84, 49, 54, 73, 48, 56, 54, 0, 46,114,101,108, 67, 65, 76, /* 0x 220 */
76, 84, 82, 73, 50, 0, 67, 84, 49, 54, 69, 56, 48, 48, 0, 67, /* 0x 230 */
84, 49, 54, 69, 57, 48, 48, 0, 46,114,101,108, 67, 65, 76, 76, /* 0x 240 */
84, 82, 73, 53, 0, 46,114,101,108, 67, 84, 49, 54, 74, 69, 78, /* 0x 250 */
68, 0, 46,114,101,108, 67, 84, 49, 54, 74, 85, 76, 50, 0, 67, /* 0x 260 */
84, 49, 54, 73, 50, 56, 55, 0, 67, 84, 49, 54, 83, 85, 66, 49, /* 0x 270 */
0, 67, 84, 49, 54, 73, 48, 56, 55, 0, 46,114,101,108, 67, 65, /* 0x 280 */
76, 76, 84, 82, 73, 54, 0, 83, 89, 83, 77, 65, 73, 78, 53, 0, /* 0x 290 */
83, 89, 83, 73, 50, 56, 54, 50, 0, 83, 89, 83, 73, 48, 56, 54, /* 0x 2a0 */
50, 0, 46,114,101,108, 83, 89, 83, 74, 85, 77, 80, 49, 0, 46, /* 0x 2b0 */
110,111,116,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2c0 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2d0 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2e0 */
27, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, /* 0x 2f0 */
52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 300 */
4, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, /* 0x 310 */
3, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, /* 0x 320 */
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x 330 */
39, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, /* 0x 340 */
52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 350 */
4, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 1, 0, 0, 0, /* 0x 360 */
0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 10, 0, 0, 0, /* 0x 370 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 380 */
44, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 390 */
252, 16, 0, 0, 32, 0, 0, 0, 56, 0, 0, 0, 4, 0, 0, 0, /* 0x 3a0 */
4, 0, 0, 0, 8, 0, 0, 0, 57, 0, 0, 0, 1, 0, 0, 0, /* 0x 3b0 */
0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 1, 0, 0, 0, /* 0x 3c0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 3d0 */
66, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 3e0 */
63, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 3f0 */
1, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 1, 0, 0, 0, /* 0x 400 */
0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 23, 0, 0, 0, /* 0x 410 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 420 */
75, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 430 */
28, 17, 0, 0, 24, 0, 0, 0, 56, 0, 0, 0, 8, 0, 0, 0, /* 0x 440 */
4, 0, 0, 0, 8, 0, 0, 0, 88, 0, 0, 0, 1, 0, 0, 0, /* 0x 450 */
0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 2, 0, 0, 0, /* 0x 460 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 470 */
97, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 480 */
95, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 490 */
1, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0, 1, 0, 0, 0, /* 0x 4a0 */
0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 3, 0, 0, 0, /* 0x 4b0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 4c0 */
106, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 4d0 */
52, 17, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 12, 0, 0, 0, /* 0x 4e0 */
4, 0, 0, 0, 8, 0, 0, 0,119, 0, 0, 0, 1, 0, 0, 0, /* 0x 4f0 */
0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 22, 0, 0, 0, /* 0x 500 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 510 */
128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 520 */
121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 530 */
1, 0, 0, 0, 0, 0, 0, 0,141, 0, 0, 0, 1, 0, 0, 0, /* 0x 540 */
0, 0, 0, 0, 0, 0, 0, 0,121, 0, 0, 0, 10, 0, 0, 0, /* 0x 550 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 560 */
137, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 570 */
60, 17, 0, 0, 16, 0, 0, 0, 56, 0, 0, 0, 16, 0, 0, 0, /* 0x 580 */
4, 0, 0, 0, 8, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0, /* 0x 590 */
0, 0, 0, 0, 0, 0, 0, 0,131, 0, 0, 0, 2, 0, 0, 0, /* 0x 5a0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 5b0 */
150, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5c0 */
76, 17, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 18, 0, 0, 0, /* 0x 5d0 */
4, 0, 0, 0, 8, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, /* 0x 5e0 */
0, 0, 0, 0, 0, 0, 0, 0,133, 0, 0, 0, 2, 0, 0, 0, /* 0x 5f0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 600 */
163, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 610 */
84, 17, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 20, 0, 0, 0, /* 0x 620 */
4, 0, 0, 0, 8, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, /* 0x 630 */
0, 0, 0, 0, 0, 0, 0, 0,135, 0, 0, 0, 30, 0, 0, 0, /* 0x 640 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 650 */
176, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 660 */
92, 17, 0, 0, 24, 0, 0, 0, 56, 0, 0, 0, 22, 0, 0, 0, /* 0x 670 */
4, 0, 0, 0, 8, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0, /* 0x 680 */
0, 0, 0, 0, 0, 0, 0, 0,165, 0, 0, 0, 1, 0, 0, 0, /* 0x 690 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 6a0 */
198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 6b0 */
166, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 6c0 */
1, 0, 0, 0, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, /* 0x 6d0 */
0, 0, 0, 0, 0, 0, 0, 0,173, 0, 0, 0, 22, 0, 0, 0, /* 0x 6e0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 6f0 */
207, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 700 */
116, 17, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 26, 0, 0, 0, /* 0x 710 */
4, 0, 0, 0, 8, 0, 0, 0,220, 0, 0, 0, 1, 0, 0, 0, /* 0x 720 */
0, 0, 0, 0, 0, 0, 0, 0,195, 0, 0, 0, 0, 0, 0, 0, /* 0x 730 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 740 */
233, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 750 */
195, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 760 */
1, 0, 0, 0, 0, 0, 0, 0,229, 0, 0, 0, 9, 0, 0, 0, /* 0x 770 */
0, 0, 0, 0, 0, 0, 0, 0,124, 17, 0, 0, 8, 0, 0, 0, /* 0x 780 */
56, 0, 0, 0, 29, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, /* 0x 790 */
242, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 7a0 */
206, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 7b0 */
1, 0, 0, 0, 0, 0, 0, 0,251, 0, 0, 0, 1, 0, 0, 0, /* 0x 7c0 */
0, 0, 0, 0, 0, 0, 0, 0,209, 0, 0, 0, 2, 0, 0, 0, /* 0x 7d0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 7e0 */
4, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 7f0 */
211, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 800 */
1, 0, 0, 0, 0, 0, 0, 0, 17, 1, 0, 0, 1, 0, 0, 0, /* 0x 810 */
0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 3, 0, 0, 0, /* 0x 820 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 830 */
13, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 840 */
132, 17, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 34, 0, 0, 0, /* 0x 850 */
4, 0, 0, 0, 8, 0, 0, 0, 26, 1, 0, 0, 1, 0, 0, 0, /* 0x 860 */
0, 0, 0, 0, 0, 0, 0, 0,222, 0, 0, 0, 2, 0, 0, 0, /* 0x 870 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 880 */
35, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 890 */
224, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 8a0 */
1, 0, 0, 0, 0, 0, 0, 0, 48, 1, 0, 0, 1, 0, 0, 0, /* 0x 8b0 */
0, 0, 0, 0, 0, 0, 0, 0,226, 0, 0, 0, 6, 0, 0, 0, /* 0x 8c0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 8d0 */
44, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 8e0 */
140, 17, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 38, 0, 0, 0, /* 0x 8f0 */
4, 0, 0, 0, 8, 0, 0, 0, 61, 1, 0, 0, 1, 0, 0, 0, /* 0x 900 */
0, 0, 0, 0, 0, 0, 0, 0,232, 0, 0, 0, 2, 0, 0, 0, /* 0x 910 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 920 */
57, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 930 */
148, 17, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 40, 0, 0, 0, /* 0x 940 */
4, 0, 0, 0, 8, 0, 0, 0, 74, 1, 0, 0, 1, 0, 0, 0, /* 0x 950 */
0, 0, 0, 0, 0, 0, 0, 0,234, 0, 0, 0, 2, 0, 0, 0, /* 0x 960 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 970 */
70, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 980 */
156, 17, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 42, 0, 0, 0, /* 0x 990 */
4, 0, 0, 0, 8, 0, 0, 0, 83, 1, 0, 0, 1, 0, 0, 0, /* 0x 9a0 */
0, 0, 0, 0, 0, 0, 0, 0,236, 0, 0, 0, 3, 0, 0, 0, /* 0x 9b0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x 9c0 */
92, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 9d0 */
239, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 9e0 */
1, 0, 0, 0, 0, 0, 0, 0,101, 1, 0, 0, 1, 0, 0, 0, /* 0x 9f0 */
0, 0, 0, 0, 0, 0, 0, 0,241, 0, 0, 0, 8, 0, 0, 0, /* 0x a00 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x a10 */
114, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x a20 */
249, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x a30 */
1, 0, 0, 0, 0, 0, 0, 0,110, 1, 0, 0, 9, 0, 0, 0, /* 0x a40 */
0, 0, 0, 0, 0, 0, 0, 0,164, 17, 0, 0, 8, 0, 0, 0, /* 0x a50 */
56, 0, 0, 0, 47, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, /* 0x a60 */
123, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x a70 */
252, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x a80 */
1, 0, 0, 0, 0, 0, 0, 0,132, 1, 0, 0, 1, 0, 0, 0, /* 0x a90 */
0, 0, 0, 0, 0, 0, 0, 0,253, 0, 0, 0, 1, 0, 0, 0, /* 0x aa0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x ab0 */
141, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ac0 */
254, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ad0 */
1, 0, 0, 0, 0, 0, 0, 0,154, 1, 0, 0, 1, 0, 0, 0, /* 0x ae0 */
0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 0, 0, 3, 0, 0, 0, /* 0x af0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x b00 */
150, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b10 */
172, 17, 0, 0, 8, 0, 0, 0, 56, 0, 0, 0, 52, 0, 0, 0, /* 0x b20 */
4, 0, 0, 0, 8, 0, 0, 0,163, 1, 0, 0, 7, 0, 0, 0, /* 0x b30 */
0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 20, 0, 0, 0, /* 0x b40 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x b50 */
17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b60 */
28, 1, 0, 0,169, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b70 */
1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, /* 0x b80 */
0, 0, 0, 0, 0, 0, 0, 0,216, 11, 0, 0, 0, 4, 0, 0, /* 0x b90 */
57, 0, 0, 0, 56, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, /* 0x ba0 */
9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x bb0 */
216, 15, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x bc0 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x bd0 */
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x be0 */
0, 0, 0, 0, 4, 0,241,255, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x bf0 */
0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c00 */
0, 0, 0, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c10 */
0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c20 */
0, 0, 0, 0, 3, 0, 4, 0, 24, 0, 0, 0, 0, 0, 0, 0, /* 0x c30 */
0, 0, 0, 0, 0, 0, 4, 0, 30, 0, 0, 0, 10, 0, 0, 0, /* 0x c40 */
0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c50 */
0, 0, 0, 0, 3, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c60 */
0, 0, 0, 0, 3, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c70 */
0, 0, 0, 0, 3, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c80 */
0, 0, 0, 0, 3, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c90 */
0, 0, 0, 0, 3, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ca0 */
0, 0, 0, 0, 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x cb0 */
0, 0, 0, 0, 3, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x cc0 */
0, 0, 0, 0, 3, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x cd0 */
0, 0, 0, 0, 3, 0, 16, 0, 39, 0, 0, 0, 0, 0, 0, 0, /* 0x ce0 */
0, 0, 0, 0, 0, 0, 16, 0, 51, 0, 0, 0, 1, 0, 0, 0, /* 0x cf0 */
0, 0, 0, 0, 0, 0, 16, 0, 68, 0, 0, 0, 13, 0, 0, 0, /* 0x d00 */
0, 0, 0, 0, 0, 0, 26, 0, 79, 0, 0, 0, 7, 0, 0, 0, /* 0x d10 */
0, 0, 0, 0, 0, 0, 16, 0, 89, 0, 0, 0, 8, 0, 0, 0, /* 0x d20 */
0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d30 */
0, 0, 0, 0, 3, 0, 18, 0,103, 0, 0, 0, 22, 0, 0, 0, /* 0x d40 */
0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d50 */
0, 0, 0, 0, 3, 0, 20, 0,119, 0, 0, 0, 21, 0, 0, 0, /* 0x d60 */
0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x d70 */
0, 0, 0, 0, 3, 0, 22, 0,134, 0, 0, 0, 13, 0, 0, 0, /* 0x d80 */
0, 0, 0, 0, 0, 0, 22, 0,143, 0, 0, 0, 30, 0, 0, 0, /* 0x d90 */
0, 0, 0, 0, 0, 0, 22, 0,158, 0, 0, 0, 23, 0, 0, 0, /* 0x da0 */
0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x db0 */
0, 0, 0, 0, 3, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x dc0 */
0, 0, 0, 0, 3, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x dd0 */
0, 0, 0, 0, 3, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x de0 */
0, 0, 0, 0, 3, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x df0 */
0, 0, 0, 0, 3, 0, 29, 0,168, 0, 0, 0, 4, 0, 0, 0, /* 0x e00 */
0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x e10 */
0, 0, 0, 0, 3, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x e20 */
0, 0, 0, 0, 3, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x e30 */
0, 0, 0, 0, 3, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x e40 */
0, 0, 0, 0, 3, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x e50 */
0, 0, 0, 0, 3, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x e60 */
0, 0, 0, 0, 3, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x e70 */
0, 0, 0, 0, 3, 0, 38, 0,177, 0, 0, 0, 4, 0, 0, 0, /* 0x e80 */
0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x e90 */
0, 0, 0, 0, 3, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ea0 */
0, 0, 0, 0, 3, 0, 42, 0,187, 0, 0, 0, 3, 0, 0, 0, /* 0x eb0 */
0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ec0 */
0, 0, 0, 0, 3, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ed0 */
0, 0, 0, 0, 3, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ee0 */
0, 0, 0, 0, 3, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ef0 */
0, 0, 0, 0, 3, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x f00 */
0, 0, 0, 0, 3, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x f10 */
0, 0, 0, 0, 3, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x f20 */
0, 0, 0, 0, 3, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x f30 */
0, 0, 0, 0, 3, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x f40 */
0, 0, 0, 0, 3, 0, 54, 0,196, 0, 0, 0, 0, 0, 0, 0, /* 0x f50 */
0, 0, 0, 0, 16, 0, 0, 0,201, 0, 0, 0, 0, 0, 0, 0, /* 0x f60 */
0, 0, 0, 0, 16, 0, 0, 0,211, 0, 0, 0, 0, 0, 0, 0, /* 0x f70 */
0, 0, 0, 0, 16, 0, 0, 0,221, 0, 0, 0, 0, 0, 0, 0, /* 0x f80 */
0, 0, 0, 0, 16, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, /* 0x f90 */
0, 0, 0, 0, 16, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, /* 0x fa0 */
0, 0, 0, 0, 16, 0, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, /* 0x fb0 */
0, 0, 0, 0, 16, 0, 0, 0, 23, 1, 0, 0, 0, 0, 0, 0, /* 0x fc0 */
0, 0, 0, 0, 16, 0, 0, 0, 0,115,114, 99, 47,105, 48, 56, /* 0x fd0 */
54, 45,100,111,115, 49, 54, 46,115,121,115, 46, 97,115,109, 0, /* 0x fe0 */
115,116, 97,114,116, 0,115,116,114, 97,116,101,103,121, 0,108, /* 0x ff0 */
105,116,101,114, 97,108, 95,110, 50, 98, 0,100,101, 99,111,109, /* 0x1000 */
112, 95,115,116, 97,114,116, 95,110, 50, 98, 0,103,101,116, 98, /* 0x1010 */
105,116, 95,110, 50, 98, 0,108,111,111,112, 49, 95,110, 50, 98, /* 0x1020 */
0,103,101,116, 98,105,116, 95, 99,120, 95,110, 50, 98, 0,100, /* 0x1030 */
101, 99,111,109,112, 95,100,111,110,101, 95,110, 50, 98, 0,100, /* 0x1040 */
101, 99,111,109,112, 95,114,101,116, 95,110, 50, 98, 0, 97,120, /* 0x1050 */
98,112, 95,110, 50, 98, 0, 99,111,112,121, 95,109, 97,116, 99, /* 0x1060 */
104, 95,110, 50, 98, 0,108,111,111,112, 50, 95,110, 50, 98, 0, /* 0x1070 */
99,106,116, 49, 54, 95, 76, 49, 0, 99,106,116, 49, 54, 95, 76, /* 0x1080 */
49, 49, 0, 99,106,116, 49, 54, 95, 76, 50, 0,110,101,120,116, /* 0x1090 */
0, 97,116,116,114,105, 98,117,116,101, 0,105,110,116,101,114, /* 0x10a0 */
114,117,112,116, 0, 99,111,112,121, 95,115,111,117,114, 99,101, /* 0x10b0 */
0, 99,111,112,121, 95,100,101,115,116,105,110, 97,116,105,111, /* 0x10c0 */
110, 0,100,101, 99,111,109,112,114,101,115,115,111,114, 0, 99, /* 0x10d0 */
97,108,108,116,114,105, 99,107, 95, 99, 97,108,108,115, 0,115, /* 0x10e0 */
121,115, 95,101,110,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10f0 */
1, 56, 0, 0, 4, 0, 0, 0, 20, 57, 0, 0, 6, 0, 0, 0, /* 0x1100 */
20, 5, 0, 0, 8, 0, 0, 0, 20, 58, 0, 0, 1, 0, 0, 0, /* 0x1110 */
20, 59, 0, 0, 4, 0, 0, 0, 20, 60, 0, 0, 22, 0, 0, 0, /* 0x1120 */
22, 11, 0, 0, 1, 0, 0, 0, 21, 61, 0, 0, 2, 0, 0, 0, /* 0x1130 */
21, 32, 0, 0, 8, 0, 0, 0, 21, 32, 0, 0, 1, 0, 0, 0, /* 0x1140 */
23, 32, 0, 0, 1, 0, 0, 0, 23, 32, 0, 0, 16, 0, 0, 0, /* 0x1150 */
21, 32, 0, 0, 24, 0, 0, 0, 21, 32, 0, 0, 1, 0, 0, 0, /* 0x1160 */
23, 16, 0, 0, 7, 0, 0, 0, 23, 16, 0, 0, 2, 0, 0, 0, /* 0x1170 */
20, 62, 0, 0, 2, 0, 0, 0, 23, 34, 0, 0, 2, 0, 0, 0, /* 0x1180 */
20, 62, 0, 0, 1, 0, 0, 0, 23, 32, 0, 0, 1, 0, 0, 0, /* 0x1190 */
23, 50, 0, 0, 2, 0, 0, 0, 23, 42, 0, 0, 1, 0, 0, 0, /* 0x11a0 */
20, 63, 0, 0, 10,116,109,112, 47,105, 48, 56, 54, 45,100,111, /* 0x11b0 */
115, 49, 54, 46,115,121,115, 46, 98,105,110, 58, 32, 32, 32, 32, /* 0x11c0 */
32,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, /* 0x11d0 */
51, 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116,105,111,110, /* 0x11e0 */
115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, /* 0x11f0 */
32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, /* 0x1200 */
77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, /* 0x1210 */
32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103, /* 0x1220 */
110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 46,116,101, /* 0x1230 */
120,116, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1240 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1250 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, /* 0x1260 */
52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1270 */
83, 44, 32, 65, 76, 76, 79, 67, 44, 32, 76, 79, 65, 68, 44, 32, /* 0x1280 */
82, 69, 65, 68, 79, 78, 76, 89, 44, 32, 67, 79, 68, 69, 10, 32, /* 0x1290 */
32, 49, 32, 46,100, 97,116, 97, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x12a0 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x12b0 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x12c0 */
48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, /* 0x12d0 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 65, 76, 76, 79, 67, 44, 32, /* 0x12e0 */
76, 79, 65, 68, 44, 32, 68, 65, 84, 65, 10, 32, 32, 50, 32, 46, /* 0x12f0 */
98,115,115, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1300 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1310 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1320 */
48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 65, 76, 76, 79, 67, /* 0x1330 */
10, 32, 32, 51, 32, 83, 89, 83, 77, 65, 73, 78, 49, 32, 32, 32, /* 0x1340 */
32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 97, 32, 32, 48, 48, 48, /* 0x1350 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1360 */
32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, /* 0x1370 */
32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1380 */
44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 83, /* 0x1390 */
89, 83, 73, 50, 56, 54, 49, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x13a0 */
48, 48, 48, 48, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x13b0 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x13c0 */
48, 51,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x13d0 */
78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x13e0 */
53, 32, 83, 89, 83, 73, 48, 56, 54, 49, 32, 32, 32, 32, 32, 32, /* 0x13f0 */
48, 48, 48, 48, 48, 48, 48, 55, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1400 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1410 */
48, 48, 48, 48, 51,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1420 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1430 */
10, 32, 32, 54, 32, 83, 89, 83, 77, 65, 73, 78, 50, 32, 32, 32, /* 0x1440 */
32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 55, 32, 32, 48, 48, 48, /* 0x1450 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1460 */
32, 48, 48, 48, 48, 48, 48, 52, 54, 32, 32, 50, 42, 42, 48, 32, /* 0x1470 */
32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1480 */
44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 83, /* 0x1490 */
89, 83, 83, 66, 66, 66, 80, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x14a0 */
48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x14b0 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x14c0 */
48, 53,100, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x14d0 */
78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x14e0 */
56, 32, 83, 89, 83, 67, 65, 76, 76, 84, 32, 32, 32, 32, 32, 32, /* 0x14f0 */
48, 48, 48, 48, 48, 48, 48, 49, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1500 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1510 */
48, 48, 48, 48, 53,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1520 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1530 */
10, 32, 32, 57, 32, 83, 89, 83, 77, 65, 73, 78, 51, 32, 32, 32, /* 0x1540 */
32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 51, 32, 32, 48, 48, 48, /* 0x1550 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1560 */
32, 48, 48, 48, 48, 48, 48, 54, 48, 32, 32, 50, 42, 42, 48, 32, /* 0x1570 */
32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1580 */
44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 85, /* 0x1590 */
80, 88, 49, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x15a0 */
48, 48, 48, 49, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x15b0 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x15c0 */
48, 54, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x15d0 */
78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x15e0 */
49, 32, 83, 89, 83, 67, 85, 84, 80, 79, 32, 32, 32, 32, 32, 32, /* 0x15f0 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1600 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1610 */
48, 48, 48, 48, 55, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1620 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1630 */
10, 32, 49, 50, 32, 78, 82, 86, 50, 66, 49, 54, 48, 32, 32, 32, /* 0x1640 */
32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 97, 32, 32, 48, 48, 48, /* 0x1650 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1660 */
32, 48, 48, 48, 48, 48, 48, 55, 57, 32, 32, 50, 42, 42, 48, 32, /* 0x1670 */
32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1680 */
44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 78, /* 0x1690 */
82, 86, 68, 68, 79, 78, 69, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x16a0 */
48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x16b0 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x16c0 */
48, 56, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x16d0 */
78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x16e0 */
79, 78, 76, 89, 10, 32, 49, 52, 32, 78, 82, 86, 68, 82, 69, 84, /* 0x16f0 */
85, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, /* 0x1700 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1710 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 56, 53, 32, 32, 50, /* 0x1720 */
42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1730 */
69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1740 */
49, 53, 32, 78, 82, 86, 68, 69, 67, 79, 49, 32, 32, 32, 32, 32, /* 0x1750 */
32, 48, 48, 48, 48, 48, 48, 49,101, 32, 32, 48, 48, 48, 48, 48, /* 0x1760 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1770 */
48, 48, 48, 48, 48, 56, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1780 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1790 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 54, 32, 78, 82, 86, /* 0x17a0 */
76, 69, 68, 48, 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x17b0 */
48, 48, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x17c0 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, /* 0x17d0 */
53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x17e0 */
83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 55, 32, /* 0x17f0 */
78, 82, 86, 71, 84, 68, 48, 48, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1800 */
48, 48, 48, 48, 48, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1810 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1820 */
48, 48, 97, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1830 */
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1840 */
49, 56, 32, 78, 82, 86, 68, 69, 67, 79, 50, 32, 32, 32, 32, 32, /* 0x1850 */
32, 48, 48, 48, 48, 48, 48, 49, 54, 32, 32, 48, 48, 48, 48, 48, /* 0x1860 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1870 */
48, 48, 48, 48, 48, 97,100, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1880 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1890 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 57, 32, 78, 82, 86, /* 0x18a0 */
50, 66, 49, 54, 57, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x18b0 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x18c0 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 99, /* 0x18d0 */
51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x18e0 */
83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 48, 32, /* 0x18f0 */
67, 65, 76, 76, 84, 82, 49, 54, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1900 */
48, 48, 48, 48, 48, 98, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1910 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1920 */
48, 48, 99, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1930 */
69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x1940 */
68, 79, 78, 76, 89, 10, 32, 50, 49, 32, 67, 84, 49, 54, 73, 50, /* 0x1950 */
56, 54, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 51, /* 0x1960 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1970 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 99,101, 32, 32, /* 0x1980 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1990 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 50, 32, 67, 84, 49, /* 0x19a0 */
54, 83, 85, 66, 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x19b0 */
48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x19c0 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,100, /* 0x19d0 */
49, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x19e0 */
83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 51, 32, /* 0x19f0 */
67, 84, 49, 54, 73, 48, 56, 54, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1a00 */
48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1a10 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1a20 */
48, 48,100, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1a30 */
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1a40 */
50, 52, 32, 67, 65, 76, 76, 84, 82, 73, 50, 32, 32, 32, 32, 32, /* 0x1a50 */
32, 48, 48, 48, 48, 48, 48, 48, 51, 32, 32, 48, 48, 48, 48, 48, /* 0x1a60 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1a70 */
48, 48, 48, 48, 48,100, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1a80 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1a90 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 53, 32, 67, 84, 49, /* 0x1aa0 */
54, 69, 56, 48, 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1ab0 */
48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1ac0 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,100, /* 0x1ad0 */
101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1ae0 */
83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 54, 32, /* 0x1af0 */
67, 84, 49, 54, 69, 57, 48, 48, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1b00 */
48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1b10 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1b20 */
48, 48,101, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1b30 */
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1b40 */
50, 55, 32, 67, 65, 76, 76, 84, 82, 73, 53, 32, 32, 32, 32, 32, /* 0x1b50 */
32, 48, 48, 48, 48, 48, 48, 48, 54, 32, 32, 48, 48, 48, 48, 48, /* 0x1b60 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1b70 */
48, 48, 48, 48, 48,101, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1b80 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1b90 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 56, 32, 67, 84, 49, /* 0x1ba0 */
54, 74, 69, 78, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1bb0 */
48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1bc0 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,101, /* 0x1bd0 */
56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1be0 */
83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1bf0 */
76, 89, 10, 32, 50, 57, 32, 67, 84, 49, 54, 74, 85, 76, 50, 32, /* 0x1c00 */
32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, /* 0x1c10 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1c20 */
48, 32, 32, 48, 48, 48, 48, 48, 48,101, 97, 32, 32, 50, 42, 42, /* 0x1c30 */
48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, /* 0x1c40 */
79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 51, 48, /* 0x1c50 */
32, 67, 84, 49, 54, 73, 50, 56, 55, 32, 32, 32, 32, 32, 32, 48, /* 0x1c60 */
48, 48, 48, 48, 48, 48, 51, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1c70 */
48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1c80 */
48, 48, 48,101, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x1c90 */
84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x1ca0 */
32, 51, 49, 32, 67, 84, 49, 54, 83, 85, 66, 49, 32, 32, 32, 32, /* 0x1cb0 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, /* 0x1cc0 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1cd0 */
48, 48, 48, 48, 48, 48,101,102, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x1ce0 */
67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1cf0 */
76, 89, 10, 32, 51, 50, 32, 67, 84, 49, 54, 73, 48, 56, 55, 32, /* 0x1d00 */
32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, /* 0x1d10 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1d20 */
48, 32, 32, 48, 48, 48, 48, 48, 48,102, 49, 32, 32, 50, 42, 42, /* 0x1d30 */
48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x1d40 */
68, 79, 78, 76, 89, 10, 32, 51, 51, 32, 67, 65, 76, 76, 84, 82, /* 0x1d50 */
73, 54, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 51, /* 0x1d60 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1d70 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,102, 57, 32, 32, /* 0x1d80 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1d90 */
82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x1da0 */
32, 51, 52, 32, 83, 89, 83, 77, 65, 73, 78, 53, 32, 32, 32, 32, /* 0x1db0 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 49, 32, 32, 48, 48, 48, 48, /* 0x1dc0 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1dd0 */
48, 48, 48, 48, 48, 48,102, 99, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x1de0 */
67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1df0 */
76, 89, 10, 32, 51, 53, 32, 83, 89, 83, 73, 50, 56, 54, 50, 32, /* 0x1e00 */
32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 49, 32, 32, 48, /* 0x1e10 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1e20 */
48, 32, 32, 48, 48, 48, 48, 48, 48,102,100, 32, 32, 50, 42, 42, /* 0x1e30 */
48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x1e40 */
68, 79, 78, 76, 89, 10, 32, 51, 54, 32, 83, 89, 83, 73, 48, 56, /* 0x1e50 */
54, 50, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 55, /* 0x1e60 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1e70 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,102,101, 32, 32, /* 0x1e80 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1e90 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 51, 55, 32, 83, 89, 83, /* 0x1ea0 */
74, 85, 77, 80, 49, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1eb0 */
48, 48, 51, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1ec0 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 48, /* 0x1ed0 */
53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1ee0 */
83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1ef0 */
76, 89, 10, 32, 51, 56, 32, 46,110,111,116,101, 32, 32, 32, 32, /* 0x1f00 */
32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 52, 32, 32, 48, /* 0x1f10 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1f20 */
48, 32, 32, 48, 48, 48, 48, 48, 49, 48, 56, 32, 32, 50, 42, 42, /* 0x1f30 */
48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x1f40 */
68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, /* 0x1f50 */
76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x1f60 */
32, 32,100,102, 32, 42, 65, 66, 83, 42, 9, 48, 48, 48, 48, 48, /* 0x1f70 */
48, 48, 48, 32,115,114, 99, 47,105, 48, 56, 54, 45,100,111,115, /* 0x1f80 */
49, 54, 46,115,121,115, 46, 97,115,109, 10, 48, 48, 48, 48, 48, /* 0x1f90 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 46,116,101,120, /* 0x1fa0 */
116, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 46,116,101,120,116, /* 0x1fb0 */
10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x1fc0 */
32, 32, 46,100, 97,116, 97, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1fd0 */
32, 46,100, 97,116, 97, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1fe0 */
108, 32, 32, 32, 32,100, 32, 32, 46, 98,115,115, 9, 48, 48, 48, /* 0x1ff0 */
48, 48, 48, 48, 48, 32, 46, 98,115,115, 10, 48, 48, 48, 48, 48, /* 0x2000 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, 89, 83, 77, /* 0x2010 */
65, 73, 78, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 83, 89, /* 0x2020 */
83, 77, 65, 73, 78, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2030 */
108, 32, 32, 32, 32, 32, 32, 32, 83, 89, 83, 77, 65, 73, 78, 49, /* 0x2040 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,116, 97,114,116, 10, /* 0x2050 */
48, 48, 48, 48, 48, 48, 48, 97, 32,108, 32, 32, 32, 32, 32, 32, /* 0x2060 */
32, 83, 89, 83, 77, 65, 73, 78, 49, 9, 48, 48, 48, 48, 48, 48, /* 0x2070 */
48, 48, 32,115,116,114, 97,116,101,103,121, 10, 48, 48, 48, 48, /* 0x2080 */
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, 89, 83, /* 0x2090 */
73, 50, 56, 54, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 83, /* 0x20a0 */
89, 83, 73, 50, 56, 54, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x20b0 */
32,108, 32, 32, 32, 32,100, 32, 32, 83, 89, 83, 73, 48, 56, 54, /* 0x20c0 */
49, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 83, 89, 83, 73, 48, /* 0x20d0 */
56, 54, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x20e0 */
32, 32,100, 32, 32, 83, 89, 83, 77, 65, 73, 78, 50, 9, 48, 48, /* 0x20f0 */
48, 48, 48, 48, 48, 48, 32, 83, 89, 83, 77, 65, 73, 78, 50, 10, /* 0x2100 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x2110 */
32, 83, 89, 83, 67, 85, 84, 80, 79, 9, 48, 48, 48, 48, 48, 48, /* 0x2120 */
48, 48, 32, 83, 89, 83, 67, 85, 84, 80, 79, 10, 48, 48, 48, 48, /* 0x2130 */
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, 89, 83, /* 0x2140 */
83, 66, 66, 66, 80, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 83, /* 0x2150 */
89, 83, 83, 66, 66, 66, 80, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2160 */
32,108, 32, 32, 32, 32,100, 32, 32, 83, 89, 83, 67, 65, 76, 76, /* 0x2170 */
84, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 83, 89, 83, 67, 65, /* 0x2180 */
76, 76, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2190 */
32, 32,100, 32, 32, 83, 89, 83, 77, 65, 73, 78, 51, 9, 48, 48, /* 0x21a0 */
48, 48, 48, 48, 48, 48, 32, 83, 89, 83, 77, 65, 73, 78, 51, 10, /* 0x21b0 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x21c0 */
32, 85, 80, 88, 49, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, /* 0x21d0 */
48, 48, 32, 85, 80, 88, 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, /* 0x21e0 */
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x21f0 */
50, 66, 49, 54, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, /* 0x2200 */
82, 86, 50, 66, 49, 54, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2210 */
32,108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 49, 54, /* 0x2220 */
48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,105,116,101,114, /* 0x2230 */
97,108, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, /* 0x2240 */
108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 49, 54, 48, /* 0x2250 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32,100,101, 99,111,109,112, /* 0x2260 */
95,115,116, 97,114,116, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, /* 0x2270 */
48, 48,100, 32,108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, /* 0x2280 */
69, 67, 79, 50, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,103,101, /* 0x2290 */
116, 98,105,116, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x22a0 */
55, 32,108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 49, /* 0x22b0 */
54, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,111,111,112, /* 0x22c0 */
49, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32,108, /* 0x22d0 */
32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 9, /* 0x22e0 */
48, 48, 48, 48, 48, 48, 48, 48, 32,103,101,116, 98,105,116, 95, /* 0x22f0 */
99,120, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2300 */
108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 68, 68, 79, 78, 69, /* 0x2310 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 68, 68, 79, /* 0x2320 */
78, 69, 10, 48, 48, 48, 48, 48, 48, 49, 54, 32,108, 32, 32, 32, /* 0x2330 */
32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 9, 48, 48, 48, /* 0x2340 */
48, 48, 48, 48, 48, 32,100,101, 99,111,109,112, 95,100,111,110, /* 0x2350 */
101, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2360 */
32, 32, 32, 32,100, 32, 32, 78, 82, 86, 68, 82, 69, 84, 85, 9, /* 0x2370 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 68, 82, 69, 84, /* 0x2380 */
85, 10, 48, 48, 48, 48, 48, 48, 49, 53, 32,108, 32, 32, 32, 32, /* 0x2390 */
32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 9, 48, 48, 48, 48, /* 0x23a0 */
48, 48, 48, 48, 32,100,101, 99,111,109,112, 95,114,101,116, 95, /* 0x23b0 */
110, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x23c0 */
32, 32,100, 32, 32, 78, 82, 86, 68, 69, 67, 79, 49, 9, 48, 48, /* 0x23d0 */
48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 68, 69, 67, 79, 49, 10, /* 0x23e0 */
48, 48, 48, 48, 48, 48, 48,100, 32,108, 32, 32, 32, 32, 32, 32, /* 0x23f0 */
32, 78, 82, 86, 68, 69, 67, 79, 49, 9, 48, 48, 48, 48, 48, 48, /* 0x2400 */
48, 48, 32, 97,120, 98,112, 95,110, 50, 98, 10, 48, 48, 48, 48, /* 0x2410 */
48, 48, 49,101, 32,108, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, /* 0x2420 */
68, 69, 67, 79, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99, /* 0x2430 */
111,112,121, 95,109, 97,116, 99,104, 95,110, 50, 98, 10, 48, 48, /* 0x2440 */
48, 48, 48, 48, 49, 55, 32,108, 32, 32, 32, 32, 32, 32, 32, 78, /* 0x2450 */
82, 86, 68, 69, 67, 79, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2460 */
32,108,111,111,112, 50, 95,110, 50, 98, 10, 48, 48, 48, 48, 48, /* 0x2470 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 76, /* 0x2480 */
69, 68, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, /* 0x2490 */
86, 76, 69, 68, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x24a0 */
108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 71, 84, 68, 48, 48, /* 0x24b0 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 71, 84, 68, /* 0x24c0 */
48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x24d0 */
32,100, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 9, 48, 48, 48, /* 0x24e0 */
48, 48, 48, 48, 48, 32, 78, 82, 86, 68, 69, 67, 79, 50, 10, 48, /* 0x24f0 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2500 */
78, 82, 86, 50, 66, 49, 54, 57, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2510 */
48, 32, 78, 82, 86, 50, 66, 49, 54, 57, 10, 48, 48, 48, 48, 48, /* 0x2520 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 65, 76, 76, /* 0x2530 */
84, 82, 49, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 65, /* 0x2540 */
76, 76, 84, 82, 49, 54, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x2550 */
108, 32, 32, 32, 32, 32, 32, 32, 67, 65, 76, 76, 84, 82, 49, 54, /* 0x2560 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,106,116, 49, 54, 95, /* 0x2570 */
76, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2580 */
32,100, 32, 32, 67, 84, 49, 54, 73, 50, 56, 54, 9, 48, 48, 48, /* 0x2590 */
48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 73, 50, 56, 54, 10, 48, /* 0x25a0 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x25b0 */
67, 84, 49, 54, 83, 85, 66, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x25c0 */
48, 32, 67, 84, 49, 54, 83, 85, 66, 48, 10, 48, 48, 48, 48, 48, /* 0x25d0 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 84, 49, 54, /* 0x25e0 */
73, 48, 56, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 84, /* 0x25f0 */
49, 54, 73, 48, 56, 54, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2600 */
108, 32, 32, 32, 32,100, 32, 32, 67, 65, 76, 76, 84, 82, 73, 50, /* 0x2610 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 65, 76, 76, 84, 82, /* 0x2620 */
73, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2630 */
32,100, 32, 32, 67, 84, 49, 54, 69, 56, 48, 48, 9, 48, 48, 48, /* 0x2640 */
48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 69, 56, 48, 48, 10, 48, /* 0x2650 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2660 */
67, 84, 49, 54, 69, 57, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2670 */
48, 32, 67, 84, 49, 54, 69, 57, 48, 48, 10, 48, 48, 48, 48, 48, /* 0x2680 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 65, 76, 76, /* 0x2690 */
84, 82, 73, 53, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 65, /* 0x26a0 */
76, 76, 84, 82, 73, 53, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x26b0 */
108, 32, 32, 32, 32, 32, 32, 32, 67, 65, 76, 76, 84, 82, 73, 53, /* 0x26c0 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,106,116, 49, 54, 95, /* 0x26d0 */
76, 49, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x26e0 */
32, 32,100, 32, 32, 67, 84, 49, 54, 74, 69, 78, 68, 9, 48, 48, /* 0x26f0 */
48, 48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 74, 69, 78, 68, 10, /* 0x2700 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x2710 */
32, 67, 84, 49, 54, 74, 85, 76, 50, 9, 48, 48, 48, 48, 48, 48, /* 0x2720 */
48, 48, 32, 67, 84, 49, 54, 74, 85, 76, 50, 10, 48, 48, 48, 48, /* 0x2730 */
48, 48, 48, 51, 32,108, 32, 32, 32, 32, 32, 32, 32, 67, 65, 76, /* 0x2740 */
76, 84, 82, 73, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99, /* 0x2750 */
106,116, 49, 54, 95, 76, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2760 */
32,108, 32, 32, 32, 32,100, 32, 32, 67, 84, 49, 54, 73, 50, 56, /* 0x2770 */
55, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 73, /* 0x2780 */
50, 56, 55, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2790 */
32, 32,100, 32, 32, 67, 84, 49, 54, 83, 85, 66, 49, 9, 48, 48, /* 0x27a0 */
48, 48, 48, 48, 48, 48, 32, 67, 84, 49, 54, 83, 85, 66, 49, 10, /* 0x27b0 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x27c0 */
32, 67, 84, 49, 54, 73, 48, 56, 55, 9, 48, 48, 48, 48, 48, 48, /* 0x27d0 */
48, 48, 32, 67, 84, 49, 54, 73, 48, 56, 55, 10, 48, 48, 48, 48, /* 0x27e0 */
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 65, 76, /* 0x27f0 */
76, 84, 82, 73, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, /* 0x2800 */
65, 76, 76, 84, 82, 73, 54, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2810 */
32,108, 32, 32, 32, 32,100, 32, 32, 83, 89, 83, 77, 65, 73, 78, /* 0x2820 */
53, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 83, 89, 83, 77, 65, /* 0x2830 */
73, 78, 53, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2840 */
32, 32,100, 32, 32, 83, 89, 83, 73, 50, 56, 54, 50, 9, 48, 48, /* 0x2850 */
48, 48, 48, 48, 48, 48, 32, 83, 89, 83, 73, 50, 56, 54, 50, 10, /* 0x2860 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x2870 */
32, 83, 89, 83, 73, 48, 56, 54, 50, 9, 48, 48, 48, 48, 48, 48, /* 0x2880 */
48, 48, 32, 83, 89, 83, 73, 48, 56, 54, 50, 10, 48, 48, 48, 48, /* 0x2890 */
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, 89, 83, /* 0x28a0 */
74, 85, 77, 80, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 83, /* 0x28b0 */
89, 83, 74, 85, 77, 80, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x28c0 */
32,108, 32, 32, 32, 32,100, 32, 32, 46,110,111,116,101, 9, 48, /* 0x28d0 */
48, 48, 48, 48, 48, 48, 48, 32, 46,110,111,116,101, 10, 48, 48, /* 0x28e0 */
48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x28f0 */
85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,110,101, /* 0x2900 */
120,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x2910 */
32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x2920 */
48, 48, 32, 97,116,116,114,105, 98,117,116,101, 10, 48, 48, 48, /* 0x2930 */
48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x2940 */
78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,105,110,116, /* 0x2950 */
101,114,114,117,112,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2960 */
32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x2970 */
48, 48, 48, 48, 48, 48, 32, 99,111,112,121, 95,115,111,117,114, /* 0x2980 */
99,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x2990 */
32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x29a0 */
48, 48, 32, 99,111,112,121, 95,100,101,115,116,105,110, 97,116, /* 0x29b0 */
105,111,110, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x29c0 */
32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x29d0 */
48, 48, 48, 32,100,101, 99,111,109,112,114,101,115,115,111,114, /* 0x29e0 */
10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, /* 0x29f0 */
32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2a00 */
32, 99, 97,108,108,116,114,105, 99,107, 95, 99, 97,108,108,115, /* 0x2a10 */
10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, /* 0x2a20 */
32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2a30 */
32,115,121,115, 95,101,110,116,114,121, 10, 10, 10, 82, 69, 76, /* 0x2a40 */
79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, /* 0x2a50 */
70, 79, 82, 32, 91, 83, 89, 83, 77, 65, 73, 78, 49, 93, 58, 10, /* 0x2a60 */
79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x2a70 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x2a80 */
32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 51, 56, 54, /* 0x2a90 */
95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,110,101,120, /* 0x2aa0 */
116, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 51, 56, 54, /* 0x2ab0 */
95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97,116,116, /* 0x2ac0 */
114,105, 98,117,116,101, 10, 48, 48, 48, 48, 48, 48, 48, 54, 32, /* 0x2ad0 */
82, 95, 51, 56, 54, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2ae0 */
32, 32, 83, 89, 83, 77, 65, 73, 78, 49, 10, 48, 48, 48, 48, 48, /* 0x2af0 */
48, 48, 56, 32, 82, 95, 51, 56, 54, 95, 49, 54, 32, 32, 32, 32, /* 0x2b00 */
32, 32, 32, 32, 32, 32,105,110,116,101,114,114,117,112,116, 10, /* 0x2b10 */
10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x2b20 */
79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 89, 83, 77, 65, 73, /* 0x2b30 */
78, 50, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x2b40 */
80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2b50 */
86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, /* 0x2b60 */
82, 95, 51, 56, 54, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2b70 */
32, 32, 99,111,112,121, 95,115,111,117,114, 99,101, 10, 48, 48, /* 0x2b80 */
48, 48, 48, 48, 48, 52, 32, 82, 95, 51, 56, 54, 95, 49, 54, 32, /* 0x2b90 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 99,111,112,121, 95,100,101, /* 0x2ba0 */
115,116,105,110, 97,116,105,111,110, 10, 48, 48, 48, 48, 48, 48, /* 0x2bb0 */
49, 54, 32, 82, 95, 51, 56, 54, 95, 56, 32, 32, 32, 32, 32, 32, /* 0x2bc0 */
32, 32, 32, 32, 32, 83, 89, 83, 67, 85, 84, 80, 79, 10, 10, 10, /* 0x2bd0 */
82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x2be0 */
68, 83, 32, 70, 79, 82, 32, 91, 83, 89, 83, 77, 65, 73, 78, 51, /* 0x2bf0 */
93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, /* 0x2c00 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x2c10 */
76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, /* 0x2c20 */
51, 56, 54, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2c30 */
100,101, 99,111,109,112,114,101,115,115,111,114, 10, 10, 10, 82, /* 0x2c40 */
69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x2c50 */
83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 49, 54, 48, 93, /* 0x2c60 */
58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, /* 0x2c70 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, /* 0x2c80 */
85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, /* 0x2c90 */
56, 54, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 78, /* 0x2ca0 */
82, 86, 68, 69, 67, 79, 50, 10, 48, 48, 48, 48, 48, 48, 48, 56, /* 0x2cb0 */
32, 82, 95, 51, 56, 54, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, /* 0x2cc0 */
32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 10, 10, 10, 82, 69, /* 0x2cd0 */
76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x2ce0 */
32, 70, 79, 82, 32, 91, 78, 82, 86, 68, 68, 79, 78, 69, 93, 58, /* 0x2cf0 */
10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x2d00 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x2d10 */
69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 51, 56, /* 0x2d20 */
54, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, /* 0x2d30 */
86, 68, 69, 67, 79, 50, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x2d40 */
73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x2d50 */
91, 78, 82, 86, 68, 82, 69, 84, 85, 93, 58, 10, 79, 70, 70, 83, /* 0x2d60 */
69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x2d70 */
32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, /* 0x2d80 */
48, 48, 48, 48, 48, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 56, /* 0x2d90 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, /* 0x2da0 */
50, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x2db0 */
69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 68, /* 0x2dc0 */
69, 67, 79, 49, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x2dd0 */
84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2de0 */
32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 49, /* 0x2df0 */
48, 32, 82, 95, 51, 56, 54, 95, 80, 67, 49, 54, 32, 32, 32, 32, /* 0x2e00 */
32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, 10, 48, 48, 48, /* 0x2e10 */
48, 48, 48, 49, 56, 32, 82, 95, 51, 56, 54, 95, 80, 67, 49, 54, /* 0x2e20 */
32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 68, 69, 67, 79, 50, /* 0x2e30 */
10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 51, 56, 54, 95, /* 0x2e40 */
80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, /* 0x2e50 */
66, 49, 54, 48, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2e60 */
78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, /* 0x2e70 */
82, 86, 68, 69, 67, 79, 50, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x2e80 */
32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2e90 */
32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, /* 0x2ea0 */
48, 48, 48, 55, 32, 82, 95, 51, 56, 54, 95, 80, 67, 56, 32, 32, /* 0x2eb0 */
32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 49, 54, 48, 10, /* 0x2ec0 */
10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x2ed0 */
79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 67, 65, 76, 76, 84, 82, /* 0x2ee0 */
49, 54, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x2ef0 */
80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2f00 */
86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, /* 0x2f10 */
82, 95, 51, 56, 54, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2f20 */
32, 32, 99, 97,108,108,116,114,105, 99,107, 95, 99, 97,108,108, /* 0x2f30 */
115, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x2f40 */
69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 67, 65, 76, 76, /* 0x2f50 */
84, 82, 73, 50, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x2f60 */
84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2f70 */
32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2f80 */
50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 56, 32, 32, 32, 32, 32, /* 0x2f90 */
32, 32, 32, 32, 67, 65, 76, 76, 84, 82, 49, 54, 10, 10, 10, 82, /* 0x2fa0 */
69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x2fb0 */
83, 32, 70, 79, 82, 32, 91, 67, 65, 76, 76, 84, 82, 73, 53, 93, /* 0x2fc0 */
58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, /* 0x2fd0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, /* 0x2fe0 */
85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, /* 0x2ff0 */
56, 54, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, /* 0x3000 */
97,108,108,116,114,105, 99,107, 95, 99, 97,108,108,115, 10, 10, /* 0x3010 */
10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x3020 */
82, 68, 83, 32, 70, 79, 82, 32, 91, 67, 84, 49, 54, 74, 69, 78, /* 0x3030 */
68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, /* 0x3040 */
69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x3050 */
65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, /* 0x3060 */
95, 51, 56, 54, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3070 */
32, 78, 82, 86, 68, 69, 67, 79, 50, 10, 10, 10, 82, 69, 76, 79, /* 0x3080 */
67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x3090 */
79, 82, 32, 91, 67, 84, 49, 54, 74, 85, 76, 50, 93, 58, 10, 79, /* 0x30a0 */
70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x30b0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, /* 0x30c0 */
10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 51, 56, 54, 95, /* 0x30d0 */
80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 65, 76, 76, /* 0x30e0 */
84, 82, 73, 54, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x30f0 */
78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 67, /* 0x3100 */
65, 76, 76, 84, 82, 73, 54, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x3110 */
32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3120 */
32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, /* 0x3130 */
48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 56, 32, 32, /* 0x3140 */
32, 32, 32, 32, 32, 32, 32, 67, 65, 76, 76, 84, 82, 73, 53, 10, /* 0x3150 */
10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x3160 */
79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 83, 89, 83, 74, 85, 77, /* 0x3170 */
80, 49, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x3180 */
80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3190 */
86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, /* 0x31a0 */
82, 95, 51, 56, 54, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x31b0 */
32, 32,115,121,115, 95,101,110,116,114,121, 10, 10, 10 /* 0x31c0 */
};

View File

@ -1,3 +1,4 @@
/*
; macros.ash --
;
; This file is part of the UPX executable compressor.
@ -24,69 +25,162 @@
; Markus F.X.J. Oberhumer Laszlo Molnar
; <mfx@users.sourceforge.net> <ml1050@users.sourceforge.net>
;
*/
.intel_syntax noprefix
.macro section name
.section \name
.code16
.endm
.macro CPU id
.ifc \id, 8086
.arch i8086, nojumps
.endif
.ifc \id, 286
.arch i286, nojumps
.endif
.endm
.macro jmps target
.byte 0xeb, \target - . - 1
.endm
.macro jos target
.byte 0x70, \target - . - 1
.endm
.macro jnos target
.byte 0x71, \target - . - 1
.endm
.macro jcs target
.byte 0x72, \target - . - 1
.endm
.macro jncs target
.byte 0x73, \target - . - 1
.endm
.macro jzs target
.byte 0x74, \target - . - 1
.endm
.macro jnzs target
.byte 0x75, \target - . - 1
.endm
.macro jnas target
.byte 0x76, \target - . - 1
.endm
.macro jas target
.byte 0x77, \target - . - 1
.endm
.macro jss target
.byte 0x78, \target - . - 1
.endm
.macro jnss target
.byte 0x79, \target - . - 1
.endm
.macro jps target
.byte 0x7a, \target - . - 1
.endm
.macro jnps target
.byte 0x7b, \target - . - 1
.endm
.macro jls target
.byte 0x7c, \target - . - 1
.endm
.macro jnls target
.byte 0x7d, \target - . - 1
.endm
.macro jngs target
.byte 0x7e, \target - . - 1
.endm
.macro jgs target
.byte 0x7f, \target - . - 1
.endm
#define jes jzs
#define jnes jnzs
/*
; =============
; ============= 16-BIT CALLTRICK & JUMPTRICK
; =============
*/
%macro cjt16 1
%ifdef __CALLTR16__
.macro cjt16 ct_end
section CALLTR16
pop si
mov cx, 'CT'
mov cx, offset calltrick_calls
cjt16_L1:
lodsb
sub al, 0xe8
cmp al, 1
ja cjt16_L1
jas cjt16_L1
%ifdef __CT16I286__
rol word [si], 8
; __CT16SUB0__
section CT16I286
CPU 286
rolw [si], 8
CPU 8086
section CT16SUB0
sub [si], si
%else; __CT16I086__
section CT16I086
mov bx, [si]
xchg bl, bh
sub bx, si
mov [si], bx
%endif; __CALLTRI2__
section CALLTRI2
lodsw
loop cjt16_L1
%endif; __CT16DUM1__
/*
; =============
*/
%ifdef __CT16E800__
section CT16E800
mov al, 0xe8
%else; __CT16E900__
section CT16E900
mov al, 0xe9
%endif; __CALLTRI5__
section CALLTRI5
pop di
mov cx, 'CT'
mov cx, offset calltrick_calls
cjt16_L11:
repne
scasb
%ifdef __CT16JEND__
jnz %1 ; FIXME: this doesn't get relocated
%else; __CT16JUL2__
jnz cjt16_L2
%endif; __CT16DUM2__
%ifdef __CT16I287__
rol word [di], 8
; __CT16SUB1__
section CT16JEND
jnzs \ct_end
section CT16JUL2
jnzs cjt16_L2
section CT16I287
CPU 286
rolw [di], 8
CPU 8086
section CT16SUB1
sub [di], di
%else; __CT16I087__
section CT16I087
mov bx, [di]
xchg bl, bh
sub bx, di
mov [di], bx
%endif; __CALLTRI6__
section CALLTRI6
scasw
jmps cjt16_L11
cjt16_L2:
; __CT16DUMM3__
%endmacro
.endm
/*
; vi:ts=8:et:nowrap
*/

View File

@ -1,3 +1,4 @@
/*
; n2b_d16.ash -- ucl_nrv2b_decompress_le16 in 16-bit assembly
;
; This file is part of the UCL data compression library.
@ -34,35 +35,25 @@
; si - source
; di - dest
; bp - -1
*/
%ifndef jmps
%define jmps jmp short
%endif
%ifndef jmpn
%define jmpn jmp near
%endif
CPU 8086
; __NRV2B160__
section NRV2B160
literal_n2b:
movsb
decomp_start_n2b:
call getbit_n2b
jc literal_n2b
jcs literal_n2b
inc cx
loop1_n2b:
call getbit_cx_n2b
%ifdef __NRVDDONE__
section NRVDDONE
jcxz decomp_done_n2b
%else; __NRVDRETU__
section NRVDRETU
jcxz decomp_ret_n2b
%endif; __NRVDECO1__
section NRVDECO1
jnb loop1_n2b
sub cx, byte 3
sub cx, 3
jb axbp_n2b
mov ah, cl
lodsb
@ -80,12 +71,12 @@ loop2_n2b:
inc cx
inc cx
copy_match_n2b:
%ifdef __NRVLED00__
section NRVLED00
inc cx
%else; __NRVGTD00__
section NRVGTD00
cmp bp, -0xd00
adc cx, byte 1
%endif; __NRVDECO2__
adc cx, 1
section NRVDECO2
lea ax, [di+bp]
xchg ax, si
rep
@ -104,81 +95,18 @@ getbit_n2b:
decomp_ret_n2b:
ret
decomp_done_n2b:
; __NRV2B169__
section NRV2B169
/*
; =============
; ============= 16-BIT CALLTRICK & JUMPTRICK
; =============
*/
cjt16 decomp_ret_n2b
%ifdef CJT16
%ifdef __CALLTR16__
pop si
mov cx, 'CT'
cjt16_L1:
lodsb
sub al, 0xe8
cmp al, 1
ja cjt16_L1
%ifdef __CT16I286__
CPU 286
rol word [si], 8
CPU 8086
; __CT16SUB0__
sub [si], si
%else; __CT16I086__
mov bx, [si]
xchg bl, bh
sub bx, si
mov [si], bx
%endif; __CALLTRI2__
lodsw
loop cjt16_L1
%endif; __CT16DUM1__
; =============
%ifdef __CT16E800__
mov al, 0xe8
%else; __CT16E900__
mov al, 0xe9
%endif; __CALLTRI5__
pop di
mov cx, 'CT'
cjt16_L11:
repne
scasb
%ifdef __CT16JEND__
jnz decomp_ret_n2b
%else; __CT16JUL2__
jnz cjt16_L2
%endif; __CT16DUM2__
%ifdef __CT16I287__
CPU 286
rol word [di], 8
CPU 8086
; __CT16SUB1__
sub [di], di
%else; __CT16I087__
mov bx, [di]
xchg bl, bh
sub bx, di
mov [di], bx
%endif; __CALLTRI6__
scasw
jmps cjt16_L11
cjt16_L2:
; __CT16DUMM3__
%endif ; CJT16
CPU 8086
/*
; vi:ts=8:et
*/

View File

@ -1,3 +1,4 @@
/*
; l_com.asm -- loader & decompressor for the dos/com format
;
; This file is part of the UPX executable compressor.
@ -24,32 +25,28 @@
; Markus F.X.J. Oberhumer Laszlo Molnar
; <mfx@users.sourceforge.net> <ml1050@users.sourceforge.net>
;
*/
#define COM 1
#define CJT16 1
#include "arch/i086/macros.ash"
%define COM 1
%define CJT16 1
%define jmps jmp short
%define jmpn jmp near
%include "arch/i086/macros.ash"
BITS 16
ORG 0
SECTION .text
CPU 8086
/*
; =============
; ============= ENTRY POINT
; =============
*/
; __COMMAIN1__
start:
cmp sp, 'SP'
section COMMAIN1
cmp sp, offset sp_limit
ja mem_ok
int 0x20
mem_ok:
mov cx, 'CX' ; size of decomp + sizeof (data) + 1
mov si, 'SI' ; cx + 0x100
mov di, 'DI'
mov cx, offset bytes_to_copy /* size of decomp + sizeof (data) + 1 */
mov si, offset copy_source /* cx + 0x100 */
mov di, offset copy_destination
mov bx, 0x8000
std
@ -58,45 +55,25 @@ mem_ok:
cld
xchg si, di
sub si, byte start - cutpoint
; __COMSUBSI__
; __COMSBBBP__
.byte 0x83, 0xc6, COMCUTPO /* add si, xxx */
section COMSBBBP
sbb bp, bp
; __COMPSHDI__
section COMPSHDI
push di
%ifdef __COMCALLT__
section COMCALLT
push di
%endif; __COMMAIN2__
jmpn .1+'JM'
.1:
%include "include/header.ash"
section COMMAIN2
.byte 0xe9
.word decompressor /* FIXME decomp_start_n2b */
cutpoint:
; __COMCUTPO__
#include "include/header2.ash"
section COMCUTPO
; =============
; ============= DECOMPRESSION
; =============
#include "arch/i086/nrv2b_d16.ash" /* decompressor & calltrick */
CPU 286
%include "arch/i086/nrv2b_d16.ash"
CPU 8086
; =============
; ============= CALLTRICK
; =============
; =============
; __CORETURN__
section CORETURN
ret
eof:
; __COMTHEND__
section .data
dd -1
dw eof
/*
; vi:ts=8:et:nowrap
*/

View File

@ -1,3 +1,4 @@
/*
; l_sys.asm -- loader & decompressor for the dos/sys format
;
; This file is part of the UPX executable compressor.
@ -24,36 +25,34 @@
; Markus F.X.J. Oberhumer Laszlo Molnar
; <mfx@users.sourceforge.net> <ml1050@users.sourceforge.net>
;
*/
%define SYS 1
%define COM 0
%define CJT16 1
%define jmps jmp short
%define jmpn jmp near
%include "arch/i086/macros.ash"
#define SYS 1
#define COM 0
#define CJT16 1
#include "arch/i086/macros.ash"
BITS 16
ORG 0
SECTION .text
CPU 8086
/*
; =============
; ============= ENTRY POINT
; =============
*/
; __SYSMAIN1__
section SYSMAIN1
start:
dd -1
dw 0
dw strategy ; .sys header
dw 0 ; opendos wants this field untouched
.long next
.short attribute
.short strategy /* .sys header */
.short interrupt /* opendos wants this field untouched */
strategy:
%ifdef __SYSI2861__
section SYSI2861
CPU 286
pusha
CPU 8086
%else; __SYSI0861__
section SYSI0861
push ax
push bx
push cx
@ -61,11 +60,11 @@ strategy:
push si
push di
push bp
%endif; __SYSMAIN2__
mov si, 'SI'
mov di, 'DI'
section SYSMAIN2
mov si, offset copy_source
mov di, offset copy_destination
mov cx, si ; at the end of the copy si will be 0
mov cx, si /* at the end of the copy si will be 0 */
push es
push ds
@ -79,42 +78,27 @@ strategy:
mov bx, 0x8000
xchg si, di
sub si, byte start - cutpoint
; __SYSSUBSI__
; __SYSSBBBP__
.byte 0x83, 0xc6, SYSCUTPO /* add si, xxx */
section SYSSBBBP
sbb bp, bp
%ifdef __SYSCALLT__
section SYSCALLT
push di
%endif; __SYSMAIN3__
jmpn .1+'JM' ; jump to the decompressor
.1:
%include "include/header.ash"
section SYSMAIN3
jmp decompressor /* FIXME decomp_start_n2b */
cutpoint:
; __SYSCUTPO__
#include "include/header2.ash"
; =============
; ============= DECOMPRESSION
; =============
section SYSCUTPO
CPU 286
%include "arch/i086/nrv2b_d16.ash"
CPU 8086
#include "arch/i086/nrv2b_d16.ash"
; =============
; ============= CALLTRICK
; =============
; =============
; __SYSMAIN5__
section SYSMAIN5
pop es
%ifdef __SYSI2862__
section SYSI2862
CPU 286
popa
CPU 8086
%else; __SYSI0862__
section SYSI0862
pop bp
pop di
pop si
@ -122,13 +106,10 @@ cutpoint:
pop cx
pop bx
pop ax
%endif; __SYSJUMP1__
jmpn eof+'JO'
eof:
; __SYSTHEND__
section .data
dd -1
dw eof
section SYSJUMP1
.byte 0xe9
.word sys_entry /* FIXME */
/*
; vi:ts=8:et:nowrap
*/

View File

@ -0,0 +1,64 @@
/*
; header.ash --
;
; This file is part of the UPX executable compressor.
;
; Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer
; Copyright (C) 1996-2006 Laszlo Molnar
; All Rights Reserved.
;
; UPX and the UCL library are free software; you can redistribute them
; and/or modify them under the terms of the GNU General Public License as
; published by the Free Software Foundation; either version 2 of
; the License, or (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; see the file COPYING.
; If not, write to the Free Software Foundation, Inc.,
; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
;
; Markus F.X.J. Oberhumer Laszlo Molnar
; <mfx@users.sourceforge.net> <ml1050@users.sourceforge.net>
;
*/
#define db .byte
#define dw .short
#define dd .long
section UPX1HEAD
db 85,80,88,33 # 0 UPX_MAGIC_LE32
db 161,216,208,213 # UPX_MAGIC2_LE32
dd 0 # 8 uncompressed adler32
dd 0 # 12 compressed adler32
#ifdef COM
dw 0 # 16 uncompressed len
dw 0 # 18 compressed len
db 0 # 20 filter
db 45 # 21 header checksum
#elif EXE
db 0,0,0 # 16 uncompressed len
db 0,0,0 # 19 compressed len
db 0,0,0 # 22 original file size
db 0 # 25 filter
db 45 # 26 header checksum
#else
dd 0 # 16 uncompressed len
dd 0 # 20 compressed len
dd 0 # 24 original file size
db 0 # 28 filter id
db 0 # 29 filter cto
db 0 # unused
db 45 # 31 header checksum
#endif
/* vi:ts=8:et:nowrap */