diff --git a/src/linker.cpp b/src/linker.cpp index 15e24493..2a914af5 100644 --- a/src/linker.cpp +++ b/src/linker.cpp @@ -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 */ diff --git a/src/linker.h b/src/linker.h index 101391b0..4a48a27e 100644 --- a/src/linker.h +++ b/src/linker.h @@ -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 SimpleBELinker; typedef TSimpleLinker 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 */ diff --git a/src/p_com.cpp b/src/p_com.cpp index 90e144eb..0b507c4f 100644 --- a/src/p_com.cpp +++ b/src/p_com.cpp @@ -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 */ diff --git a/src/p_com.h b/src/p_com.h index 7b010abb..e644888c 100644 --- a/src/p_com.h +++ b/src/p_com.h @@ -53,6 +53,7 @@ public: protected: virtual unsigned getCallTrickOffset() const { return 0x100; } + virtual Linker* newLinker() const; protected: virtual int buildLoader(const Filter *ft); diff --git a/src/p_sys.cpp b/src/p_sys.cpp index 9f39b79b..9a90f875 100644 --- a/src/p_sys.cpp +++ b/src/p_sys.cpp @@ -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", diff --git a/src/stub/Makefile b/src/stub/Makefile index debdca4a..52cc0280 100644 --- a/src/stub/Makefile +++ b/src/stub/Makefile @@ -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 $@ diff --git a/src/stub/i086-dos16.com.h b/src/stub/i086-dos16.com.h index 1d91aaeb..30afd3c9 100644 --- a/src/stub/i086-dos16.com.h +++ b/src/stub/i086-dos16.com.h @@ -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 */ }; diff --git a/src/stub/i086-dos16.sys.h b/src/stub/i086-dos16.sys.h index 6893fa6d..6df2759a 100644 --- a/src/stub/i086-dos16.sys.h +++ b/src/stub/i086-dos16.sys.h @@ -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 */ }; diff --git a/src/stub/src/arch/i086/macros.ash b/src/stub/src/arch/i086/macros.ash index cf42d0fb..ac588ae5 100644 --- a/src/stub/src/arch/i086/macros.ash +++ b/src/stub/src/arch/i086/macros.ash @@ -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 ; ; +*/ + + .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 +*/ diff --git a/src/stub/src/arch/i086/nrv2b_d16.ash b/src/stub/src/arch/i086/nrv2b_d16.ash index ed02ce50..1974391c 100644 --- a/src/stub/src/arch/i086/nrv2b_d16.ash +++ b/src/stub/src/arch/i086/nrv2b_d16.ash @@ -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 - +*/ diff --git a/src/stub/src/i086-dos16.com.asm b/src/stub/src/i086-dos16.com.asm index 2e561ce4..d3b233b4 100644 --- a/src/stub/src/i086-dos16.com.asm +++ b/src/stub/src/i086-dos16.com.asm @@ -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 ; ; +*/ +#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 +*/ diff --git a/src/stub/src/i086-dos16.sys.asm b/src/stub/src/i086-dos16.sys.asm index 52903355..4b4eed0f 100644 --- a/src/stub/src/i086-dos16.sys.asm +++ b/src/stub/src/i086-dos16.sys.asm @@ -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 ; ; +*/ -%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 +*/ diff --git a/src/stub/src/include/header2.ash b/src/stub/src/include/header2.ash new file mode 100644 index 00000000..32680d9f --- /dev/null +++ b/src/stub/src/include/header2.ash @@ -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 +; +; +*/ + +#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 */